scavio 0.4.0 → 0.6.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 +42 -10
- package/dist/index.cjs +229 -36
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +575 -24
- package/dist/index.d.ts +575 -24
- package/dist/index.js +225 -35
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,33 +1,58 @@
|
|
|
1
1
|
interface AmazonSearchOptions {
|
|
2
|
+
/** Product search query (1-500 characters). */
|
|
2
3
|
query: string;
|
|
4
|
+
/** Amazon domain suffix (default 'com', e.g. 'co.uk'). */
|
|
3
5
|
domain?: string;
|
|
6
|
+
/** Country code for localization. */
|
|
4
7
|
country?: string;
|
|
8
|
+
/** Language code. */
|
|
5
9
|
language?: string;
|
|
10
|
+
/** Currency code (ISO 4217, e.g. 'USD'). */
|
|
6
11
|
currency?: string;
|
|
7
|
-
|
|
8
|
-
|
|
12
|
+
/** Device to emulate. */
|
|
13
|
+
device?: "desktop" | "mobile" | "tablet";
|
|
14
|
+
/** Result sort order. */
|
|
15
|
+
sort_by?: "most_recent" | "price_low_to_high" | "price_high_to_low" | "featured" | "average_review" | "bestsellers";
|
|
16
|
+
/** Starting page (1-indexed). */
|
|
9
17
|
start_page?: number;
|
|
18
|
+
/** Number of pages to fetch. */
|
|
10
19
|
pages?: number;
|
|
20
|
+
/** Amazon category id. */
|
|
11
21
|
category_id?: string;
|
|
22
|
+
/** Filter to a specific merchant. */
|
|
12
23
|
merchant_id?: string;
|
|
24
|
+
/** ZIP/postal code for localized pricing. */
|
|
13
25
|
zip_code?: string;
|
|
26
|
+
/** Auto-select the default variant. */
|
|
14
27
|
autoselect_variant?: boolean;
|
|
28
|
+
[key: string]: unknown;
|
|
15
29
|
}
|
|
16
30
|
interface AmazonProductOptions {
|
|
31
|
+
/** Amazon ASIN (e.g. 'B09XS7JWHH'). Sent to the API as 'query'. */
|
|
17
32
|
asin: string;
|
|
33
|
+
/** Amazon domain suffix (default 'com'). */
|
|
18
34
|
domain?: string;
|
|
35
|
+
/** Country code for localization. */
|
|
19
36
|
country?: string;
|
|
37
|
+
/** Language code. */
|
|
20
38
|
language?: string;
|
|
39
|
+
/** Currency code (ISO 4217, e.g. 'USD'). */
|
|
21
40
|
currency?: string;
|
|
22
|
-
|
|
41
|
+
/** Device to emulate. */
|
|
42
|
+
device?: "desktop" | "mobile" | "tablet";
|
|
43
|
+
/** ZIP/postal code for localized pricing. */
|
|
23
44
|
zip_code?: string;
|
|
45
|
+
/** Auto-select the default variant. */
|
|
24
46
|
autoselect_variant?: boolean;
|
|
47
|
+
[key: string]: unknown;
|
|
25
48
|
}
|
|
26
49
|
declare class AmazonNamespace {
|
|
27
50
|
private client;
|
|
28
51
|
constructor(client: Scavio);
|
|
29
52
|
search(options: AmazonSearchOptions): Promise<Record<string, unknown>>;
|
|
30
53
|
product(options: AmazonProductOptions): Promise<Record<string, unknown>>;
|
|
54
|
+
/** Supported Amazon domains, languages, currencies, and countries. */
|
|
55
|
+
options(): Promise<Record<string, unknown>>;
|
|
31
56
|
}
|
|
32
57
|
|
|
33
58
|
/**
|
|
@@ -37,70 +62,319 @@ declare class AmazonNamespace {
|
|
|
37
62
|
* See https://scavio.dev/docs/search-api.
|
|
38
63
|
*/
|
|
39
64
|
interface GoogleSearchOptions {
|
|
65
|
+
/** Search query (1-500 characters). */
|
|
40
66
|
query: string;
|
|
67
|
+
/** Device to emulate. */
|
|
68
|
+
device?: "desktop" | "mobile";
|
|
69
|
+
/** Result offset: 0 = page 1, 10 = page 2, ... up to 990. */
|
|
70
|
+
start?: number;
|
|
71
|
+
/** Include the raw Google HTML in the response. */
|
|
72
|
+
include_html?: boolean;
|
|
73
|
+
/** UI language (ISO 639-1, e.g. 'en'). */
|
|
74
|
+
hl?: string;
|
|
75
|
+
/** Country of the search (ISO 3166-1 alpha-2, e.g. 'us'). */
|
|
76
|
+
gl?: string;
|
|
77
|
+
/** Regional Google domain (e.g. 'google.co.uk'). */
|
|
78
|
+
google_domain?: string;
|
|
79
|
+
/** Canonical location name; auto-encoded to a UULE string. */
|
|
80
|
+
location?: string;
|
|
81
|
+
/** Pre-encoded UULE location string (takes priority over location). */
|
|
82
|
+
uule?: string;
|
|
83
|
+
/** Language restrict (e.g. 'lang_en'). */
|
|
84
|
+
lr?: string;
|
|
85
|
+
/** Country restrict (e.g. 'countryUS'). */
|
|
86
|
+
cr?: string;
|
|
87
|
+
/** SafeSearch filter. */
|
|
88
|
+
safe?: "active";
|
|
89
|
+
/** Disable spelling correction / auto-fixes when true. */
|
|
90
|
+
nfpr?: boolean;
|
|
91
|
+
/** '0' disables the omitted/similar-results filter. */
|
|
92
|
+
filter?: "0" | "1";
|
|
93
|
+
/** Restrict results to a recent time window. */
|
|
94
|
+
time_period?: "last_hour" | "last_day" | "last_week" | "last_month" | "last_year";
|
|
95
|
+
/** Resolve a deferred AI Overview (server default true). */
|
|
96
|
+
resolve_ai_overview?: boolean;
|
|
41
97
|
[key: string]: unknown;
|
|
42
98
|
}
|
|
43
99
|
interface GoogleAiModeOptions {
|
|
100
|
+
/** Question or prompt (1-500 characters). */
|
|
44
101
|
query: string;
|
|
102
|
+
/** Device to emulate. */
|
|
103
|
+
device?: "desktop" | "mobile";
|
|
104
|
+
/** Include the raw Google HTML in the response. */
|
|
105
|
+
include_html?: boolean;
|
|
106
|
+
/** UI language (ISO 639-1, e.g. 'en'). */
|
|
107
|
+
hl?: string;
|
|
108
|
+
/** Country of the search (ISO 3166-1 alpha-2, e.g. 'us'). */
|
|
109
|
+
gl?: string;
|
|
110
|
+
/** Regional Google domain (e.g. 'google.co.uk'). */
|
|
111
|
+
google_domain?: string;
|
|
112
|
+
/** Canonical location name; auto-encoded to a UULE string. */
|
|
113
|
+
location?: string;
|
|
114
|
+
/** Pre-encoded UULE location string (takes priority over location). */
|
|
115
|
+
uule?: string;
|
|
116
|
+
/** SafeSearch filter. */
|
|
117
|
+
safe?: "active";
|
|
45
118
|
[key: string]: unknown;
|
|
46
119
|
}
|
|
47
120
|
interface GoogleMapsSearchOptions {
|
|
121
|
+
/** Search query (1-500 characters). */
|
|
48
122
|
query: string;
|
|
123
|
+
/** Result offset; must be a multiple of 20 (0, 20, 40, ...). */
|
|
124
|
+
start?: number;
|
|
125
|
+
/** Map center as '@lat,lng,zoomz'; controls where results come from. */
|
|
126
|
+
ll?: string;
|
|
127
|
+
/** UI language (ISO 639-1, e.g. 'en'). */
|
|
128
|
+
hl?: string;
|
|
129
|
+
/** Country of the search (ISO 3166-1 alpha-2, e.g. 'us'). */
|
|
130
|
+
gl?: string;
|
|
131
|
+
/** Regional Google domain (e.g. 'google.co.uk'). */
|
|
132
|
+
google_domain?: string;
|
|
49
133
|
[key: string]: unknown;
|
|
50
134
|
}
|
|
51
135
|
interface GoogleMapsPlaceOptions {
|
|
136
|
+
/** Place ID (ChIJ...). */
|
|
52
137
|
place_id?: string;
|
|
138
|
+
/** Numeric CID. */
|
|
53
139
|
data_cid?: string;
|
|
54
140
|
[key: string]: unknown;
|
|
55
141
|
}
|
|
56
142
|
interface GoogleMapsReviewsOptions {
|
|
143
|
+
/** Data ID (0xHEX:0xHEX). */
|
|
57
144
|
data_id?: string;
|
|
145
|
+
/** Place ID (ChIJ...). */
|
|
58
146
|
place_id?: string;
|
|
147
|
+
/** Reviews per page (1-20). */
|
|
148
|
+
num?: number;
|
|
149
|
+
/** Pagination cursor from a prior response. */
|
|
150
|
+
next_page_token?: string;
|
|
151
|
+
/** Sort order. */
|
|
152
|
+
sort_by?: "relevance" | "newest" | "highest_rating" | "lowest_rating";
|
|
153
|
+
/** UI language (ISO 639-1, e.g. 'en'). */
|
|
154
|
+
hl?: string;
|
|
155
|
+
/** Country of the search (ISO 3166-1 alpha-2, e.g. 'us'). */
|
|
156
|
+
gl?: string;
|
|
157
|
+
/** Regional Google domain (e.g. 'google.co.uk'). */
|
|
158
|
+
google_domain?: string;
|
|
59
159
|
[key: string]: unknown;
|
|
60
160
|
}
|
|
61
161
|
interface GoogleShoppingOptions {
|
|
162
|
+
/** Product search query (1-500 characters). */
|
|
62
163
|
query: string;
|
|
164
|
+
/** Device to emulate. */
|
|
165
|
+
device?: "desktop" | "mobile";
|
|
166
|
+
/** Result offset. */
|
|
167
|
+
start?: number;
|
|
168
|
+
/** Minimum price filter. */
|
|
169
|
+
min_price?: number;
|
|
170
|
+
/** Maximum price filter. */
|
|
171
|
+
max_price?: number;
|
|
172
|
+
/** 0 = relevance, 1 = price ascending, 2 = price descending. */
|
|
173
|
+
sort_by?: number;
|
|
174
|
+
/** Only items with free shipping. */
|
|
175
|
+
free_shipping?: boolean;
|
|
176
|
+
/** Only items on sale. */
|
|
177
|
+
on_sale?: boolean;
|
|
178
|
+
/** Opaque Google Shopping filter token. */
|
|
179
|
+
shoprs?: string;
|
|
180
|
+
/** UI language (ISO 639-1, e.g. 'en'). */
|
|
181
|
+
hl?: string;
|
|
182
|
+
/** Country of the search (ISO 3166-1 alpha-2, e.g. 'us'). */
|
|
183
|
+
gl?: string;
|
|
184
|
+
/** Regional Google domain (e.g. 'google.co.uk'). */
|
|
185
|
+
google_domain?: string;
|
|
186
|
+
/** Canonical location name; auto-encoded to a UULE string. */
|
|
187
|
+
location?: string;
|
|
188
|
+
/** Pre-encoded UULE location string (takes priority over location). */
|
|
189
|
+
uule?: string;
|
|
63
190
|
[key: string]: unknown;
|
|
64
191
|
}
|
|
65
192
|
interface GoogleShoppingProductOptions {
|
|
193
|
+
/** Durable product catalog id. */
|
|
66
194
|
catalog_id?: string;
|
|
195
|
+
/** Product query; required when catalog_id is set. */
|
|
67
196
|
query?: string;
|
|
197
|
+
/** Immersive product page token. */
|
|
198
|
+
immersive_product_page_token?: string;
|
|
199
|
+
/** Alias for immersive_product_page_token. */
|
|
200
|
+
page_token?: string;
|
|
201
|
+
/** Product id. */
|
|
68
202
|
product_id?: string;
|
|
203
|
+
/** Device to emulate. */
|
|
204
|
+
device?: "desktop" | "mobile" | "tablet";
|
|
205
|
+
/** Regional Google domain (e.g. 'google.co.uk'). */
|
|
206
|
+
google_domain?: string;
|
|
207
|
+
/** Seller sort order. */
|
|
208
|
+
sort_by?: "base_price" | "total_price" | "promotion" | "seller_rating";
|
|
209
|
+
/** Load all available stores. */
|
|
210
|
+
load_all_stores?: boolean;
|
|
211
|
+
/** Fetch additional stores. */
|
|
212
|
+
more_stores?: boolean;
|
|
213
|
+
/** UI language (ISO 639-1, e.g. 'en'). */
|
|
214
|
+
hl?: string;
|
|
215
|
+
/** Country of the search (ISO 3166-1 alpha-2, e.g. 'us'). */
|
|
216
|
+
gl?: string;
|
|
217
|
+
/** Canonical location name; auto-encoded to a UULE string. */
|
|
218
|
+
location?: string;
|
|
219
|
+
/** Pre-encoded UULE location string (takes priority over location). */
|
|
220
|
+
uule?: string;
|
|
69
221
|
[key: string]: unknown;
|
|
70
222
|
}
|
|
71
223
|
interface GoogleShoppingStoresOptions {
|
|
224
|
+
/** Durable product catalog id. */
|
|
72
225
|
catalog_id: string;
|
|
226
|
+
/** Pagination cursor from shopping_product. */
|
|
73
227
|
next_page_token: string;
|
|
74
228
|
[key: string]: unknown;
|
|
75
229
|
}
|
|
76
230
|
interface GoogleFlightsOptions {
|
|
231
|
+
/** Departure IATA code(s); comma-separated allowed. */
|
|
77
232
|
departure_id: string;
|
|
233
|
+
/** Arrival IATA code(s); comma-separated allowed. */
|
|
78
234
|
arrival_id: string;
|
|
235
|
+
/** Outbound date (YYYY-MM-DD). */
|
|
79
236
|
outbound_date: string;
|
|
237
|
+
/** 1 = round trip, 2 = one way, 3 = multi-city. */
|
|
238
|
+
type?: number;
|
|
239
|
+
/** Return date (YYYY-MM-DD); required when type=1. */
|
|
240
|
+
return_date?: string;
|
|
241
|
+
/** Number of adults (1-9). */
|
|
242
|
+
adults?: number;
|
|
243
|
+
/** Number of children (0-9). */
|
|
244
|
+
children?: number;
|
|
245
|
+
/** Infants in seat (0-4). */
|
|
246
|
+
infants_in_seat?: number;
|
|
247
|
+
/** Infants on lap (0-4). */
|
|
248
|
+
infants_on_lap?: number;
|
|
249
|
+
/** 1 = economy, 2 = premium, 3 = business, 4 = first. */
|
|
250
|
+
travel_class?: number;
|
|
251
|
+
/** 0 = any, 1 = nonstop, 2 = <=1 stop, 3 = <=2 stops. */
|
|
252
|
+
stops?: number;
|
|
253
|
+
/** 1 = top, 2 = price, 3 = departure, 4 = arrival, 5 = duration, 6 = emissions. */
|
|
254
|
+
sort_by?: number;
|
|
255
|
+
/** Comma-separated airline codes/alliances to include. */
|
|
256
|
+
include_airlines?: string;
|
|
257
|
+
/** Comma-separated airline codes/alliances to exclude. */
|
|
258
|
+
exclude_airlines?: string;
|
|
259
|
+
/** UI language (ISO 639-1, e.g. 'en'). */
|
|
260
|
+
hl?: string;
|
|
261
|
+
/** Country of the search (ISO 3166-1 alpha-2, e.g. 'us'). */
|
|
262
|
+
gl?: string;
|
|
263
|
+
/** Currency code (ISO 4217, e.g. 'USD'). */
|
|
264
|
+
currency?: string;
|
|
80
265
|
[key: string]: unknown;
|
|
81
266
|
}
|
|
82
267
|
interface GoogleHotelsOptions {
|
|
268
|
+
/** Search query; use a '<City> hotels' form. */
|
|
83
269
|
query: string;
|
|
270
|
+
/** Check-in date (YYYY-MM-DD). */
|
|
84
271
|
check_in_date: string;
|
|
272
|
+
/** Check-out date (YYYY-MM-DD). */
|
|
85
273
|
check_out_date: string;
|
|
274
|
+
/** UI language (ISO 639-1, e.g. 'en'). */
|
|
275
|
+
hl?: string;
|
|
276
|
+
/** Country of the search (ISO 3166-1 alpha-2, e.g. 'us'). */
|
|
277
|
+
gl?: string;
|
|
278
|
+
/** Currency code (ISO 4217, e.g. 'USD'). */
|
|
279
|
+
currency?: string;
|
|
280
|
+
/** 3 = lowest price, 8 = highest rating, 13 = most reviewed. */
|
|
281
|
+
sort_by?: number;
|
|
282
|
+
/** Minimum nightly price. */
|
|
283
|
+
min_price?: number;
|
|
284
|
+
/** Maximum nightly price. */
|
|
285
|
+
max_price?: number;
|
|
286
|
+
/** 7 = 3.5+, 8 = 4.0+, 9 = 4.5+. */
|
|
287
|
+
rating?: number;
|
|
288
|
+
/** Comma-separated star ratings (2-5). */
|
|
289
|
+
hotel_class?: string;
|
|
290
|
+
/** Comma-separated amenity ids. */
|
|
291
|
+
amenities?: string;
|
|
292
|
+
/** Comma-separated property-type ids (e.g. '12' for vacation rentals). */
|
|
293
|
+
property_types?: string;
|
|
294
|
+
/** Only properties with free cancellation. */
|
|
295
|
+
free_cancellation?: boolean;
|
|
296
|
+
/** Only eco-certified properties. */
|
|
297
|
+
eco_certified?: boolean;
|
|
298
|
+
/** Only properties with special offers. */
|
|
299
|
+
special_offers?: boolean;
|
|
300
|
+
/** Pagination cursor from a prior response. */
|
|
301
|
+
next_page_token?: string;
|
|
302
|
+
/** Number of properties to return (1-20). */
|
|
303
|
+
limit?: number;
|
|
86
304
|
[key: string]: unknown;
|
|
87
305
|
}
|
|
88
306
|
interface GoogleHotelsDetailOptions {
|
|
307
|
+
/** Property detail token from a hotels listing. */
|
|
89
308
|
detail_token: string;
|
|
309
|
+
/** Check-in date (YYYY-MM-DD). */
|
|
90
310
|
check_in_date: string;
|
|
311
|
+
/** Check-out date (YYYY-MM-DD). */
|
|
91
312
|
check_out_date: string;
|
|
313
|
+
/** Currency code (ISO 4217, e.g. 'USD'). */
|
|
314
|
+
currency?: string;
|
|
315
|
+
/** Country of the search (ISO 3166-1 alpha-2, e.g. 'us'). */
|
|
316
|
+
gl?: string;
|
|
317
|
+
/** UI language (ISO 639-1, e.g. 'en'). */
|
|
318
|
+
hl?: string;
|
|
92
319
|
[key: string]: unknown;
|
|
93
320
|
}
|
|
94
321
|
interface GoogleNewsOptions {
|
|
322
|
+
/** Keyword search. */
|
|
95
323
|
query?: string;
|
|
324
|
+
/** Browse a news topic. */
|
|
325
|
+
topic_token?: string;
|
|
326
|
+
/** Browse a topic section. */
|
|
327
|
+
section_token?: string;
|
|
328
|
+
/** Fetch full coverage of a story. */
|
|
329
|
+
story_token?: string;
|
|
330
|
+
/** Browse a publication. */
|
|
331
|
+
publication_token?: string;
|
|
332
|
+
/** Knowledge Graph entity id. */
|
|
333
|
+
kgmid?: string;
|
|
334
|
+
/** UI language (ISO 639-1, e.g. 'en'). */
|
|
335
|
+
hl?: string;
|
|
336
|
+
/** Country of the search (ISO 3166-1 alpha-2, e.g. 'us'). */
|
|
337
|
+
gl?: string;
|
|
338
|
+
/** Regional Google domain (e.g. 'google.co.uk'). */
|
|
339
|
+
google_domain?: string;
|
|
340
|
+
/** Sort order: 0 = relevance, 1 = date (only with query or kgmid). */
|
|
341
|
+
so?: number;
|
|
96
342
|
[key: string]: unknown;
|
|
97
343
|
}
|
|
98
344
|
interface GoogleTrendsOptions {
|
|
345
|
+
/** Search term(s); comma-separated for comparisons. */
|
|
99
346
|
query: string;
|
|
347
|
+
/** Location code (e.g. 'US', 'GB', 'US-CA'). */
|
|
348
|
+
geo?: string;
|
|
349
|
+
/** UI language (ISO 639-1, e.g. 'en'). */
|
|
350
|
+
hl?: string;
|
|
351
|
+
/** Time range (e.g. 'today 12-m', 'now 7-d'). */
|
|
352
|
+
date?: string;
|
|
353
|
+
/** Timezone offset in minutes. */
|
|
354
|
+
tz?: string;
|
|
355
|
+
/** Which trends dataset to return. */
|
|
356
|
+
data_type?: "TIMESERIES" | "GEO_MAP" | "GEO_MAP_0" | "RELATED_QUERIES" | "RELATED_TOPICS";
|
|
357
|
+
/** Category id. */
|
|
358
|
+
cat?: string;
|
|
359
|
+
/** Google property filter. */
|
|
360
|
+
gprop?: "images" | "news" | "youtube" | "froogle";
|
|
361
|
+
/** Resolution for GEO_MAP data. */
|
|
362
|
+
region?: "COUNTRY" | "REGION" | "DMA" | "CITY";
|
|
100
363
|
[key: string]: unknown;
|
|
101
364
|
}
|
|
102
365
|
interface GoogleTrendingOptions {
|
|
366
|
+
/** Country code (e.g. 'US'). */
|
|
103
367
|
geo: string;
|
|
368
|
+
/** UI language (ISO 639-1, e.g. 'en'). */
|
|
369
|
+
hl?: string;
|
|
370
|
+
/** Trending window: 4, 24, 48, or 168. */
|
|
371
|
+
hours?: number;
|
|
372
|
+
/** Category id (0-20). */
|
|
373
|
+
cat?: number;
|
|
374
|
+
/** Sort order. */
|
|
375
|
+
sort?: "relevance" | "search_volume" | "recency" | "title";
|
|
376
|
+
/** Filter by trend status. */
|
|
377
|
+
status?: "all" | "active";
|
|
104
378
|
[key: string]: unknown;
|
|
105
379
|
}
|
|
106
380
|
declare class GoogleNamespace {
|
|
@@ -137,13 +411,20 @@ declare class GoogleNamespace {
|
|
|
137
411
|
}
|
|
138
412
|
|
|
139
413
|
interface RedditSearchOptions {
|
|
414
|
+
/** Search query (1-500 characters). */
|
|
140
415
|
query: string;
|
|
141
|
-
type
|
|
142
|
-
|
|
416
|
+
/** Result type (server default 'posts'). */
|
|
417
|
+
type?: "posts" | "comments";
|
|
418
|
+
/** Sort order (server default 'new'). */
|
|
419
|
+
sort?: "new" | "relevance" | "hot" | "top" | "comments";
|
|
420
|
+
/** Pagination cursor from a prior response. */
|
|
143
421
|
cursor?: string;
|
|
422
|
+
[key: string]: unknown;
|
|
144
423
|
}
|
|
145
424
|
interface RedditPostOptions {
|
|
425
|
+
/** Full Reddit post URL. */
|
|
146
426
|
url: string;
|
|
427
|
+
[key: string]: unknown;
|
|
147
428
|
}
|
|
148
429
|
declare class RedditNamespace {
|
|
149
430
|
private client;
|
|
@@ -153,61 +434,107 @@ declare class RedditNamespace {
|
|
|
153
434
|
}
|
|
154
435
|
|
|
155
436
|
interface TikTokProfileOptions {
|
|
437
|
+
/** TikTok @username (without the @). */
|
|
156
438
|
username?: string;
|
|
439
|
+
/** TikTok sec_user_id. */
|
|
157
440
|
sec_user_id?: string;
|
|
441
|
+
[key: string]: unknown;
|
|
158
442
|
}
|
|
159
443
|
interface TikTokUserPostsOptions {
|
|
444
|
+
/** TikTok sec_user_id. */
|
|
160
445
|
sec_user_id: string;
|
|
446
|
+
/** Pagination cursor (default '0'). */
|
|
161
447
|
cursor?: string;
|
|
448
|
+
/** Results per page (1-30). */
|
|
162
449
|
count?: number;
|
|
163
|
-
|
|
450
|
+
/** '0' = latest, '1' = popular. */
|
|
451
|
+
sort_type?: "0" | "1";
|
|
452
|
+
[key: string]: unknown;
|
|
164
453
|
}
|
|
165
454
|
interface TikTokVideoOptions {
|
|
455
|
+
/** TikTok video id. */
|
|
166
456
|
video_id: string;
|
|
457
|
+
[key: string]: unknown;
|
|
167
458
|
}
|
|
168
459
|
interface TikTokVideoCommentsOptions {
|
|
460
|
+
/** TikTok video id. */
|
|
169
461
|
video_id: string;
|
|
462
|
+
/** Pagination cursor (default '0'). */
|
|
170
463
|
cursor?: string;
|
|
464
|
+
/** Results per page (1-50). */
|
|
171
465
|
count?: number;
|
|
466
|
+
[key: string]: unknown;
|
|
172
467
|
}
|
|
173
468
|
interface TikTokCommentRepliesOptions {
|
|
469
|
+
/** TikTok video id. */
|
|
174
470
|
video_id: string;
|
|
471
|
+
/** Parent comment id. */
|
|
175
472
|
comment_id: string;
|
|
473
|
+
/** Pagination cursor (default '0'). */
|
|
176
474
|
cursor?: string;
|
|
475
|
+
/** Results per page (1-50). */
|
|
177
476
|
count?: number;
|
|
477
|
+
[key: string]: unknown;
|
|
178
478
|
}
|
|
179
479
|
interface TikTokSearchVideosOptions {
|
|
480
|
+
/** Search keyword (1-500 characters). */
|
|
180
481
|
keyword: string;
|
|
482
|
+
/** Pagination cursor (default '0'). */
|
|
181
483
|
cursor?: string;
|
|
484
|
+
/** Results per page (1-30). */
|
|
182
485
|
count?: number;
|
|
183
|
-
|
|
184
|
-
|
|
486
|
+
/** '0' = relevance, '1' = most likes. */
|
|
487
|
+
sort_type?: "0" | "1";
|
|
488
|
+
/** Age filter in days: 0 = all time, 1, 7, 30, 90, 180. */
|
|
489
|
+
publish_time?: "0" | "1" | "7" | "30" | "90" | "180";
|
|
490
|
+
[key: string]: unknown;
|
|
185
491
|
}
|
|
186
492
|
interface TikTokSearchUsersOptions {
|
|
493
|
+
/** Search keyword (1-500 characters). */
|
|
187
494
|
keyword: string;
|
|
495
|
+
/** Pagination cursor (default '0'). */
|
|
188
496
|
cursor?: string;
|
|
497
|
+
/** Results per page (1-30). */
|
|
189
498
|
count?: number;
|
|
499
|
+
[key: string]: unknown;
|
|
190
500
|
}
|
|
191
501
|
interface TikTokHashtagOptions {
|
|
502
|
+
/** Hashtag name (without the #). */
|
|
192
503
|
hashtag_name?: string;
|
|
504
|
+
/** Hashtag id. */
|
|
193
505
|
hashtag_id?: string;
|
|
506
|
+
[key: string]: unknown;
|
|
194
507
|
}
|
|
195
508
|
interface TikTokHashtagVideosOptions {
|
|
509
|
+
/** Hashtag id. */
|
|
196
510
|
hashtag_id: string;
|
|
511
|
+
/** Pagination cursor (default '0'). */
|
|
197
512
|
cursor?: string;
|
|
513
|
+
/** Results per page (1-30). */
|
|
198
514
|
count?: number;
|
|
515
|
+
[key: string]: unknown;
|
|
199
516
|
}
|
|
200
517
|
interface TikTokUserFollowersOptions {
|
|
518
|
+
/** TikTok sec_user_id. */
|
|
201
519
|
sec_user_id: string;
|
|
520
|
+
/** Results per page (1-20). */
|
|
202
521
|
count?: number;
|
|
522
|
+
/** Pagination token from a prior response. */
|
|
203
523
|
page_token?: string;
|
|
524
|
+
/** Minimum timestamp cursor. */
|
|
204
525
|
min_time?: number;
|
|
526
|
+
[key: string]: unknown;
|
|
205
527
|
}
|
|
206
528
|
interface TikTokUserFollowingsOptions {
|
|
529
|
+
/** TikTok sec_user_id. */
|
|
207
530
|
sec_user_id: string;
|
|
531
|
+
/** Results per page (1-20). */
|
|
208
532
|
count?: number;
|
|
533
|
+
/** Pagination token from a prior response. */
|
|
209
534
|
page_token?: string;
|
|
535
|
+
/** Minimum timestamp cursor. */
|
|
210
536
|
min_time?: number;
|
|
537
|
+
[key: string]: unknown;
|
|
211
538
|
}
|
|
212
539
|
declare class TikTokNamespace {
|
|
213
540
|
private client;
|
|
@@ -226,44 +553,76 @@ declare class TikTokNamespace {
|
|
|
226
553
|
}
|
|
227
554
|
|
|
228
555
|
interface InstagramProfileOptions {
|
|
556
|
+
/** Instagram username (without the @). */
|
|
229
557
|
username?: string;
|
|
558
|
+
/** Instagram numeric user id. */
|
|
230
559
|
user_id?: string;
|
|
560
|
+
[key: string]: unknown;
|
|
231
561
|
}
|
|
232
562
|
interface InstagramUserFeedOptions {
|
|
563
|
+
/** Instagram username (without the @). */
|
|
233
564
|
username?: string;
|
|
565
|
+
/** Instagram numeric user id. */
|
|
234
566
|
user_id?: string;
|
|
567
|
+
/** Results per page (1-50). */
|
|
235
568
|
count?: number;
|
|
569
|
+
/** Pagination cursor from a prior response. */
|
|
236
570
|
cursor?: string;
|
|
571
|
+
[key: string]: unknown;
|
|
237
572
|
}
|
|
238
573
|
interface InstagramStoriesOptions {
|
|
574
|
+
/** Instagram username (without the @). */
|
|
239
575
|
username?: string;
|
|
576
|
+
/** Instagram numeric user id. */
|
|
240
577
|
user_id?: string;
|
|
578
|
+
[key: string]: unknown;
|
|
241
579
|
}
|
|
242
580
|
interface InstagramPostOptions {
|
|
581
|
+
/** Full Instagram post URL. */
|
|
243
582
|
url?: string;
|
|
583
|
+
/** Instagram media id. */
|
|
244
584
|
media_id?: string;
|
|
585
|
+
/** Instagram shortcode (from the post URL). */
|
|
245
586
|
shortcode?: string;
|
|
587
|
+
[key: string]: unknown;
|
|
246
588
|
}
|
|
247
589
|
interface InstagramPostCommentsOptions {
|
|
590
|
+
/** Instagram shortcode (from the post URL). */
|
|
248
591
|
shortcode?: string;
|
|
592
|
+
/** Full Instagram post URL. */
|
|
249
593
|
url?: string;
|
|
594
|
+
/** Pagination cursor from a prior response. */
|
|
250
595
|
cursor?: string;
|
|
251
|
-
|
|
596
|
+
/** Comment sort order. */
|
|
597
|
+
sort_order?: "popular" | "newest";
|
|
598
|
+
[key: string]: unknown;
|
|
252
599
|
}
|
|
253
600
|
interface InstagramCommentRepliesOptions {
|
|
601
|
+
/** Instagram media id. */
|
|
254
602
|
media_id: string;
|
|
603
|
+
/** Parent comment id. */
|
|
255
604
|
comment_id: string;
|
|
605
|
+
/** Pagination cursor from a prior response. */
|
|
256
606
|
cursor?: string;
|
|
607
|
+
[key: string]: unknown;
|
|
257
608
|
}
|
|
258
609
|
interface InstagramSearchOptions {
|
|
610
|
+
/** Search keyword (1-500 characters). */
|
|
259
611
|
keyword: string;
|
|
612
|
+
/** Pagination cursor from a prior response. */
|
|
260
613
|
cursor?: string;
|
|
614
|
+
[key: string]: unknown;
|
|
261
615
|
}
|
|
262
616
|
interface InstagramFollowOptions {
|
|
617
|
+
/** Instagram username (without the @). */
|
|
263
618
|
username?: string;
|
|
619
|
+
/** Instagram numeric user id. */
|
|
264
620
|
user_id?: string;
|
|
621
|
+
/** Results per page (1-100). */
|
|
265
622
|
count?: number;
|
|
623
|
+
/** Pagination cursor from a prior response. */
|
|
266
624
|
cursor?: string;
|
|
625
|
+
[key: string]: unknown;
|
|
267
626
|
}
|
|
268
627
|
declare class InstagramNamespace {
|
|
269
628
|
private client;
|
|
@@ -283,24 +642,42 @@ declare class InstagramNamespace {
|
|
|
283
642
|
}
|
|
284
643
|
|
|
285
644
|
interface WalmartSearchOptions {
|
|
645
|
+
/** Product search query (1-500 characters). */
|
|
286
646
|
query: string;
|
|
647
|
+
/** Walmart domain. */
|
|
287
648
|
domain?: string;
|
|
288
|
-
|
|
289
|
-
|
|
649
|
+
/** Device to emulate. */
|
|
650
|
+
device?: "desktop" | "mobile" | "tablet";
|
|
651
|
+
/** Result sort order. */
|
|
652
|
+
sort_by?: "best_match" | "price_low" | "price_high" | "best_seller";
|
|
653
|
+
/** Starting page (1-indexed). */
|
|
290
654
|
start_page?: number;
|
|
655
|
+
/** Minimum price filter (USD). */
|
|
291
656
|
min_price?: number;
|
|
657
|
+
/** Maximum price filter (USD). */
|
|
292
658
|
max_price?: number;
|
|
293
|
-
|
|
294
|
-
|
|
659
|
+
/** Delivery speed filter. */
|
|
660
|
+
fulfillment_speed?: "today" | "tomorrow" | "2_days" | "anytime";
|
|
661
|
+
/** Fulfillment type filter. */
|
|
662
|
+
fulfillment_type?: "in_store";
|
|
663
|
+
/** ZIP code for localized results. */
|
|
295
664
|
delivery_zip?: string;
|
|
665
|
+
/** Store id for in-store availability. */
|
|
296
666
|
store_id?: string;
|
|
667
|
+
[key: string]: unknown;
|
|
297
668
|
}
|
|
298
669
|
interface WalmartProductOptions {
|
|
670
|
+
/** Walmart product id. */
|
|
299
671
|
product_id: string;
|
|
672
|
+
/** Walmart domain. */
|
|
300
673
|
domain?: string;
|
|
301
|
-
|
|
674
|
+
/** Device to emulate. */
|
|
675
|
+
device?: "desktop" | "mobile" | "tablet";
|
|
676
|
+
/** ZIP code for localized pricing. */
|
|
302
677
|
delivery_zip?: string;
|
|
678
|
+
/** Store id for in-store availability. */
|
|
303
679
|
store_id?: string;
|
|
680
|
+
[key: string]: unknown;
|
|
304
681
|
}
|
|
305
682
|
declare class WalmartNamespace {
|
|
306
683
|
private client;
|
|
@@ -310,24 +687,169 @@ declare class WalmartNamespace {
|
|
|
310
687
|
}
|
|
311
688
|
|
|
312
689
|
interface YouTubeSearchOptions {
|
|
690
|
+
/** Search query (1-500 characters). Sent to the API as 'search'. */
|
|
313
691
|
query: string;
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
692
|
+
/** Filter by upload date. */
|
|
693
|
+
upload_date?: "last_hour" | "today" | "this_week" | "this_month" | "this_year";
|
|
694
|
+
/** Filter by result type. */
|
|
695
|
+
type?: "video" | "channel" | "playlist" | "movie";
|
|
696
|
+
/** short (<4 min), medium (4-20 min), long (>20 min). */
|
|
697
|
+
duration?: "short" | "medium" | "long";
|
|
698
|
+
/** Sort order. */
|
|
699
|
+
sort_by?: "relevance" | "date" | "view_count" | "rating";
|
|
700
|
+
/**
|
|
701
|
+
* Feature filters, e.g. ["hd", "4k", "subtitles", "creative_commons",
|
|
702
|
+
* "live", "360", "3d", "hdr", "vr180"].
|
|
703
|
+
*/
|
|
704
|
+
features?: string[];
|
|
705
|
+
/** Pagination cursor from a prior response. */
|
|
706
|
+
cursor?: string;
|
|
707
|
+
/** HD videos only. */
|
|
318
708
|
hd?: boolean;
|
|
709
|
+
/** Videos with subtitles/CC only. */
|
|
319
710
|
subtitles?: boolean;
|
|
711
|
+
/** Creative Commons licensed only. */
|
|
320
712
|
creative_commons?: boolean;
|
|
713
|
+
/** Live videos only. */
|
|
321
714
|
live?: boolean;
|
|
715
|
+
/** HDR videos only. */
|
|
716
|
+
hdr?: boolean;
|
|
717
|
+
/** Videos with location metadata only. */
|
|
718
|
+
location?: boolean;
|
|
719
|
+
/** VR180 videos only. */
|
|
720
|
+
vr180?: boolean;
|
|
721
|
+
/** 4K videos only. Sent to the API as '4k'. */
|
|
722
|
+
fourK?: boolean;
|
|
723
|
+
/** 360-degree videos only. Sent to the API as '360'. */
|
|
724
|
+
video_360?: boolean;
|
|
725
|
+
/** 3D videos only. Sent to the API as '3d'. */
|
|
726
|
+
video_3d?: boolean;
|
|
727
|
+
[key: string]: unknown;
|
|
728
|
+
}
|
|
729
|
+
interface YouTubeShortsOptions {
|
|
730
|
+
/** Search query (1-500 characters). Sent to the API as 'search'. */
|
|
731
|
+
query: string;
|
|
732
|
+
/** Sort order. */
|
|
733
|
+
sort_by?: "relevance" | "date" | "view_count" | "rating";
|
|
734
|
+
/** Pagination cursor from a prior response. */
|
|
735
|
+
cursor?: string;
|
|
736
|
+
[key: string]: unknown;
|
|
737
|
+
}
|
|
738
|
+
interface YouTubeSuggestionsOptions {
|
|
739
|
+
/** Search query (1-500 characters). Sent to the API as 'search'. */
|
|
740
|
+
query: string;
|
|
741
|
+
/** Language code for suggestions (default 'en'). */
|
|
742
|
+
language?: string;
|
|
743
|
+
/** Region code for suggestions (default 'US'). */
|
|
744
|
+
region?: string;
|
|
745
|
+
[key: string]: unknown;
|
|
746
|
+
}
|
|
747
|
+
interface YouTubeVideoOptions {
|
|
748
|
+
/** YouTube video id (e.g. 'dQw4w9WgXcQ') or a full watch URL. */
|
|
749
|
+
video_id: string;
|
|
750
|
+
[key: string]: unknown;
|
|
322
751
|
}
|
|
752
|
+
/** @deprecated Use YouTubeVideoOptions with youtube.video(). */
|
|
323
753
|
interface YouTubeMetadataOptions {
|
|
754
|
+
/** YouTube video id (e.g. 'dQw4w9WgXcQ') or a full watch URL. */
|
|
324
755
|
video_id: string;
|
|
756
|
+
[key: string]: unknown;
|
|
757
|
+
}
|
|
758
|
+
interface YouTubeCommentsOptions {
|
|
759
|
+
/** YouTube video id or a full watch URL. */
|
|
760
|
+
video_id: string;
|
|
761
|
+
/** Pagination cursor from a prior response. */
|
|
762
|
+
cursor?: string;
|
|
763
|
+
[key: string]: unknown;
|
|
764
|
+
}
|
|
765
|
+
interface YouTubeCommentRepliesOptions {
|
|
766
|
+
/** YouTube video id or a full watch URL. */
|
|
767
|
+
video_id: string;
|
|
768
|
+
/** Reply cursor from a parent comment's 'reply_cursor'. */
|
|
769
|
+
reply_cursor: string;
|
|
770
|
+
/** Pagination cursor from a prior response. */
|
|
771
|
+
cursor?: string;
|
|
772
|
+
[key: string]: unknown;
|
|
773
|
+
}
|
|
774
|
+
interface YouTubeTranscriptOptions {
|
|
775
|
+
/** YouTube video id or a full watch URL. */
|
|
776
|
+
video_id: string;
|
|
777
|
+
/** Caption language code (default 'en'). */
|
|
778
|
+
language?: string;
|
|
779
|
+
/** 'text' for plain transcript, 'srt' for timed subtitles (default 'text'). */
|
|
780
|
+
format?: "text" | "srt";
|
|
781
|
+
[key: string]: unknown;
|
|
782
|
+
}
|
|
783
|
+
interface YouTubeRelatedOptions {
|
|
784
|
+
/** YouTube video id or a full watch URL. */
|
|
785
|
+
video_id: string;
|
|
786
|
+
/** Pagination cursor from a prior response. */
|
|
787
|
+
cursor?: string;
|
|
788
|
+
[key: string]: unknown;
|
|
789
|
+
}
|
|
790
|
+
interface YouTubeChannelSearchOptions {
|
|
791
|
+
/** Search query (1-500 characters). Sent to the API as 'search'. */
|
|
792
|
+
query: string;
|
|
793
|
+
/** Pagination cursor from a prior response. */
|
|
794
|
+
cursor?: string;
|
|
795
|
+
[key: string]: unknown;
|
|
796
|
+
}
|
|
797
|
+
interface YouTubeChannelOptions {
|
|
798
|
+
/** YouTube channel id, @handle, or channel URL. */
|
|
799
|
+
channel_id: string;
|
|
800
|
+
[key: string]: unknown;
|
|
801
|
+
}
|
|
802
|
+
interface YouTubeChannelVideosOptions {
|
|
803
|
+
/** YouTube channel id. */
|
|
804
|
+
channel_id: string;
|
|
805
|
+
/** Pagination cursor from a prior response. */
|
|
806
|
+
cursor?: string;
|
|
807
|
+
[key: string]: unknown;
|
|
808
|
+
}
|
|
809
|
+
interface YouTubeChannelShortsOptions {
|
|
810
|
+
/** YouTube channel id. */
|
|
811
|
+
channel_id: string;
|
|
812
|
+
/** Pagination cursor from a prior response. */
|
|
813
|
+
cursor?: string;
|
|
814
|
+
[key: string]: unknown;
|
|
815
|
+
}
|
|
816
|
+
interface YouTubeChannelCommunityOptions {
|
|
817
|
+
/** YouTube channel id. */
|
|
818
|
+
channel_id: string;
|
|
819
|
+
/** Pagination cursor from a prior response. */
|
|
820
|
+
cursor?: string;
|
|
821
|
+
[key: string]: unknown;
|
|
822
|
+
}
|
|
823
|
+
interface YouTubeChannelResolveOptions {
|
|
824
|
+
/** A channel @handle or channel URL to resolve to a channel id. */
|
|
825
|
+
channel: string;
|
|
826
|
+
[key: string]: unknown;
|
|
827
|
+
}
|
|
828
|
+
interface YouTubeStreamsOptions {
|
|
829
|
+
/** YouTube video id or a full watch URL. */
|
|
830
|
+
video_id: string;
|
|
831
|
+
[key: string]: unknown;
|
|
325
832
|
}
|
|
326
833
|
declare class YouTubeNamespace {
|
|
327
834
|
private client;
|
|
328
835
|
constructor(client: Scavio);
|
|
329
836
|
search(options: YouTubeSearchOptions): Promise<Record<string, unknown>>;
|
|
837
|
+
shorts(options: YouTubeShortsOptions): Promise<Record<string, unknown>>;
|
|
838
|
+
suggestions(options: YouTubeSuggestionsOptions): Promise<Record<string, unknown>>;
|
|
839
|
+
video(options: YouTubeVideoOptions): Promise<Record<string, unknown>>;
|
|
840
|
+
/** @deprecated Use youtube.video(). Alias kept for backward compatibility. */
|
|
330
841
|
metadata(options: YouTubeMetadataOptions): Promise<Record<string, unknown>>;
|
|
842
|
+
comments(options: YouTubeCommentsOptions): Promise<Record<string, unknown>>;
|
|
843
|
+
commentReplies(options: YouTubeCommentRepliesOptions): Promise<Record<string, unknown>>;
|
|
844
|
+
transcript(options: YouTubeTranscriptOptions): Promise<Record<string, unknown>>;
|
|
845
|
+
related(options: YouTubeRelatedOptions): Promise<Record<string, unknown>>;
|
|
846
|
+
channelSearch(options: YouTubeChannelSearchOptions): Promise<Record<string, unknown>>;
|
|
847
|
+
channel(options: YouTubeChannelOptions): Promise<Record<string, unknown>>;
|
|
848
|
+
channelVideos(options: YouTubeChannelVideosOptions): Promise<Record<string, unknown>>;
|
|
849
|
+
channelShorts(options: YouTubeChannelShortsOptions): Promise<Record<string, unknown>>;
|
|
850
|
+
channelCommunity(options: YouTubeChannelCommunityOptions): Promise<Record<string, unknown>>;
|
|
851
|
+
channelResolve(options: YouTubeChannelResolveOptions): Promise<Record<string, unknown>>;
|
|
852
|
+
streams(options: YouTubeStreamsOptions): Promise<Record<string, unknown>>;
|
|
331
853
|
}
|
|
332
854
|
|
|
333
855
|
interface ScavioConfig {
|
|
@@ -335,6 +857,12 @@ interface ScavioConfig {
|
|
|
335
857
|
baseUrl?: string;
|
|
336
858
|
timeout?: number;
|
|
337
859
|
maxRequestsPerSecond?: number;
|
|
860
|
+
/**
|
|
861
|
+
* Additional retry attempts after the first request on transient failures
|
|
862
|
+
* (HTTP 429/500/502/503/504 and network/timeout errors). Defaults to 2.
|
|
863
|
+
* Set to 0 to disable retries.
|
|
864
|
+
*/
|
|
865
|
+
maxRetries?: number;
|
|
338
866
|
}
|
|
339
867
|
declare class Scavio {
|
|
340
868
|
readonly google: GoogleNamespace;
|
|
@@ -347,6 +875,7 @@ declare class Scavio {
|
|
|
347
875
|
private readonly apiKey;
|
|
348
876
|
private readonly baseUrl;
|
|
349
877
|
private readonly timeout;
|
|
878
|
+
private readonly maxRetries;
|
|
350
879
|
private readonly rateLimiter;
|
|
351
880
|
constructor(config?: ScavioConfig);
|
|
352
881
|
/** @internal */
|
|
@@ -363,21 +892,43 @@ declare class ScavioError extends Error {
|
|
|
363
892
|
declare class MissingAPIKeyError extends ScavioError {
|
|
364
893
|
constructor();
|
|
365
894
|
}
|
|
366
|
-
|
|
895
|
+
/** The request could not reach the API (DNS, connection reset, TLS, ...). */
|
|
896
|
+
declare class ScavioConnectionError extends ScavioError {
|
|
367
897
|
constructor(message?: string);
|
|
368
898
|
}
|
|
369
|
-
|
|
899
|
+
/** The request did not complete within the configured timeout. */
|
|
900
|
+
declare class ScavioTimeoutError extends ScavioError {
|
|
370
901
|
constructor(message?: string);
|
|
371
902
|
}
|
|
903
|
+
declare class InvalidAPIKeyError extends ScavioError {
|
|
904
|
+
readonly statusCode = 401;
|
|
905
|
+
readonly responseBody?: Record<string, unknown>;
|
|
906
|
+
constructor(message?: string, responseBody?: Record<string, unknown>);
|
|
907
|
+
}
|
|
908
|
+
declare class InsufficientCreditsError extends ScavioError {
|
|
909
|
+
readonly statusCode = 402;
|
|
910
|
+
readonly responseBody?: Record<string, unknown>;
|
|
911
|
+
constructor(message?: string, responseBody?: Record<string, unknown>);
|
|
912
|
+
}
|
|
372
913
|
declare class BadRequestError extends ScavioError {
|
|
373
|
-
|
|
914
|
+
readonly statusCode = 400;
|
|
915
|
+
readonly responseBody?: Record<string, unknown>;
|
|
916
|
+
constructor(message?: string, responseBody?: Record<string, unknown>);
|
|
917
|
+
}
|
|
918
|
+
declare class NotFoundError extends ScavioError {
|
|
919
|
+
readonly statusCode = 404;
|
|
920
|
+
readonly responseBody?: Record<string, unknown>;
|
|
921
|
+
constructor(message?: string, responseBody?: Record<string, unknown>);
|
|
374
922
|
}
|
|
375
923
|
declare class RateLimitError extends ScavioError {
|
|
376
|
-
|
|
924
|
+
readonly statusCode = 429;
|
|
925
|
+
readonly responseBody?: Record<string, unknown>;
|
|
926
|
+
constructor(message?: string, responseBody?: Record<string, unknown>);
|
|
377
927
|
}
|
|
378
928
|
declare class ScavioAPIError extends ScavioError {
|
|
379
929
|
readonly statusCode: number;
|
|
380
|
-
|
|
930
|
+
readonly responseBody?: Record<string, unknown>;
|
|
931
|
+
constructor(statusCode: number, message: string, responseBody?: Record<string, unknown>);
|
|
381
932
|
}
|
|
382
933
|
|
|
383
|
-
export { type AmazonProductOptions, type AmazonSearchOptions, BadRequestError, type GoogleAiModeOptions, type GoogleFlightsOptions, type GoogleHotelsDetailOptions, type GoogleHotelsOptions, type GoogleMapsPlaceOptions, type GoogleMapsReviewsOptions, type GoogleMapsSearchOptions, type GoogleNewsOptions, type GoogleSearchOptions, type GoogleShoppingOptions, type GoogleShoppingProductOptions, type GoogleShoppingStoresOptions, type GoogleTrendingOptions, type GoogleTrendsOptions, type InstagramCommentRepliesOptions, type InstagramFollowOptions, type InstagramPostCommentsOptions, type InstagramPostOptions, type InstagramProfileOptions, type InstagramSearchOptions, type InstagramStoriesOptions, type InstagramUserFeedOptions, InsufficientCreditsError, InvalidAPIKeyError, MissingAPIKeyError, RateLimitError, type RedditPostOptions, type RedditSearchOptions, Scavio, ScavioAPIError, type ScavioConfig, ScavioError, type TikTokCommentRepliesOptions, type TikTokHashtagOptions, type TikTokHashtagVideosOptions, type TikTokProfileOptions, type TikTokSearchUsersOptions, type TikTokSearchVideosOptions, type TikTokUserFollowersOptions, type TikTokUserFollowingsOptions, type TikTokUserPostsOptions, type TikTokVideoCommentsOptions, type TikTokVideoOptions, type WalmartProductOptions, type WalmartSearchOptions, type YouTubeMetadataOptions, type YouTubeSearchOptions };
|
|
934
|
+
export { type AmazonProductOptions, type AmazonSearchOptions, BadRequestError, type GoogleAiModeOptions, type GoogleFlightsOptions, type GoogleHotelsDetailOptions, type GoogleHotelsOptions, type GoogleMapsPlaceOptions, type GoogleMapsReviewsOptions, type GoogleMapsSearchOptions, type GoogleNewsOptions, type GoogleSearchOptions, type GoogleShoppingOptions, type GoogleShoppingProductOptions, type GoogleShoppingStoresOptions, type GoogleTrendingOptions, type GoogleTrendsOptions, type InstagramCommentRepliesOptions, type InstagramFollowOptions, type InstagramPostCommentsOptions, type InstagramPostOptions, type InstagramProfileOptions, type InstagramSearchOptions, type InstagramStoriesOptions, type InstagramUserFeedOptions, InsufficientCreditsError, InvalidAPIKeyError, MissingAPIKeyError, NotFoundError, RateLimitError, type RedditPostOptions, type RedditSearchOptions, Scavio, ScavioAPIError, type ScavioConfig, ScavioConnectionError, ScavioError, ScavioTimeoutError, type TikTokCommentRepliesOptions, type TikTokHashtagOptions, type TikTokHashtagVideosOptions, type TikTokProfileOptions, type TikTokSearchUsersOptions, type TikTokSearchVideosOptions, type TikTokUserFollowersOptions, type TikTokUserFollowingsOptions, type TikTokUserPostsOptions, type TikTokVideoCommentsOptions, type TikTokVideoOptions, type WalmartProductOptions, type WalmartSearchOptions, type YouTubeChannelCommunityOptions, type YouTubeChannelOptions, type YouTubeChannelResolveOptions, type YouTubeChannelSearchOptions, type YouTubeChannelShortsOptions, type YouTubeChannelVideosOptions, type YouTubeCommentRepliesOptions, type YouTubeCommentsOptions, type YouTubeMetadataOptions, type YouTubeRelatedOptions, type YouTubeSearchOptions, type YouTubeShortsOptions, type YouTubeStreamsOptions, type YouTubeSuggestionsOptions, type YouTubeTranscriptOptions, type YouTubeVideoOptions };
|