scavio 0.22.0 → 0.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +132 -2
- package/dist/index.cjs +245 -32
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +364 -28
- package/dist/index.d.ts +364 -28
- package/dist/index.js +231 -31
- package/dist/index.js.map +1 -1
- package/package.json +5 -2
package/dist/index.d.cts
CHANGED
|
@@ -562,6 +562,15 @@ interface TikTokVideoOptions {
|
|
|
562
562
|
video_id: string;
|
|
563
563
|
[key: string]: unknown;
|
|
564
564
|
}
|
|
565
|
+
interface TikTokVideoTranscriptOptions {
|
|
566
|
+
/** TikTok video id. Pass this or `url`. */
|
|
567
|
+
video_id?: string;
|
|
568
|
+
/** A TikTok video URL or share link (alternative to video_id, max 2000 characters). */
|
|
569
|
+
url?: string;
|
|
570
|
+
/** Preferred transcript language as a 2-letter code; defaults to the original spoken language. */
|
|
571
|
+
language?: string;
|
|
572
|
+
[key: string]: unknown;
|
|
573
|
+
}
|
|
565
574
|
interface TikTokVideoCommentsOptions {
|
|
566
575
|
/** TikTok video id. */
|
|
567
576
|
video_id: string;
|
|
@@ -720,6 +729,12 @@ declare class TikTokNamespace {
|
|
|
720
729
|
profile(options: TikTokProfileOptions): Promise<Record<string, unknown>>;
|
|
721
730
|
userPosts(options: TikTokUserPostsOptions): Promise<Record<string, unknown>>;
|
|
722
731
|
video(options: TikTokVideoOptions): Promise<Record<string, unknown>>;
|
|
732
|
+
/**
|
|
733
|
+
* Spoken-word transcript of a TikTok video, as timestamped segments and
|
|
734
|
+
* full text. Pass `video_id` or `url`. Videos with no spoken captions
|
|
735
|
+
* (music, dance, muted clips) return `available: false`. 1 credit.
|
|
736
|
+
*/
|
|
737
|
+
videoTranscript(options: TikTokVideoTranscriptOptions): Promise<Record<string, unknown>>;
|
|
723
738
|
videoComments(options: TikTokVideoCommentsOptions): Promise<Record<string, unknown>>;
|
|
724
739
|
commentReplies(options: TikTokCommentRepliesOptions): Promise<Record<string, unknown>>;
|
|
725
740
|
searchVideos(options: TikTokSearchVideosOptions): Promise<Record<string, unknown>>;
|
|
@@ -5321,6 +5336,273 @@ declare class MercadoLibreNamespace {
|
|
|
5321
5336
|
bestSellers(options: MercadoLibreBestSellersOptions): Promise<Record<string, unknown>>;
|
|
5322
5337
|
}
|
|
5323
5338
|
|
|
5339
|
+
/** Fetch tier, as on Extract: standard, renders JavaScript, hardest pages. */
|
|
5340
|
+
type ExtractMode = "normal" | "advanced" | "ultra";
|
|
5341
|
+
/** Return format for each page, as on Extract. */
|
|
5342
|
+
type ExtractFormat = "html" | "markdown" | "text";
|
|
5343
|
+
/** How a map or crawl uses the site's sitemaps. */
|
|
5344
|
+
type ExtractSitemapMode = "include" | "only" | "skip";
|
|
5345
|
+
interface ExtractMapOptions {
|
|
5346
|
+
/** The site to map. A bare host is upgraded to https. 1-2048 characters. */
|
|
5347
|
+
url: string;
|
|
5348
|
+
/** Only return URLs containing every word of this text (case-insensitive, max 200). */
|
|
5349
|
+
search?: string;
|
|
5350
|
+
/**
|
|
5351
|
+
* Maximum links to return, 1-5,000. Default 1,000 (or your plan's limit if
|
|
5352
|
+
* lower). Plan limits: Free 500, PAYG 1,000, paid plans 5,000.
|
|
5353
|
+
*/
|
|
5354
|
+
limit?: number;
|
|
5355
|
+
/**
|
|
5356
|
+
* "include" (default) combines the site's sitemaps with the links on the
|
|
5357
|
+
* start page; "only" uses sitemaps alone; "skip" uses page links alone.
|
|
5358
|
+
*/
|
|
5359
|
+
sitemap?: ExtractSitemapMode;
|
|
5360
|
+
/** Also return URLs on subdomains. Default false (www and the bare domain count as one site). */
|
|
5361
|
+
include_subdomains?: boolean;
|
|
5362
|
+
/** Path globs to keep (max 20). `*` matches within a segment, `**` across segments. */
|
|
5363
|
+
include_paths?: string[];
|
|
5364
|
+
/** Path globs to drop (max 20). */
|
|
5365
|
+
exclude_paths?: string[];
|
|
5366
|
+
/** Treat URLs that differ only by query string as one URL. Default true. */
|
|
5367
|
+
ignore_query_parameters?: boolean;
|
|
5368
|
+
/** Fetch tier. Default "normal" (1 credit). */
|
|
5369
|
+
mode?: ExtractMode;
|
|
5370
|
+
[key: string]: unknown;
|
|
5371
|
+
}
|
|
5372
|
+
interface ExtractCrawlOptions {
|
|
5373
|
+
/** Where the crawl starts. Only pages on the same site are crawled. */
|
|
5374
|
+
url: string;
|
|
5375
|
+
/**
|
|
5376
|
+
* Maximum pages to fetch, 1-10,000. Default 100. Plan limits: Free 10,
|
|
5377
|
+
* PAYG 100, Project 500, Bootstrap 2,000, Startup 5,000, Growth 10,000.
|
|
5378
|
+
*/
|
|
5379
|
+
max_pages?: number;
|
|
5380
|
+
/** Links away from the start page to follow, 0-10 (default 3). 0 fetches only the start page. */
|
|
5381
|
+
max_depth?: number;
|
|
5382
|
+
/** Path globs to crawl (max 20), e.g. ["/blog/**"]. */
|
|
5383
|
+
include_paths?: string[];
|
|
5384
|
+
/** Path globs to skip (max 20). */
|
|
5385
|
+
exclude_paths?: string[];
|
|
5386
|
+
/** Also crawl subdomains of the site. Default false. */
|
|
5387
|
+
allow_subdomains?: boolean;
|
|
5388
|
+
/** Treat URLs that differ only by query string as one page. Default true. */
|
|
5389
|
+
ignore_query_parameters?: boolean;
|
|
5390
|
+
/**
|
|
5391
|
+
* "include" (default) also starts from the site's sitemap; "skip" follows
|
|
5392
|
+
* links only; "only" fetches sitemap pages without following links.
|
|
5393
|
+
*/
|
|
5394
|
+
sitemap?: ExtractSitemapMode;
|
|
5395
|
+
/** Return format for each page. Default "markdown". */
|
|
5396
|
+
format?: ExtractFormat;
|
|
5397
|
+
/** Fetch tier, the price per successful page: normal 1, advanced 1, ultra 2. */
|
|
5398
|
+
mode?: ExtractMode;
|
|
5399
|
+
/**
|
|
5400
|
+
* https URL that receives a signed POST when the job completes, fails or is
|
|
5401
|
+
* cancelled. The signing secret comes back once, as `webhook_secret`.
|
|
5402
|
+
* Verify deliveries with `verifyWebhook`.
|
|
5403
|
+
*/
|
|
5404
|
+
webhook_url?: string;
|
|
5405
|
+
[key: string]: unknown;
|
|
5406
|
+
}
|
|
5407
|
+
interface ExtractBatchOptions {
|
|
5408
|
+
/**
|
|
5409
|
+
* The pages to extract (duplicates removed). Plan limits: Free 10, PAYG 50,
|
|
5410
|
+
* Project 100, Bootstrap 500, Startup and Growth 1,000.
|
|
5411
|
+
*/
|
|
5412
|
+
urls: string[];
|
|
5413
|
+
/** Return format for each page. Default "markdown". */
|
|
5414
|
+
format?: ExtractFormat;
|
|
5415
|
+
/** Fetch tier, the price per successful page: normal 1, advanced 1, ultra 2. */
|
|
5416
|
+
mode?: ExtractMode;
|
|
5417
|
+
/** https URL that receives a signed POST when the job finishes. See `ExtractCrawlOptions.webhook_url`. */
|
|
5418
|
+
webhook_url?: string;
|
|
5419
|
+
[key: string]: unknown;
|
|
5420
|
+
}
|
|
5421
|
+
/** Client-side options for starting a crawl or batch job. */
|
|
5422
|
+
interface ExtractJobRequestOptions {
|
|
5423
|
+
/**
|
|
5424
|
+
* Sent as the `Idempotency-Key` header. Repeating the POST with the same
|
|
5425
|
+
* key within 24 hours returns the original job instead of starting a new
|
|
5426
|
+
* one, so the SDK's automatic retries can never start a second job.
|
|
5427
|
+
*/
|
|
5428
|
+
idempotencyKey?: string;
|
|
5429
|
+
/**
|
|
5430
|
+
* Poll until the job finishes and return every result in one response
|
|
5431
|
+
* (all pages of the status endpoint, `next_cursor: null`). Default false:
|
|
5432
|
+
* return the 202 job handle immediately.
|
|
5433
|
+
*/
|
|
5434
|
+
wait?: boolean;
|
|
5435
|
+
/** With `wait`: milliseconds between status polls. Default 2,000. */
|
|
5436
|
+
pollInterval?: number;
|
|
5437
|
+
/**
|
|
5438
|
+
* With `wait`: give up after this many milliseconds and throw
|
|
5439
|
+
* `ScavioJobTimeoutError` (the job keeps running; its id is on the error).
|
|
5440
|
+
* Default 600,000 (10 minutes).
|
|
5441
|
+
*/
|
|
5442
|
+
waitTimeout?: number;
|
|
5443
|
+
}
|
|
5444
|
+
interface ExtractJobStatusQuery {
|
|
5445
|
+
/** `next_cursor` from the previous response. */
|
|
5446
|
+
cursor?: string;
|
|
5447
|
+
/** Results per response, 1-100 (default 25). Responses are also cut at about 5 MB of content. */
|
|
5448
|
+
limit?: number;
|
|
5449
|
+
/** Only results with this status. */
|
|
5450
|
+
status?: "succeeded" | "failed" | "skipped";
|
|
5451
|
+
/** Set false to page through results without their content. Default true. */
|
|
5452
|
+
include_content?: boolean;
|
|
5453
|
+
}
|
|
5454
|
+
interface ExtractMapLink {
|
|
5455
|
+
url: string;
|
|
5456
|
+
source: "sitemap" | "page";
|
|
5457
|
+
lastmod?: string;
|
|
5458
|
+
}
|
|
5459
|
+
interface ExtractMapResponse {
|
|
5460
|
+
data: {
|
|
5461
|
+
url: string;
|
|
5462
|
+
links: ExtractMapLink[];
|
|
5463
|
+
total_found: number;
|
|
5464
|
+
returned: number;
|
|
5465
|
+
truncated: boolean;
|
|
5466
|
+
sitemaps_read: number;
|
|
5467
|
+
};
|
|
5468
|
+
response_time: number;
|
|
5469
|
+
credits_used: number;
|
|
5470
|
+
credits_remaining: number;
|
|
5471
|
+
}
|
|
5472
|
+
interface ExtractJobCreatedResponse {
|
|
5473
|
+
data: {
|
|
5474
|
+
id: string;
|
|
5475
|
+
type: "crawl" | "batch";
|
|
5476
|
+
status: string;
|
|
5477
|
+
url: string | null;
|
|
5478
|
+
max_pages: number;
|
|
5479
|
+
max_depth: number;
|
|
5480
|
+
format: string;
|
|
5481
|
+
mode: string;
|
|
5482
|
+
credits_per_page: number;
|
|
5483
|
+
status_url: string;
|
|
5484
|
+
urls_count?: number;
|
|
5485
|
+
invalid_urls?: {
|
|
5486
|
+
url: string;
|
|
5487
|
+
error: string;
|
|
5488
|
+
}[];
|
|
5489
|
+
webhook_url?: string;
|
|
5490
|
+
/** Returned once, on creation. Keep it to verify webhook deliveries. */
|
|
5491
|
+
webhook_secret?: string;
|
|
5492
|
+
};
|
|
5493
|
+
credits_used: number;
|
|
5494
|
+
}
|
|
5495
|
+
type ExtractJobState = "queued" | "running" | "completed" | "failed" | "cancelled";
|
|
5496
|
+
interface ExtractJobSummary {
|
|
5497
|
+
id: string;
|
|
5498
|
+
type: string;
|
|
5499
|
+
status: ExtractJobState;
|
|
5500
|
+
/** Why a completed job stopped early: max_pages, insufficient_credits, time_limit, storage_limit, or cancelled. */
|
|
5501
|
+
stopped_reason: string | null;
|
|
5502
|
+
error: string | null;
|
|
5503
|
+
url: string | null;
|
|
5504
|
+
format: string;
|
|
5505
|
+
mode: string;
|
|
5506
|
+
pages: {
|
|
5507
|
+
discovered: number;
|
|
5508
|
+
queued: number;
|
|
5509
|
+
succeeded: number;
|
|
5510
|
+
failed: number;
|
|
5511
|
+
skipped: number;
|
|
5512
|
+
};
|
|
5513
|
+
credits_used: number;
|
|
5514
|
+
created_at: string | null;
|
|
5515
|
+
started_at: string | null;
|
|
5516
|
+
completed_at: string | null;
|
|
5517
|
+
/** Results are deleted after this time (3 days after the job finishes). */
|
|
5518
|
+
expires_at: string | null;
|
|
5519
|
+
webhook: {
|
|
5520
|
+
status: string | null;
|
|
5521
|
+
attempts: number;
|
|
5522
|
+
} | null;
|
|
5523
|
+
status_url: string;
|
|
5524
|
+
}
|
|
5525
|
+
interface ExtractJobResult {
|
|
5526
|
+
url: string;
|
|
5527
|
+
depth: number;
|
|
5528
|
+
status: "succeeded" | "failed" | "skipped";
|
|
5529
|
+
status_code: number | null;
|
|
5530
|
+
content?: string | null;
|
|
5531
|
+
content_length: number | null;
|
|
5532
|
+
truncated: boolean;
|
|
5533
|
+
error: string | null;
|
|
5534
|
+
skip_reason: string | null;
|
|
5535
|
+
credits: number;
|
|
5536
|
+
}
|
|
5537
|
+
interface ExtractJobStatusResponse {
|
|
5538
|
+
data: ExtractJobSummary & {
|
|
5539
|
+
results: ExtractJobResult[];
|
|
5540
|
+
next_cursor: string | null;
|
|
5541
|
+
};
|
|
5542
|
+
}
|
|
5543
|
+
interface ExtractJobSummaryResponse {
|
|
5544
|
+
data: ExtractJobSummary;
|
|
5545
|
+
}
|
|
5546
|
+
type WaitOptions = ExtractJobRequestOptions & {
|
|
5547
|
+
wait: true;
|
|
5548
|
+
};
|
|
5549
|
+
type NoWaitOptions = ExtractJobRequestOptions & {
|
|
5550
|
+
wait?: false;
|
|
5551
|
+
};
|
|
5552
|
+
/**
|
|
5553
|
+
* The website operations of Extract: map a site's URLs, crawl a site, and
|
|
5554
|
+
* extract a list of URLs in one job. Reached as `scavio.extract.map(...)`,
|
|
5555
|
+
* `scavio.extract.crawl(...)` and so on; `scavio.extract({ url })` itself
|
|
5556
|
+
* still reads a single page.
|
|
5557
|
+
*
|
|
5558
|
+
* Map is synchronous (1 credit). Crawl and batch are jobs: they return 202
|
|
5559
|
+
* with an id, and you poll the status method (free) for results, or pass
|
|
5560
|
+
* `{ wait: true }`. Jobs bill per SUCCESSFUL page at Extract's price for the
|
|
5561
|
+
* tier (normal 1, advanced 1, ultra 2); failed and skipped pages are free.
|
|
5562
|
+
*/
|
|
5563
|
+
declare class ExtractNamespace {
|
|
5564
|
+
private readonly client;
|
|
5565
|
+
constructor(client: Scavio);
|
|
5566
|
+
/**
|
|
5567
|
+
* List a site's page URLs, gathered from its sitemaps and its start page,
|
|
5568
|
+
* deduplicated, filtered by path and limited. Pages disallowed by the
|
|
5569
|
+
* site's robots.txt are left out. 1 credit on the normal tier.
|
|
5570
|
+
*/
|
|
5571
|
+
map(options: ExtractMapOptions): Promise<ExtractMapResponse>;
|
|
5572
|
+
/**
|
|
5573
|
+
* Start a crawl from one URL: same-site pages are discovered breadth-first
|
|
5574
|
+
* (URLs under the start path first) within your depth, page and path
|
|
5575
|
+
* limits, each returned like Extract. robots.txt is always obeyed. Returns
|
|
5576
|
+
* the 202 job handle, or every result when `wait` is true.
|
|
5577
|
+
*/
|
|
5578
|
+
crawl(options: ExtractCrawlOptions, request: WaitOptions): Promise<ExtractJobStatusResponse>;
|
|
5579
|
+
crawl(options: ExtractCrawlOptions, request?: NoWaitOptions): Promise<ExtractJobCreatedResponse>;
|
|
5580
|
+
crawl(options: ExtractCrawlOptions, request?: ExtractJobRequestOptions): Promise<ExtractJobCreatedResponse | ExtractJobStatusResponse>;
|
|
5581
|
+
/** A crawl's progress and its page results, paged by cursor. Free. */
|
|
5582
|
+
crawlStatus(id: string, query?: ExtractJobStatusQuery): Promise<ExtractJobStatusResponse>;
|
|
5583
|
+
/**
|
|
5584
|
+
* Stop a queued or running crawl. No further pages are fetched or billed;
|
|
5585
|
+
* results so far stay available. A finished crawl answers 409. Free.
|
|
5586
|
+
*/
|
|
5587
|
+
cancelCrawl(id: string): Promise<ExtractJobSummaryResponse>;
|
|
5588
|
+
/**
|
|
5589
|
+
* Extract a list of URLs in one job, each returned like Extract. Invalid
|
|
5590
|
+
* URLs come back in `invalid_urls` and are never billed. Returns the 202
|
|
5591
|
+
* job handle, or every result (in input order) when `wait` is true.
|
|
5592
|
+
*/
|
|
5593
|
+
batch(options: ExtractBatchOptions, request: WaitOptions): Promise<ExtractJobStatusResponse>;
|
|
5594
|
+
batch(options: ExtractBatchOptions, request?: NoWaitOptions): Promise<ExtractJobCreatedResponse>;
|
|
5595
|
+
batch(options: ExtractBatchOptions, request?: ExtractJobRequestOptions): Promise<ExtractJobCreatedResponse | ExtractJobStatusResponse>;
|
|
5596
|
+
/** A batch's progress and its page results in input order, paged by cursor. Free. */
|
|
5597
|
+
batchStatus(id: string, query?: ExtractJobStatusQuery): Promise<ExtractJobStatusResponse>;
|
|
5598
|
+
/** Stop a queued or running batch. A finished batch answers 409. Free. */
|
|
5599
|
+
cancelBatch(id: string): Promise<ExtractJobSummaryResponse>;
|
|
5600
|
+
private start;
|
|
5601
|
+
private status;
|
|
5602
|
+
private cancel;
|
|
5603
|
+
private waitFor;
|
|
5604
|
+
}
|
|
5605
|
+
|
|
5324
5606
|
/**
|
|
5325
5607
|
* Default client-side rate limit, safe on every plan including free.
|
|
5326
5608
|
*/
|
|
@@ -5365,14 +5647,56 @@ interface ExtractOptions {
|
|
|
5365
5647
|
/**
|
|
5366
5648
|
* Fetch tier, and THE PRICE-BEARING PARAM (default "normal").
|
|
5367
5649
|
*
|
|
5368
|
-
* - "normal":
|
|
5369
|
-
* - "advanced":
|
|
5370
|
-
* - "ultra":
|
|
5650
|
+
* - "normal": the standard fetch - 1 credit.
|
|
5651
|
+
* - "advanced": renders JavaScript, for JS-built pages - 1 credit.
|
|
5652
|
+
* - "ultra": the hardest pages and bot walls - 2 credits.
|
|
5371
5653
|
*/
|
|
5372
5654
|
mode?: "normal" | "advanced" | "ultra";
|
|
5373
5655
|
[key: string]: unknown;
|
|
5374
5656
|
}
|
|
5375
|
-
|
|
5657
|
+
/**
|
|
5658
|
+
* `scavio.extract`: call it to read one page, or use its methods for the
|
|
5659
|
+
* website operations - `scavio.extract.map()`, `.crawl()`, `.crawlStatus()`,
|
|
5660
|
+
* `.cancelCrawl()`, `.batch()`, `.batchStatus()`, `.cancelBatch()`.
|
|
5661
|
+
*/
|
|
5662
|
+
interface Extract extends ExtractNamespace {
|
|
5663
|
+
(options: ExtractOptions): Promise<Record<string, unknown>>;
|
|
5664
|
+
}
|
|
5665
|
+
/**
|
|
5666
|
+
* Holds the single-page Extract call. TypeScript cannot declare a method and
|
|
5667
|
+
* a property of the same name on one class, so the implementation lives here
|
|
5668
|
+
* and `Scavio` narrows `extract` to the callable `Extract` namespace, which
|
|
5669
|
+
* delegates to this method when called.
|
|
5670
|
+
*/
|
|
5671
|
+
declare abstract class ScavioCore {
|
|
5672
|
+
/** @internal */
|
|
5673
|
+
abstract _post(path: string, body: object, headers?: Record<string, string>): Promise<Record<string, unknown>>;
|
|
5674
|
+
/**
|
|
5675
|
+
* Read ANY web page and get it back as readability Markdown (the default),
|
|
5676
|
+
* plain text, or raw HTML. Returns `{ url, format, mode, content,
|
|
5677
|
+
* content_length }`.
|
|
5678
|
+
*
|
|
5679
|
+
* Extract is a core endpoint, not a platform: `scavio.extract({ url })`
|
|
5680
|
+
* reads one page, and `scavio.extract.map()` / `.crawl()` / `.batch()` work
|
|
5681
|
+
* on whole sites and URL lists.
|
|
5682
|
+
*
|
|
5683
|
+
* Credits are a function of `mode`, not a flat per-call constant:
|
|
5684
|
+
* "normal" costs 1, "advanced" costs 1, "ultra" costs 2. Billing happens
|
|
5685
|
+
* only on a successful extraction - a dead link, bot wall or timeout costs
|
|
5686
|
+
* nothing.
|
|
5687
|
+
*
|
|
5688
|
+
* Start on "normal". Move to "advanced" when the page builds its content in
|
|
5689
|
+
* the browser, and to "ultra" only when a bot wall blocks the other two.
|
|
5690
|
+
*
|
|
5691
|
+
* @example
|
|
5692
|
+
* const page = await scavio.extract({ url: "https://example.com/pricing" });
|
|
5693
|
+
* console.log(page.content);
|
|
5694
|
+
*/
|
|
5695
|
+
extract(options: ExtractOptions): Promise<Record<string, unknown>>;
|
|
5696
|
+
}
|
|
5697
|
+
declare class Scavio extends ScavioCore {
|
|
5698
|
+
/** Read one page (call it), or map / crawl / batch-extract (its methods). */
|
|
5699
|
+
readonly extract: Extract;
|
|
5376
5700
|
readonly google: GoogleNamespace;
|
|
5377
5701
|
readonly amazon: AmazonNamespace;
|
|
5378
5702
|
readonly walmart: WalmartNamespace;
|
|
@@ -5416,34 +5740,35 @@ declare class Scavio {
|
|
|
5416
5740
|
private readonly rateLimiter;
|
|
5417
5741
|
constructor(config?: ScavioConfig);
|
|
5418
5742
|
/** @internal */
|
|
5419
|
-
_post(path: string, body: object): Promise<Record<string, unknown>>;
|
|
5743
|
+
_post(path: string, body: object, headers?: Record<string, string>): Promise<Record<string, unknown>>;
|
|
5744
|
+
/** @internal */
|
|
5745
|
+
_get(path: string, query?: Record<string, string | number | boolean | undefined>): Promise<Record<string, unknown>>;
|
|
5420
5746
|
/** @internal */
|
|
5421
|
-
|
|
5747
|
+
_delete(path: string): Promise<Record<string, unknown>>;
|
|
5422
5748
|
search(options: GoogleSearchOptions): Promise<Record<string, unknown>>;
|
|
5423
|
-
/**
|
|
5424
|
-
* Read ANY web page and get it back as readability Markdown (the default),
|
|
5425
|
-
* plain text, or raw HTML. Returns `{ url, format, mode, content,
|
|
5426
|
-
* content_length }`.
|
|
5427
|
-
*
|
|
5428
|
-
* This is a core endpoint, not a platform, so it lives on the client itself:
|
|
5429
|
-
* `scavio.extract({ url })`, never `scavio.extract.extract()`.
|
|
5430
|
-
*
|
|
5431
|
-
* Credits are a function of `mode`, not a flat per-call constant:
|
|
5432
|
-
* "normal" costs 1, "advanced" costs 1, "ultra" costs 2. Billing happens
|
|
5433
|
-
* only on a successful extraction - a dead link, bot wall or timeout costs
|
|
5434
|
-
* nothing.
|
|
5435
|
-
*
|
|
5436
|
-
* Start on "normal". Move to "advanced" when the page builds its content in
|
|
5437
|
-
* the browser, and to "ultra" only when a bot wall blocks the other two.
|
|
5438
|
-
*
|
|
5439
|
-
* @example
|
|
5440
|
-
* const page = await scavio.extract({ url: "https://example.com/pricing" });
|
|
5441
|
-
* console.log(page.content);
|
|
5442
|
-
*/
|
|
5443
|
-
extract(options: ExtractOptions): Promise<Record<string, unknown>>;
|
|
5444
5749
|
getUsage(): Promise<Record<string, unknown>>;
|
|
5445
5750
|
}
|
|
5446
5751
|
|
|
5752
|
+
/**
|
|
5753
|
+
* Verify a crawl or batch completion webhook from Scavio.
|
|
5754
|
+
*
|
|
5755
|
+
* Each delivery carries `Scavio-Signature: t=<unix>,v1=<hex>`, where v1 is
|
|
5756
|
+
* HMAC-SHA256 of `"<t>.<raw body>"` keyed with the job's `webhook_secret`
|
|
5757
|
+
* (returned once, when the job is created). Pass the RAW request body - the
|
|
5758
|
+
* exact bytes received, before any JSON parsing - or the signature will not
|
|
5759
|
+
* match.
|
|
5760
|
+
*
|
|
5761
|
+
* Uses Web Crypto, so it runs on Node 18+, Deno, Bun and edge runtimes; it is
|
|
5762
|
+
* async for that reason. Returns false (never throws) for a missing,
|
|
5763
|
+
* malformed, tampered or stale signature.
|
|
5764
|
+
*
|
|
5765
|
+
* @param secret The job's `webhook_secret` (`whsec_...`).
|
|
5766
|
+
* @param header The `Scavio-Signature` header value.
|
|
5767
|
+
* @param body The raw request body, as a string or bytes.
|
|
5768
|
+
* @param toleranceSec Maximum age of the signature in seconds (default 300).
|
|
5769
|
+
*/
|
|
5770
|
+
declare function verifyWebhook(secret: string, header: string | null | undefined, body: string | Uint8Array, toleranceSec?: number): Promise<boolean>;
|
|
5771
|
+
|
|
5447
5772
|
declare class ScavioError extends Error {
|
|
5448
5773
|
constructor(message: string);
|
|
5449
5774
|
}
|
|
@@ -5494,5 +5819,16 @@ declare class ScavioAPIError extends ScavioError {
|
|
|
5494
5819
|
readonly responseBody?: Record<string, unknown>;
|
|
5495
5820
|
constructor(statusCode: number, message: string, responseBody?: Record<string, unknown>);
|
|
5496
5821
|
}
|
|
5822
|
+
/**
|
|
5823
|
+
* A crawl or batch started with `{ wait: true }` did not finish within
|
|
5824
|
+
* `waitTimeout`. The job is still running: poll it with `jobId`, or cancel it.
|
|
5825
|
+
*/
|
|
5826
|
+
declare class ScavioJobTimeoutError extends ScavioError {
|
|
5827
|
+
readonly jobType: "crawl" | "batch";
|
|
5828
|
+
readonly jobId: string;
|
|
5829
|
+
readonly statusUrl: string;
|
|
5830
|
+
readonly lastStatus: string;
|
|
5831
|
+
constructor(jobType: "crawl" | "batch", jobId: string, statusUrl: string, lastStatus: string);
|
|
5832
|
+
}
|
|
5497
5833
|
|
|
5498
|
-
export { type AirbnbListingOptions, AirbnbNamespace, type AirbnbReviewsOptions, type AirbnbSearchOptions, AmazonNamespace, type AmazonOffersOptions, type AmazonProductOptions, type AmazonSearchOptions, type AppStoreAppOptions, AppStoreNamespace, type AppStoreReviewsOptions, type AppStoreSearchOptions, BadRequestError, type BookingHotelOptions, BookingNamespace, type BookingReviewsOptions, type BookingSearchOptions, CapterraNamespace, type CapterraProductOptions, type CapterraReviewsOptions, type CapterraSearchOptions, type CompaniesHouseCompanyOptions, type CompaniesHouseFilingHistoryOptions, CompaniesHouseNamespace, type CompaniesHouseOfficersOptions, type CompaniesHouseSearchOptions, type CostcoAutocompleteOptions, type CostcoAvailabilityOptions, type CostcoCategoriesOptions, type CostcoCategoryOptions, type CostcoClearanceOptions, type CostcoCountry, type CostcoCouponsOptions, type CostcoDealType, type CostcoDealsOptions, type CostcoGasOptions, type CostcoListingFilters, type CostcoNaCountry, CostcoNamespace, type CostcoPriceCode, type CostcoPricesOptions, type CostcoProductOptions, type CostcoReviewsOptions, type CostcoSearchOptions, type CostcoSortBy, type CostcoWarehousesOptions, DEFAULT_MAX_REQUESTS_PER_SECOND, EbayNamespace, type EbayProductOptions, type EbaySearchOptions, type EbaySellerOptions, type ExtractOptions, G2Namespace, type G2ProductOptions, type G2ReviewsOptions, type G2SearchOptions, type GlassdoorCompaniesOptions, type GlassdoorCompanyOptions, GlassdoorNamespace, type GlassdoorReviewsOptions, type GlassdoorSalariesOptions, type GoogleAdsAdvertisersOptions, type GoogleAdsCreativeOptions, GoogleAdsNamespace, type GoogleAdsSearchOptions, type GoogleAiModeOptions, type GoogleFlightsOptions, type GoogleHotelsDetailOptions, type GoogleHotelsOptions, type GoogleMapsPlaceOptions, type GoogleMapsReviewsOptions, type GoogleMapsSearchOptions, GoogleNamespace, type GoogleNewsOptions, type GooglePlayAppOptions, GooglePlayNamespace, type GooglePlayReviewsOptions, type GooglePlaySearchOptions, type GoogleSearchOptions, type GoogleShoppingOptions, type GoogleShoppingProductOptions, type GoogleShoppingStoresOptions, type GoogleTrendingOptions, type GoogleTrendsOptions, HomeDepotNamespace, type HomeDepotProductOptions, type HomeDepotReviewsOptions, type HomeDepotSearchOptions, type IndeedCompanyOptions, type IndeedCompanyReviewsOptions, type IndeedJobOptions, IndeedNamespace, type IndeedSearchOptions, type InstagramCommentRepliesOptions, type InstagramFollowOptions, InstagramNamespace, type InstagramPostCommentsOptions, type InstagramPostOptions, type InstagramProfileOptions, type InstagramSearchOptions, type InstagramStoriesOptions, type InstagramUserFeedOptions, InsufficientCreditsError, InvalidAPIKeyError, type KuaishouCommentRepliesOptions, KuaishouNamespace, type KuaishouProfileOptions, type KuaishouSearchLiveOptions, type KuaishouSearchOptions, type KuaishouSearchUsersOptions, type KuaishouSearchVideosOptions, type KuaishouTagFeedOptions, type KuaishouTrendingOptions, type KuaishouUserLiveOptions, type KuaishouUserPostsOptions, type KuaishouUserResolveOptions, type KuaishouVideoCommentsOptions, type KuaishouVideoOptions, type KuaishouVideosBatchOptions, type LinkedInCompanyOptions, type LinkedInCompanyPostsOptions, type LinkedInCompanyPostsRequest, type LinkedInCompanyRefOptions, type LinkedInJobOptions, LinkedInNamespace, type LinkedInPersonContactOptions, type LinkedInPersonOptions, type LinkedInPersonPostsOptions, type LinkedInPersonPostsRequest, type LinkedInPersonRefOptions, type LinkedInPostCommentsOptions, type LinkedInPostOptions, type LinkedInSearchJobsOptions, type LinkedInSearchPeopleOptions, type LinkedInSearchPostsOptions, MAX_REQUESTS_PER_SECOND, type MercadoLibreBestSellersCountry, type MercadoLibreBestSellersOptions, type MercadoLibreCondition, type MercadoLibreCountry, type MercadoLibreDiscount, MercadoLibreNamespace, type MercadoLibreProductOptions, type MercadoLibreQuestionsOptions, type MercadoLibreReviewsOptions, type MercadoLibreSearchOptions, type MercadoLibreSort, type MetaAdsAdOptions, type MetaAdsAdvertiserOptions, MetaAdsNamespace, type MetaAdsSearchOptions, MissingAPIKeyError, NotFoundError, RateLimitError, type RealtorAgentOptions, type RealtorAgentsOptions, type RealtorListingStatus, type RealtorLocationsOptions, type RealtorMarketOptions, RealtorNamespace, type RealtorPropertyOptions, type RealtorPropertyType, type RealtorSearchOptions, type RealtorSort, type RedditCommentRepliesOptions, type RedditCommentSearchSort, type RedditFeedSort, RedditNamespace, type RedditPopularOptions, type RedditPostCommentsOptions, type RedditPostOptions, type RedditSearchCommentsOptions, type RedditSearchOptions, type RedditSearchSubredditsOptions, type RedditSearchSuggestionsOptions, type RedditSort, type RedditSubredditOptions, type RedditSubredditPostsOptions, type RedditUserFeedOptions, type RedditUserOptions, type RedfinMarketOptions, RedfinNamespace, type RedfinPropertyOptions, type RedfinSearchOptions, type RightmoveAgentOptions, type RightmoveAgentsOptions, type RightmoveExclude, type RightmoveFurnishing, type RightmoveLetType, type RightmoveListingStatus, type RightmoveLocationsOptions, type RightmoveMustHave, RightmoveNamespace, type RightmovePropertyOptions, type RightmovePropertyType, type RightmoveRadius, type RightmoveSearchOptions, type RightmoveSoldOptions, type RightmoveSoldPropertyOptions, type RightmoveSoldPropertyType, type RightmoveSoldSort, type RightmoveSort, type RightmoveTenure, type SECCompanyOptions, type SECConceptOptions, type SECFactsOptions, type SECFilingsOptions, type SECLookupOptions, SECNamespace, type SECSearchOptions, Scavio, ScavioAPIError, type ScavioConfig, ScavioConnectionError, ScavioError, ScavioTimeoutError, type TargetCategoryOptions, TargetNamespace, type TargetProductOptions, type TargetReviewsOptions, type TargetSearchOptions, ThreadsNamespace, type ThreadsPostCommentsOptions, type ThreadsPostOptions, type ThreadsProfileOptions, type ThreadsSearchUsersOptions, type ThreadsUserPostsOptions, type ThreadsUserRepliesOptions, type TikTokCommentRepliesOptions, type TikTokHashtagOptions, type TikTokHashtagVideosOptions, type TikTokMusicChartOptions, type TikTokMusicOptions, type TikTokMusicVideosOptions, TikTokNamespace, type TikTokPlaylistVideosOptions, type TikTokProfileOptions, type TikTokSearchMusicOptions, type TikTokSearchSuggestionsOptions, type TikTokSearchUsersOptions, type TikTokSearchVideosOptions, type TikTokShopCategoryProductsOptions, type TikTokShopListingRegion, TikTokShopNamespace, type TikTokShopProductOptions, type TikTokShopProductReviewsOptions, type TikTokShopRegion, type TikTokShopResolveOptions, type TikTokShopReviewSort, type TikTokShopSearchOptions, type TikTokShopShopProductsOptions, type TikTokShopSuggestionsOptions, type TikTokTrendingVideosOptions, type TikTokUserFollowersOptions, type TikTokUserFollowingsOptions, type TikTokUserPlaylistsOptions, type TikTokUserPostsOptions, type TikTokUserSimilarOptions, type TikTokUsernameOptions, type TikTokVideoCommentsOptions, type TikTokVideoOptions, type TripadvisorLocationOptions, type TripadvisorLocationsOptions, TripadvisorNamespace, type TripadvisorReviewsOptions, type TripadvisorSearchOptions, type TrustpilotBusinessAddress, type TrustpilotBusinessOptions, type TrustpilotCategoriesOptions, type TrustpilotCategoryOptions, type TrustpilotCategorySort, TrustpilotNamespace, type TrustpilotReviewOptions, type TrustpilotReviewsDateRange, type TrustpilotReviewsOptions, type TrustpilotReviewsSort, type TrustpilotSearchOptions, type TrustpilotStars, type WalmartCategoryOptions, WalmartNamespace, type WalmartOffersOptions, type WalmartProductOptions, type WalmartReviewsOptions, type WalmartSearchOptions, type WalmartSellerOptions, type WalmartSellerProductsOptions, type WalmartStore, type WalmartStoresData, type WalmartStoresOptions, type WalmartStoresResponse, type XCommunityOptions, type XCommunityTweetsOptions, XNamespace, type XSearchCommunitiesOptions, type XSearchOptions, type XTrendingOptions, type XTweetCommentsOptions, type XTweetOptions, type XTweetRetweetersOptions, type XUserFeedOptions, type XUserOptions, type YelpBusinessOptions, YelpNamespace, type YelpReviewsOptions, type YelpSearchOptions, type YouTubeChannelCommunityOptions, type YouTubeChannelOptions, type YouTubeChannelResolveOptions, type YouTubeChannelSearchOptions, type YouTubeChannelShortsOptions, type YouTubeChannelVideosOptions, type YouTubeCommentRepliesOptions, type YouTubeCommentsOptions, type YouTubeCommunityPostCommentsOptions, type YouTubeCommunityPostOptions, type YouTubeMetadataOptions, YouTubeNamespace, type YouTubeRelatedOptions, type YouTubeSearchOptions, type YouTubeShortsOptions, type YouTubeStreamsOptions, type YouTubeSuggestionsOptions, type YouTubeTranscriptOptions, type YouTubeVideoOptions, type ZillowAgentReviewsOptions, ZillowNamespace, type ZillowPropertyOptions, type ZillowSearchOptions };
|
|
5834
|
+
export { type AirbnbListingOptions, AirbnbNamespace, type AirbnbReviewsOptions, type AirbnbSearchOptions, AmazonNamespace, type AmazonOffersOptions, type AmazonProductOptions, type AmazonSearchOptions, type AppStoreAppOptions, AppStoreNamespace, type AppStoreReviewsOptions, type AppStoreSearchOptions, BadRequestError, type BookingHotelOptions, BookingNamespace, type BookingReviewsOptions, type BookingSearchOptions, CapterraNamespace, type CapterraProductOptions, type CapterraReviewsOptions, type CapterraSearchOptions, type CompaniesHouseCompanyOptions, type CompaniesHouseFilingHistoryOptions, CompaniesHouseNamespace, type CompaniesHouseOfficersOptions, type CompaniesHouseSearchOptions, type CostcoAutocompleteOptions, type CostcoAvailabilityOptions, type CostcoCategoriesOptions, type CostcoCategoryOptions, type CostcoClearanceOptions, type CostcoCountry, type CostcoCouponsOptions, type CostcoDealType, type CostcoDealsOptions, type CostcoGasOptions, type CostcoListingFilters, type CostcoNaCountry, CostcoNamespace, type CostcoPriceCode, type CostcoPricesOptions, type CostcoProductOptions, type CostcoReviewsOptions, type CostcoSearchOptions, type CostcoSortBy, type CostcoWarehousesOptions, DEFAULT_MAX_REQUESTS_PER_SECOND, EbayNamespace, type EbayProductOptions, type EbaySearchOptions, type EbaySellerOptions, type Extract, type ExtractBatchOptions, type ExtractCrawlOptions, type ExtractFormat, type ExtractJobCreatedResponse, type ExtractJobRequestOptions, type ExtractJobResult, type ExtractJobState, type ExtractJobStatusQuery, type ExtractJobStatusResponse, type ExtractJobSummary, type ExtractJobSummaryResponse, type ExtractMapLink, type ExtractMapOptions, type ExtractMapResponse, type ExtractMode, ExtractNamespace, type ExtractOptions, type ExtractSitemapMode, G2Namespace, type G2ProductOptions, type G2ReviewsOptions, type G2SearchOptions, type GlassdoorCompaniesOptions, type GlassdoorCompanyOptions, GlassdoorNamespace, type GlassdoorReviewsOptions, type GlassdoorSalariesOptions, type GoogleAdsAdvertisersOptions, type GoogleAdsCreativeOptions, GoogleAdsNamespace, type GoogleAdsSearchOptions, type GoogleAiModeOptions, type GoogleFlightsOptions, type GoogleHotelsDetailOptions, type GoogleHotelsOptions, type GoogleMapsPlaceOptions, type GoogleMapsReviewsOptions, type GoogleMapsSearchOptions, GoogleNamespace, type GoogleNewsOptions, type GooglePlayAppOptions, GooglePlayNamespace, type GooglePlayReviewsOptions, type GooglePlaySearchOptions, type GoogleSearchOptions, type GoogleShoppingOptions, type GoogleShoppingProductOptions, type GoogleShoppingStoresOptions, type GoogleTrendingOptions, type GoogleTrendsOptions, HomeDepotNamespace, type HomeDepotProductOptions, type HomeDepotReviewsOptions, type HomeDepotSearchOptions, type IndeedCompanyOptions, type IndeedCompanyReviewsOptions, type IndeedJobOptions, IndeedNamespace, type IndeedSearchOptions, type InstagramCommentRepliesOptions, type InstagramFollowOptions, InstagramNamespace, type InstagramPostCommentsOptions, type InstagramPostOptions, type InstagramProfileOptions, type InstagramSearchOptions, type InstagramStoriesOptions, type InstagramUserFeedOptions, InsufficientCreditsError, InvalidAPIKeyError, type KuaishouCommentRepliesOptions, KuaishouNamespace, type KuaishouProfileOptions, type KuaishouSearchLiveOptions, type KuaishouSearchOptions, type KuaishouSearchUsersOptions, type KuaishouSearchVideosOptions, type KuaishouTagFeedOptions, type KuaishouTrendingOptions, type KuaishouUserLiveOptions, type KuaishouUserPostsOptions, type KuaishouUserResolveOptions, type KuaishouVideoCommentsOptions, type KuaishouVideoOptions, type KuaishouVideosBatchOptions, type LinkedInCompanyOptions, type LinkedInCompanyPostsOptions, type LinkedInCompanyPostsRequest, type LinkedInCompanyRefOptions, type LinkedInJobOptions, LinkedInNamespace, type LinkedInPersonContactOptions, type LinkedInPersonOptions, type LinkedInPersonPostsOptions, type LinkedInPersonPostsRequest, type LinkedInPersonRefOptions, type LinkedInPostCommentsOptions, type LinkedInPostOptions, type LinkedInSearchJobsOptions, type LinkedInSearchPeopleOptions, type LinkedInSearchPostsOptions, MAX_REQUESTS_PER_SECOND, type MercadoLibreBestSellersCountry, type MercadoLibreBestSellersOptions, type MercadoLibreCondition, type MercadoLibreCountry, type MercadoLibreDiscount, MercadoLibreNamespace, type MercadoLibreProductOptions, type MercadoLibreQuestionsOptions, type MercadoLibreReviewsOptions, type MercadoLibreSearchOptions, type MercadoLibreSort, type MetaAdsAdOptions, type MetaAdsAdvertiserOptions, MetaAdsNamespace, type MetaAdsSearchOptions, MissingAPIKeyError, NotFoundError, RateLimitError, type RealtorAgentOptions, type RealtorAgentsOptions, type RealtorListingStatus, type RealtorLocationsOptions, type RealtorMarketOptions, RealtorNamespace, type RealtorPropertyOptions, type RealtorPropertyType, type RealtorSearchOptions, type RealtorSort, type RedditCommentRepliesOptions, type RedditCommentSearchSort, type RedditFeedSort, RedditNamespace, type RedditPopularOptions, type RedditPostCommentsOptions, type RedditPostOptions, type RedditSearchCommentsOptions, type RedditSearchOptions, type RedditSearchSubredditsOptions, type RedditSearchSuggestionsOptions, type RedditSort, type RedditSubredditOptions, type RedditSubredditPostsOptions, type RedditUserFeedOptions, type RedditUserOptions, type RedfinMarketOptions, RedfinNamespace, type RedfinPropertyOptions, type RedfinSearchOptions, type RightmoveAgentOptions, type RightmoveAgentsOptions, type RightmoveExclude, type RightmoveFurnishing, type RightmoveLetType, type RightmoveListingStatus, type RightmoveLocationsOptions, type RightmoveMustHave, RightmoveNamespace, type RightmovePropertyOptions, type RightmovePropertyType, type RightmoveRadius, type RightmoveSearchOptions, type RightmoveSoldOptions, type RightmoveSoldPropertyOptions, type RightmoveSoldPropertyType, type RightmoveSoldSort, type RightmoveSort, type RightmoveTenure, type SECCompanyOptions, type SECConceptOptions, type SECFactsOptions, type SECFilingsOptions, type SECLookupOptions, SECNamespace, type SECSearchOptions, Scavio, ScavioAPIError, type ScavioConfig, ScavioConnectionError, ScavioError, ScavioJobTimeoutError, ScavioTimeoutError, type TargetCategoryOptions, TargetNamespace, type TargetProductOptions, type TargetReviewsOptions, type TargetSearchOptions, ThreadsNamespace, type ThreadsPostCommentsOptions, type ThreadsPostOptions, type ThreadsProfileOptions, type ThreadsSearchUsersOptions, type ThreadsUserPostsOptions, type ThreadsUserRepliesOptions, type TikTokCommentRepliesOptions, type TikTokHashtagOptions, type TikTokHashtagVideosOptions, type TikTokMusicChartOptions, type TikTokMusicOptions, type TikTokMusicVideosOptions, TikTokNamespace, type TikTokPlaylistVideosOptions, type TikTokProfileOptions, type TikTokSearchMusicOptions, type TikTokSearchSuggestionsOptions, type TikTokSearchUsersOptions, type TikTokSearchVideosOptions, type TikTokShopCategoryProductsOptions, type TikTokShopListingRegion, TikTokShopNamespace, type TikTokShopProductOptions, type TikTokShopProductReviewsOptions, type TikTokShopRegion, type TikTokShopResolveOptions, type TikTokShopReviewSort, type TikTokShopSearchOptions, type TikTokShopShopProductsOptions, type TikTokShopSuggestionsOptions, type TikTokTrendingVideosOptions, type TikTokUserFollowersOptions, type TikTokUserFollowingsOptions, type TikTokUserPlaylistsOptions, type TikTokUserPostsOptions, type TikTokUserSimilarOptions, type TikTokUsernameOptions, type TikTokVideoCommentsOptions, type TikTokVideoOptions, type TikTokVideoTranscriptOptions, type TripadvisorLocationOptions, type TripadvisorLocationsOptions, TripadvisorNamespace, type TripadvisorReviewsOptions, type TripadvisorSearchOptions, type TrustpilotBusinessAddress, type TrustpilotBusinessOptions, type TrustpilotCategoriesOptions, type TrustpilotCategoryOptions, type TrustpilotCategorySort, TrustpilotNamespace, type TrustpilotReviewOptions, type TrustpilotReviewsDateRange, type TrustpilotReviewsOptions, type TrustpilotReviewsSort, type TrustpilotSearchOptions, type TrustpilotStars, type WalmartCategoryOptions, WalmartNamespace, type WalmartOffersOptions, type WalmartProductOptions, type WalmartReviewsOptions, type WalmartSearchOptions, type WalmartSellerOptions, type WalmartSellerProductsOptions, type WalmartStore, type WalmartStoresData, type WalmartStoresOptions, type WalmartStoresResponse, type XCommunityOptions, type XCommunityTweetsOptions, XNamespace, type XSearchCommunitiesOptions, type XSearchOptions, type XTrendingOptions, type XTweetCommentsOptions, type XTweetOptions, type XTweetRetweetersOptions, type XUserFeedOptions, type XUserOptions, type YelpBusinessOptions, YelpNamespace, type YelpReviewsOptions, type YelpSearchOptions, type YouTubeChannelCommunityOptions, type YouTubeChannelOptions, type YouTubeChannelResolveOptions, type YouTubeChannelSearchOptions, type YouTubeChannelShortsOptions, type YouTubeChannelVideosOptions, type YouTubeCommentRepliesOptions, type YouTubeCommentsOptions, type YouTubeCommunityPostCommentsOptions, type YouTubeCommunityPostOptions, type YouTubeMetadataOptions, YouTubeNamespace, type YouTubeRelatedOptions, type YouTubeSearchOptions, type YouTubeShortsOptions, type YouTubeStreamsOptions, type YouTubeSuggestionsOptions, type YouTubeTranscriptOptions, type YouTubeVideoOptions, type ZillowAgentReviewsOptions, ZillowNamespace, type ZillowPropertyOptions, type ZillowSearchOptions, verifyWebhook };
|