mcpscraper-sdk 0.3.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 +77 -0
- package/dist/index.cjs +371 -0
- package/dist/index.d.cts +3471 -0
- package/dist/index.d.ts +3471 -0
- package/dist/index.js +359 -0
- package/package.json +47 -0
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,3471 @@
|
|
|
1
|
+
import { AccessNamespace, CaptureNamespace, ChannelsNamespace, FactsNamespace, GraphNamespace, LibraryNamespace, MemoryNamespace, RecallNamespace, ScheduleNamespace, StorageNamespace, TablesNamespace, TagsNamespace, VaultsNamespace, VideoNamespace as VideoNamespace$1, WebhooksNamespace, CallToolFn } from 'mcpscraper-memory-sdk';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* This file was auto-generated by openapi-typescript.
|
|
5
|
+
* Do not make direct changes to the file.
|
|
6
|
+
*/
|
|
7
|
+
interface paths {
|
|
8
|
+
"/harvest/sync": {
|
|
9
|
+
parameters: {
|
|
10
|
+
query?: never;
|
|
11
|
+
header?: never;
|
|
12
|
+
path?: never;
|
|
13
|
+
cookie?: never;
|
|
14
|
+
};
|
|
15
|
+
get?: never;
|
|
16
|
+
put?: never;
|
|
17
|
+
/**
|
|
18
|
+
* Run a Google SERP search, or a full People-Also-Ask harvest
|
|
19
|
+
* @description Set `serpOnly: true` for a pure organic-results/SERP call (~0.1 credit). Omit or
|
|
20
|
+
* set `false` for a full People-Also-Ask harvest, which also returns SERP data
|
|
21
|
+
* (~1 credit base + 0.2 credit per question actually returned; unused estimate is
|
|
22
|
+
* refunded). Runs synchronously and returns the result inline.
|
|
23
|
+
*/
|
|
24
|
+
post: operations["harvestSync"];
|
|
25
|
+
delete?: never;
|
|
26
|
+
options?: never;
|
|
27
|
+
head?: never;
|
|
28
|
+
patch?: never;
|
|
29
|
+
trace?: never;
|
|
30
|
+
};
|
|
31
|
+
"/jobs": {
|
|
32
|
+
parameters: {
|
|
33
|
+
query?: never;
|
|
34
|
+
header?: never;
|
|
35
|
+
path?: never;
|
|
36
|
+
cookie?: never;
|
|
37
|
+
};
|
|
38
|
+
/** List your harvest jobs (most recent first) */
|
|
39
|
+
get: operations["listJobs"];
|
|
40
|
+
put?: never;
|
|
41
|
+
post?: never;
|
|
42
|
+
delete?: never;
|
|
43
|
+
options?: never;
|
|
44
|
+
head?: never;
|
|
45
|
+
patch?: never;
|
|
46
|
+
trace?: never;
|
|
47
|
+
};
|
|
48
|
+
"/jobs/{id}": {
|
|
49
|
+
parameters: {
|
|
50
|
+
query?: never;
|
|
51
|
+
header?: never;
|
|
52
|
+
path?: never;
|
|
53
|
+
cookie?: never;
|
|
54
|
+
};
|
|
55
|
+
/** Get one harvest job by id, including its result and attempt log */
|
|
56
|
+
get: operations["getJob"];
|
|
57
|
+
put?: never;
|
|
58
|
+
post?: never;
|
|
59
|
+
delete?: never;
|
|
60
|
+
options?: never;
|
|
61
|
+
head?: never;
|
|
62
|
+
patch?: never;
|
|
63
|
+
trace?: never;
|
|
64
|
+
};
|
|
65
|
+
"/history": {
|
|
66
|
+
parameters: {
|
|
67
|
+
query?: never;
|
|
68
|
+
header?: never;
|
|
69
|
+
path?: never;
|
|
70
|
+
cookie?: never;
|
|
71
|
+
};
|
|
72
|
+
/** Recent SERP/harvest activity (jobs and one-off request events combined) */
|
|
73
|
+
get: operations["getHistory"];
|
|
74
|
+
put?: never;
|
|
75
|
+
post?: never;
|
|
76
|
+
delete?: never;
|
|
77
|
+
options?: never;
|
|
78
|
+
head?: never;
|
|
79
|
+
patch?: never;
|
|
80
|
+
trace?: never;
|
|
81
|
+
};
|
|
82
|
+
"/ledger": {
|
|
83
|
+
parameters: {
|
|
84
|
+
query?: never;
|
|
85
|
+
header?: never;
|
|
86
|
+
path?: never;
|
|
87
|
+
cookie?: never;
|
|
88
|
+
};
|
|
89
|
+
/** Recent credit ledger entries (debits, credits, refunds) */
|
|
90
|
+
get: operations["getLedger"];
|
|
91
|
+
put?: never;
|
|
92
|
+
post?: never;
|
|
93
|
+
delete?: never;
|
|
94
|
+
options?: never;
|
|
95
|
+
head?: never;
|
|
96
|
+
patch?: never;
|
|
97
|
+
trace?: never;
|
|
98
|
+
};
|
|
99
|
+
"/extract-url": {
|
|
100
|
+
parameters: {
|
|
101
|
+
query?: never;
|
|
102
|
+
header?: never;
|
|
103
|
+
path?: never;
|
|
104
|
+
cookie?: never;
|
|
105
|
+
};
|
|
106
|
+
get?: never;
|
|
107
|
+
put?: never;
|
|
108
|
+
/**
|
|
109
|
+
* Extract a single page (markdown/HTML, headings, optional screenshot/branding/media)
|
|
110
|
+
* @description Costs 0.1 credit per page.
|
|
111
|
+
*/
|
|
112
|
+
post: operations["extractUrl"];
|
|
113
|
+
delete?: never;
|
|
114
|
+
options?: never;
|
|
115
|
+
head?: never;
|
|
116
|
+
patch?: never;
|
|
117
|
+
trace?: never;
|
|
118
|
+
};
|
|
119
|
+
"/map-urls": {
|
|
120
|
+
parameters: {
|
|
121
|
+
query?: never;
|
|
122
|
+
header?: never;
|
|
123
|
+
path?: never;
|
|
124
|
+
cookie?: never;
|
|
125
|
+
};
|
|
126
|
+
get?: never;
|
|
127
|
+
put?: never;
|
|
128
|
+
/**
|
|
129
|
+
* Spider a site and return its discovered URL inventory
|
|
130
|
+
* @description Flat 0.5 credit per call, regardless of URL count discovered.
|
|
131
|
+
*/
|
|
132
|
+
post: operations["mapSiteUrls"];
|
|
133
|
+
delete?: never;
|
|
134
|
+
options?: never;
|
|
135
|
+
head?: never;
|
|
136
|
+
patch?: never;
|
|
137
|
+
trace?: never;
|
|
138
|
+
};
|
|
139
|
+
"/extract-site": {
|
|
140
|
+
parameters: {
|
|
141
|
+
query?: never;
|
|
142
|
+
header?: never;
|
|
143
|
+
path?: never;
|
|
144
|
+
cookie?: never;
|
|
145
|
+
};
|
|
146
|
+
get?: never;
|
|
147
|
+
put?: never;
|
|
148
|
+
/**
|
|
149
|
+
* Crawl and extract every page of a site (also serves audit_site)
|
|
150
|
+
* @description 0.1 credit per page crawled (estimated up front against `maxPages`, then
|
|
151
|
+
* reconciled to the actual page count crawled; unused estimate refunded). Set
|
|
152
|
+
* `background: true` to enqueue an async crawl and poll
|
|
153
|
+
* `GET /extract-site/status/{id}` instead of waiting inline — recommended above a
|
|
154
|
+
* few hundred pages.
|
|
155
|
+
*/
|
|
156
|
+
post: operations["extractSite"];
|
|
157
|
+
delete?: never;
|
|
158
|
+
options?: never;
|
|
159
|
+
head?: never;
|
|
160
|
+
patch?: never;
|
|
161
|
+
trace?: never;
|
|
162
|
+
};
|
|
163
|
+
"/extract-site/status/{id}": {
|
|
164
|
+
parameters: {
|
|
165
|
+
query?: never;
|
|
166
|
+
header?: never;
|
|
167
|
+
path?: never;
|
|
168
|
+
cookie?: never;
|
|
169
|
+
};
|
|
170
|
+
/** Poll a background extract-site job */
|
|
171
|
+
get: operations["getExtractSiteStatus"];
|
|
172
|
+
put?: never;
|
|
173
|
+
post?: never;
|
|
174
|
+
delete?: never;
|
|
175
|
+
options?: never;
|
|
176
|
+
head?: never;
|
|
177
|
+
patch?: never;
|
|
178
|
+
trace?: never;
|
|
179
|
+
};
|
|
180
|
+
"/youtube/harvest": {
|
|
181
|
+
parameters: {
|
|
182
|
+
query?: never;
|
|
183
|
+
header?: never;
|
|
184
|
+
path?: never;
|
|
185
|
+
cookie?: never;
|
|
186
|
+
};
|
|
187
|
+
get?: never;
|
|
188
|
+
put?: never;
|
|
189
|
+
/**
|
|
190
|
+
* Search YouTube, or list a channel's videos
|
|
191
|
+
* @description Costs 0.2 credit per call.
|
|
192
|
+
*/
|
|
193
|
+
post: operations["youtubeHarvest"];
|
|
194
|
+
delete?: never;
|
|
195
|
+
options?: never;
|
|
196
|
+
head?: never;
|
|
197
|
+
patch?: never;
|
|
198
|
+
trace?: never;
|
|
199
|
+
};
|
|
200
|
+
"/youtube/transcribe": {
|
|
201
|
+
parameters: {
|
|
202
|
+
query?: never;
|
|
203
|
+
header?: never;
|
|
204
|
+
path?: never;
|
|
205
|
+
cookie?: never;
|
|
206
|
+
};
|
|
207
|
+
get?: never;
|
|
208
|
+
put?: never;
|
|
209
|
+
/**
|
|
210
|
+
* Transcribe a YouTube video's captions
|
|
211
|
+
* @description 0.2 credit per minute; a 5-minute hold is taken up front and reconciled to actual duration.
|
|
212
|
+
*/
|
|
213
|
+
post: operations["youtubeTranscribe"];
|
|
214
|
+
delete?: never;
|
|
215
|
+
options?: never;
|
|
216
|
+
head?: never;
|
|
217
|
+
patch?: never;
|
|
218
|
+
trace?: never;
|
|
219
|
+
};
|
|
220
|
+
"/screenshot": {
|
|
221
|
+
parameters: {
|
|
222
|
+
query?: never;
|
|
223
|
+
header?: never;
|
|
224
|
+
path?: never;
|
|
225
|
+
cookie?: never;
|
|
226
|
+
};
|
|
227
|
+
get?: never;
|
|
228
|
+
put?: never;
|
|
229
|
+
/**
|
|
230
|
+
* Capture a full-page PNG screenshot of a URL
|
|
231
|
+
* @description Costs 0.1 credit. Returns the raw PNG bytes, not JSON.
|
|
232
|
+
*/
|
|
233
|
+
post: operations["screenshot"];
|
|
234
|
+
delete?: never;
|
|
235
|
+
options?: never;
|
|
236
|
+
head?: never;
|
|
237
|
+
patch?: never;
|
|
238
|
+
trace?: never;
|
|
239
|
+
};
|
|
240
|
+
"/facebook/ad": {
|
|
241
|
+
parameters: {
|
|
242
|
+
query?: never;
|
|
243
|
+
header?: never;
|
|
244
|
+
path?: never;
|
|
245
|
+
cookie?: never;
|
|
246
|
+
};
|
|
247
|
+
get?: never;
|
|
248
|
+
put?: never;
|
|
249
|
+
/**
|
|
250
|
+
* Extract one Facebook Ad Library ad (all its variants) by URL or library ID
|
|
251
|
+
* @description Costs 0.2 credit.
|
|
252
|
+
*/
|
|
253
|
+
post: operations["facebookAd"];
|
|
254
|
+
delete?: never;
|
|
255
|
+
options?: never;
|
|
256
|
+
head?: never;
|
|
257
|
+
patch?: never;
|
|
258
|
+
trace?: never;
|
|
259
|
+
};
|
|
260
|
+
"/facebook/page-intel": {
|
|
261
|
+
parameters: {
|
|
262
|
+
query?: never;
|
|
263
|
+
header?: never;
|
|
264
|
+
path?: never;
|
|
265
|
+
cookie?: never;
|
|
266
|
+
};
|
|
267
|
+
get?: never;
|
|
268
|
+
put?: never;
|
|
269
|
+
/**
|
|
270
|
+
* List an advertiser's active/recent ads by page ID, library ID, or search query
|
|
271
|
+
* @description Costs 0.2 credit.
|
|
272
|
+
*/
|
|
273
|
+
post: operations["facebookPageIntel"];
|
|
274
|
+
delete?: never;
|
|
275
|
+
options?: never;
|
|
276
|
+
head?: never;
|
|
277
|
+
patch?: never;
|
|
278
|
+
trace?: never;
|
|
279
|
+
};
|
|
280
|
+
"/facebook/transcribe": {
|
|
281
|
+
parameters: {
|
|
282
|
+
query?: never;
|
|
283
|
+
header?: never;
|
|
284
|
+
path?: never;
|
|
285
|
+
cookie?: never;
|
|
286
|
+
};
|
|
287
|
+
get?: never;
|
|
288
|
+
put?: never;
|
|
289
|
+
/**
|
|
290
|
+
* Transcribe a Facebook ad's video by direct video URL
|
|
291
|
+
* @description 0.2 credit per minute; a 5-minute hold is taken and reconciled to actual duration.
|
|
292
|
+
*/
|
|
293
|
+
post: operations["facebookAdTranscribe"];
|
|
294
|
+
delete?: never;
|
|
295
|
+
options?: never;
|
|
296
|
+
head?: never;
|
|
297
|
+
patch?: never;
|
|
298
|
+
trace?: never;
|
|
299
|
+
};
|
|
300
|
+
"/facebook/video-transcribe": {
|
|
301
|
+
parameters: {
|
|
302
|
+
query?: never;
|
|
303
|
+
header?: never;
|
|
304
|
+
path?: never;
|
|
305
|
+
cookie?: never;
|
|
306
|
+
};
|
|
307
|
+
get?: never;
|
|
308
|
+
put?: never;
|
|
309
|
+
/**
|
|
310
|
+
* Transcribe an organic Facebook video, reel, or share URL (not an ad)
|
|
311
|
+
* @description 0.2 credit per minute; a 5-minute hold is taken and reconciled to actual duration.
|
|
312
|
+
*/
|
|
313
|
+
post: operations["facebookVideoTranscribe"];
|
|
314
|
+
delete?: never;
|
|
315
|
+
options?: never;
|
|
316
|
+
head?: never;
|
|
317
|
+
patch?: never;
|
|
318
|
+
trace?: never;
|
|
319
|
+
};
|
|
320
|
+
"/facebook/search": {
|
|
321
|
+
parameters: {
|
|
322
|
+
query?: never;
|
|
323
|
+
header?: never;
|
|
324
|
+
path?: never;
|
|
325
|
+
cookie?: never;
|
|
326
|
+
};
|
|
327
|
+
get?: never;
|
|
328
|
+
put?: never;
|
|
329
|
+
/**
|
|
330
|
+
* Search the Facebook Ad Library by keyword and return matching advertisers
|
|
331
|
+
* @description Costs 0.6 credit.
|
|
332
|
+
*/
|
|
333
|
+
post: operations["facebookSearch"];
|
|
334
|
+
delete?: never;
|
|
335
|
+
options?: never;
|
|
336
|
+
head?: never;
|
|
337
|
+
patch?: never;
|
|
338
|
+
trace?: never;
|
|
339
|
+
};
|
|
340
|
+
"/facebook/media": {
|
|
341
|
+
parameters: {
|
|
342
|
+
query?: never;
|
|
343
|
+
header?: never;
|
|
344
|
+
path?: never;
|
|
345
|
+
cookie?: never;
|
|
346
|
+
};
|
|
347
|
+
get?: never;
|
|
348
|
+
put?: never;
|
|
349
|
+
/**
|
|
350
|
+
* Proxy-download a Facebook/Instagram CDN media URL (fbcdn.net / cdninstagram.com only)
|
|
351
|
+
* @description Free — no credit cost. Streams the raw file bytes.
|
|
352
|
+
*/
|
|
353
|
+
post: operations["facebookMedia"];
|
|
354
|
+
delete?: never;
|
|
355
|
+
options?: never;
|
|
356
|
+
head?: never;
|
|
357
|
+
patch?: never;
|
|
358
|
+
trace?: never;
|
|
359
|
+
};
|
|
360
|
+
"/google-ads/search": {
|
|
361
|
+
parameters: {
|
|
362
|
+
query?: never;
|
|
363
|
+
header?: never;
|
|
364
|
+
path?: never;
|
|
365
|
+
cookie?: never;
|
|
366
|
+
};
|
|
367
|
+
get?: never;
|
|
368
|
+
put?: never;
|
|
369
|
+
/**
|
|
370
|
+
* Find advertisers in the Google Ads Transparency Center by keyword
|
|
371
|
+
* @description Costs 0.6 credit.
|
|
372
|
+
*/
|
|
373
|
+
post: operations["googleAdsSearch"];
|
|
374
|
+
delete?: never;
|
|
375
|
+
options?: never;
|
|
376
|
+
head?: never;
|
|
377
|
+
patch?: never;
|
|
378
|
+
trace?: never;
|
|
379
|
+
};
|
|
380
|
+
"/google-ads/page-intel": {
|
|
381
|
+
parameters: {
|
|
382
|
+
query?: never;
|
|
383
|
+
header?: never;
|
|
384
|
+
path?: never;
|
|
385
|
+
cookie?: never;
|
|
386
|
+
};
|
|
387
|
+
get?: never;
|
|
388
|
+
put?: never;
|
|
389
|
+
/**
|
|
390
|
+
* List one advertiser's creatives by advertiser ID or domain
|
|
391
|
+
* @description Costs 0.2 credit.
|
|
392
|
+
*/
|
|
393
|
+
post: operations["googleAdsPageIntel"];
|
|
394
|
+
delete?: never;
|
|
395
|
+
options?: never;
|
|
396
|
+
head?: never;
|
|
397
|
+
patch?: never;
|
|
398
|
+
trace?: never;
|
|
399
|
+
};
|
|
400
|
+
"/google-ads/transcribe": {
|
|
401
|
+
parameters: {
|
|
402
|
+
query?: never;
|
|
403
|
+
header?: never;
|
|
404
|
+
path?: never;
|
|
405
|
+
cookie?: never;
|
|
406
|
+
};
|
|
407
|
+
get?: never;
|
|
408
|
+
put?: never;
|
|
409
|
+
/**
|
|
410
|
+
* Transcribe a Google ad's video by direct video URL
|
|
411
|
+
* @description 0.2 credit per minute; a 5-minute hold is taken and reconciled to actual duration.
|
|
412
|
+
*/
|
|
413
|
+
post: operations["googleAdsTranscribe"];
|
|
414
|
+
delete?: never;
|
|
415
|
+
options?: never;
|
|
416
|
+
head?: never;
|
|
417
|
+
patch?: never;
|
|
418
|
+
trace?: never;
|
|
419
|
+
};
|
|
420
|
+
"/instagram/profile-content": {
|
|
421
|
+
parameters: {
|
|
422
|
+
query?: never;
|
|
423
|
+
header?: never;
|
|
424
|
+
path?: never;
|
|
425
|
+
cookie?: never;
|
|
426
|
+
};
|
|
427
|
+
get?: never;
|
|
428
|
+
put?: never;
|
|
429
|
+
/**
|
|
430
|
+
* List a public Instagram profile's grid content
|
|
431
|
+
* @description Costs 0.4 credit per profile scan. Provide `handle` or `url`.
|
|
432
|
+
*/
|
|
433
|
+
post: operations["instagramProfileContent"];
|
|
434
|
+
delete?: never;
|
|
435
|
+
options?: never;
|
|
436
|
+
head?: never;
|
|
437
|
+
patch?: never;
|
|
438
|
+
trace?: never;
|
|
439
|
+
};
|
|
440
|
+
"/instagram/media-download": {
|
|
441
|
+
parameters: {
|
|
442
|
+
query?: never;
|
|
443
|
+
header?: never;
|
|
444
|
+
path?: never;
|
|
445
|
+
cookie?: never;
|
|
446
|
+
};
|
|
447
|
+
get?: never;
|
|
448
|
+
put?: never;
|
|
449
|
+
/**
|
|
450
|
+
* Extract and optionally download media from an Instagram post, reel, or tv URL
|
|
451
|
+
* @description Costs 0.4 credit; +0.05 credit if `includeTranscript` is used.
|
|
452
|
+
*/
|
|
453
|
+
post: operations["instagramMediaDownload"];
|
|
454
|
+
delete?: never;
|
|
455
|
+
options?: never;
|
|
456
|
+
head?: never;
|
|
457
|
+
patch?: never;
|
|
458
|
+
trace?: never;
|
|
459
|
+
};
|
|
460
|
+
"/reddit/thread": {
|
|
461
|
+
parameters: {
|
|
462
|
+
query?: never;
|
|
463
|
+
header?: never;
|
|
464
|
+
path?: never;
|
|
465
|
+
cookie?: never;
|
|
466
|
+
};
|
|
467
|
+
get?: never;
|
|
468
|
+
put?: never;
|
|
469
|
+
/**
|
|
470
|
+
* Capture a Reddit post and its comment tree
|
|
471
|
+
* @description Costs 2 credits. Refunded automatically if Reddit blocks the request after retries.
|
|
472
|
+
*/
|
|
473
|
+
post: operations["redditThread"];
|
|
474
|
+
delete?: never;
|
|
475
|
+
options?: never;
|
|
476
|
+
head?: never;
|
|
477
|
+
patch?: never;
|
|
478
|
+
trace?: never;
|
|
479
|
+
};
|
|
480
|
+
"/video/analyze": {
|
|
481
|
+
parameters: {
|
|
482
|
+
query?: never;
|
|
483
|
+
header?: never;
|
|
484
|
+
path?: never;
|
|
485
|
+
cookie?: never;
|
|
486
|
+
};
|
|
487
|
+
get?: never;
|
|
488
|
+
put?: never;
|
|
489
|
+
/**
|
|
490
|
+
* Start a frame-by-frame video breakdown (async — poll /video/status)
|
|
491
|
+
* @description Full multi-lens breakdown: samples frames across a video (up to 30 minutes),
|
|
492
|
+
* analyzes each with vision AI, transcribes audio, then produces summary,
|
|
493
|
+
* pacing/energy, words-per-minute, topic outline, key points, hook analysis,
|
|
494
|
+
* visual style, and a how-to-replicate recipe. ~0.667 credit per 120 frames
|
|
495
|
+
* requested (max 480 frames); billed down automatically if the video can't use
|
|
496
|
+
* the requested frames, refunded fully if the run fails.
|
|
497
|
+
*/
|
|
498
|
+
post: operations["videoAnalyze"];
|
|
499
|
+
delete?: never;
|
|
500
|
+
options?: never;
|
|
501
|
+
head?: never;
|
|
502
|
+
patch?: never;
|
|
503
|
+
trace?: never;
|
|
504
|
+
};
|
|
505
|
+
"/video/status": {
|
|
506
|
+
parameters: {
|
|
507
|
+
query?: never;
|
|
508
|
+
header?: never;
|
|
509
|
+
path?: never;
|
|
510
|
+
cookie?: never;
|
|
511
|
+
};
|
|
512
|
+
get?: never;
|
|
513
|
+
put?: never;
|
|
514
|
+
/** Poll a video breakdown run */
|
|
515
|
+
post: operations["videoAnalyzeStatus"];
|
|
516
|
+
delete?: never;
|
|
517
|
+
options?: never;
|
|
518
|
+
head?: never;
|
|
519
|
+
patch?: never;
|
|
520
|
+
trace?: never;
|
|
521
|
+
};
|
|
522
|
+
"/maps/search": {
|
|
523
|
+
parameters: {
|
|
524
|
+
query?: never;
|
|
525
|
+
header?: never;
|
|
526
|
+
path?: never;
|
|
527
|
+
cookie?: never;
|
|
528
|
+
};
|
|
529
|
+
get?: never;
|
|
530
|
+
put?: never;
|
|
531
|
+
/**
|
|
532
|
+
* Search Google Maps for businesses matching a query and location
|
|
533
|
+
* @description Costs 0.5 credit. Returns up to 50 business/profile candidates.
|
|
534
|
+
*/
|
|
535
|
+
post: operations["mapsSearch"];
|
|
536
|
+
delete?: never;
|
|
537
|
+
options?: never;
|
|
538
|
+
head?: never;
|
|
539
|
+
patch?: never;
|
|
540
|
+
trace?: never;
|
|
541
|
+
};
|
|
542
|
+
"/maps/place": {
|
|
543
|
+
parameters: {
|
|
544
|
+
query?: never;
|
|
545
|
+
header?: never;
|
|
546
|
+
path?: never;
|
|
547
|
+
cookie?: never;
|
|
548
|
+
};
|
|
549
|
+
get?: never;
|
|
550
|
+
put?: never;
|
|
551
|
+
/**
|
|
552
|
+
* Deep-dive one Google Maps business by name and location, with reviews
|
|
553
|
+
* @description 3 credits base; +0.1 credit per review card when `includeReviews` is true.
|
|
554
|
+
*/
|
|
555
|
+
post: operations["mapsPlaceIntel"];
|
|
556
|
+
delete?: never;
|
|
557
|
+
options?: never;
|
|
558
|
+
head?: never;
|
|
559
|
+
patch?: never;
|
|
560
|
+
trace?: never;
|
|
561
|
+
};
|
|
562
|
+
"/directory/run": {
|
|
563
|
+
parameters: {
|
|
564
|
+
query?: never;
|
|
565
|
+
header?: never;
|
|
566
|
+
path?: never;
|
|
567
|
+
cookie?: never;
|
|
568
|
+
};
|
|
569
|
+
get?: never;
|
|
570
|
+
put?: never;
|
|
571
|
+
/**
|
|
572
|
+
* Run Google Maps business search across many cities in a state/region at once
|
|
573
|
+
* @description Cost is `0.5 credit × number of markets resolved` for the query — see `GET /workflows/definitions` for related workflow shapes. Failed cities are refunded individually.
|
|
574
|
+
*/
|
|
575
|
+
post: operations["directoryWorkflow"];
|
|
576
|
+
delete?: never;
|
|
577
|
+
options?: never;
|
|
578
|
+
head?: never;
|
|
579
|
+
patch?: never;
|
|
580
|
+
trace?: never;
|
|
581
|
+
};
|
|
582
|
+
"/serp-intelligence/capture": {
|
|
583
|
+
parameters: {
|
|
584
|
+
query?: never;
|
|
585
|
+
header?: never;
|
|
586
|
+
path?: never;
|
|
587
|
+
cookie?: never;
|
|
588
|
+
};
|
|
589
|
+
get?: never;
|
|
590
|
+
put?: never;
|
|
591
|
+
/**
|
|
592
|
+
* Structured SERP capture with AI Overview/AI Mode detection, entity IDs, and location-match evidence
|
|
593
|
+
* @description Costs 0.1 credit. Rate-limited to 60 requests/minute per account.
|
|
594
|
+
*/
|
|
595
|
+
post: operations["serpIntelligenceCapture"];
|
|
596
|
+
delete?: never;
|
|
597
|
+
options?: never;
|
|
598
|
+
head?: never;
|
|
599
|
+
patch?: never;
|
|
600
|
+
trace?: never;
|
|
601
|
+
};
|
|
602
|
+
"/serp-intelligence/page-snapshots": {
|
|
603
|
+
parameters: {
|
|
604
|
+
query?: never;
|
|
605
|
+
header?: never;
|
|
606
|
+
path?: never;
|
|
607
|
+
cookie?: never;
|
|
608
|
+
};
|
|
609
|
+
get?: never;
|
|
610
|
+
put?: never;
|
|
611
|
+
/**
|
|
612
|
+
* Fetch and archive full-content snapshots (HTML/text/markdown/screenshot) of specific URLs
|
|
613
|
+
* @description Costs 0.1 credit per URL (max 25 per call). Rate-limited to 60 requests/minute per account.
|
|
614
|
+
*/
|
|
615
|
+
post: operations["serpIntelligencePageSnapshots"];
|
|
616
|
+
delete?: never;
|
|
617
|
+
options?: never;
|
|
618
|
+
head?: never;
|
|
619
|
+
patch?: never;
|
|
620
|
+
trace?: never;
|
|
621
|
+
};
|
|
622
|
+
"/workflows/definitions": {
|
|
623
|
+
parameters: {
|
|
624
|
+
query?: never;
|
|
625
|
+
header?: never;
|
|
626
|
+
path?: never;
|
|
627
|
+
cookie?: never;
|
|
628
|
+
};
|
|
629
|
+
/** List available workflow definitions and their input schemas */
|
|
630
|
+
get: operations["listWorkflowDefinitions"];
|
|
631
|
+
put?: never;
|
|
632
|
+
post?: never;
|
|
633
|
+
delete?: never;
|
|
634
|
+
options?: never;
|
|
635
|
+
head?: never;
|
|
636
|
+
patch?: never;
|
|
637
|
+
trace?: never;
|
|
638
|
+
};
|
|
639
|
+
"/workflows/run": {
|
|
640
|
+
parameters: {
|
|
641
|
+
query?: never;
|
|
642
|
+
header?: never;
|
|
643
|
+
path?: never;
|
|
644
|
+
cookie?: never;
|
|
645
|
+
};
|
|
646
|
+
get?: never;
|
|
647
|
+
put?: never;
|
|
648
|
+
/** Start a workflow run (some workflows execute stepwise; check `done` in the response) */
|
|
649
|
+
post: operations["runWorkflow"];
|
|
650
|
+
delete?: never;
|
|
651
|
+
options?: never;
|
|
652
|
+
head?: never;
|
|
653
|
+
patch?: never;
|
|
654
|
+
trace?: never;
|
|
655
|
+
};
|
|
656
|
+
"/workflows/runs/{id}/step": {
|
|
657
|
+
parameters: {
|
|
658
|
+
query?: never;
|
|
659
|
+
header?: never;
|
|
660
|
+
path?: never;
|
|
661
|
+
cookie?: never;
|
|
662
|
+
};
|
|
663
|
+
get?: never;
|
|
664
|
+
put?: never;
|
|
665
|
+
/** Advance a stepwise workflow run by one step */
|
|
666
|
+
post: operations["advanceWorkflowRunStep"];
|
|
667
|
+
delete?: never;
|
|
668
|
+
options?: never;
|
|
669
|
+
head?: never;
|
|
670
|
+
patch?: never;
|
|
671
|
+
trace?: never;
|
|
672
|
+
};
|
|
673
|
+
"/workflows/runs": {
|
|
674
|
+
parameters: {
|
|
675
|
+
query?: never;
|
|
676
|
+
header?: never;
|
|
677
|
+
path?: never;
|
|
678
|
+
cookie?: never;
|
|
679
|
+
};
|
|
680
|
+
/** List your workflow runs */
|
|
681
|
+
get: operations["listWorkflowRuns"];
|
|
682
|
+
put?: never;
|
|
683
|
+
post?: never;
|
|
684
|
+
delete?: never;
|
|
685
|
+
options?: never;
|
|
686
|
+
head?: never;
|
|
687
|
+
patch?: never;
|
|
688
|
+
trace?: never;
|
|
689
|
+
};
|
|
690
|
+
"/workflows/runs/{id}": {
|
|
691
|
+
parameters: {
|
|
692
|
+
query?: never;
|
|
693
|
+
header?: never;
|
|
694
|
+
path?: never;
|
|
695
|
+
cookie?: never;
|
|
696
|
+
};
|
|
697
|
+
/** Get one workflow run, including its artifacts */
|
|
698
|
+
get: operations["getWorkflowRun"];
|
|
699
|
+
put?: never;
|
|
700
|
+
post?: never;
|
|
701
|
+
delete?: never;
|
|
702
|
+
options?: never;
|
|
703
|
+
head?: never;
|
|
704
|
+
patch?: never;
|
|
705
|
+
trace?: never;
|
|
706
|
+
};
|
|
707
|
+
"/workflows/runs/{id}/artifacts/{artifactId}": {
|
|
708
|
+
parameters: {
|
|
709
|
+
query?: never;
|
|
710
|
+
header?: never;
|
|
711
|
+
path?: never;
|
|
712
|
+
cookie?: never;
|
|
713
|
+
};
|
|
714
|
+
/** Download one artifact produced by a workflow run */
|
|
715
|
+
get: operations["getWorkflowRunArtifact"];
|
|
716
|
+
put?: never;
|
|
717
|
+
post?: never;
|
|
718
|
+
delete?: never;
|
|
719
|
+
options?: never;
|
|
720
|
+
head?: never;
|
|
721
|
+
patch?: never;
|
|
722
|
+
trace?: never;
|
|
723
|
+
};
|
|
724
|
+
"/workflows/schedules": {
|
|
725
|
+
parameters: {
|
|
726
|
+
query?: never;
|
|
727
|
+
header?: never;
|
|
728
|
+
path?: never;
|
|
729
|
+
cookie?: never;
|
|
730
|
+
};
|
|
731
|
+
/** List your workflow schedules */
|
|
732
|
+
get: operations["listWorkflowSchedules"];
|
|
733
|
+
put?: never;
|
|
734
|
+
/** Create a recurring schedule for a workflow */
|
|
735
|
+
post: operations["createWorkflowSchedule"];
|
|
736
|
+
delete?: never;
|
|
737
|
+
options?: never;
|
|
738
|
+
head?: never;
|
|
739
|
+
patch?: never;
|
|
740
|
+
trace?: never;
|
|
741
|
+
};
|
|
742
|
+
"/workflows/schedules/{id}": {
|
|
743
|
+
parameters: {
|
|
744
|
+
query?: never;
|
|
745
|
+
header?: never;
|
|
746
|
+
path?: never;
|
|
747
|
+
cookie?: never;
|
|
748
|
+
};
|
|
749
|
+
get?: never;
|
|
750
|
+
put?: never;
|
|
751
|
+
post?: never;
|
|
752
|
+
/** Delete a workflow schedule */
|
|
753
|
+
delete: operations["deleteWorkflowSchedule"];
|
|
754
|
+
options?: never;
|
|
755
|
+
head?: never;
|
|
756
|
+
/** Update a workflow schedule */
|
|
757
|
+
patch: operations["patchWorkflowSchedule"];
|
|
758
|
+
trace?: never;
|
|
759
|
+
};
|
|
760
|
+
"/workflows/schedules/{id}/run": {
|
|
761
|
+
parameters: {
|
|
762
|
+
query?: never;
|
|
763
|
+
header?: never;
|
|
764
|
+
path?: never;
|
|
765
|
+
cookie?: never;
|
|
766
|
+
};
|
|
767
|
+
get?: never;
|
|
768
|
+
put?: never;
|
|
769
|
+
/** Trigger a workflow schedule immediately, out of cadence */
|
|
770
|
+
post: operations["runWorkflowScheduleNow"];
|
|
771
|
+
delete?: never;
|
|
772
|
+
options?: never;
|
|
773
|
+
head?: never;
|
|
774
|
+
patch?: never;
|
|
775
|
+
trace?: never;
|
|
776
|
+
};
|
|
777
|
+
"/memory/mcp-call": {
|
|
778
|
+
parameters: {
|
|
779
|
+
query?: never;
|
|
780
|
+
header?: never;
|
|
781
|
+
path?: never;
|
|
782
|
+
cookie?: never;
|
|
783
|
+
};
|
|
784
|
+
get?: never;
|
|
785
|
+
put?: never;
|
|
786
|
+
/**
|
|
787
|
+
* Call one memory.mcpscraper.dev tool by name, using this account's mcpscraper.dev API key
|
|
788
|
+
* @description Generic dispatch: names one of the 85 tools documented in this repo's
|
|
789
|
+
* `contracts/memory.tools.json` and forwards `args` to it, using a memory identity
|
|
790
|
+
* auto-provisioned for the calling mcpscraper.dev account. The response shape depends
|
|
791
|
+
* entirely on which tool was called — see that tool's `outputSchema` in the manifest.
|
|
792
|
+
* Tool-level failures come back as HTTP 200 with `{ "ok": false, "error": "..." }`
|
|
793
|
+
* rather than a non-2xx status; SDK clients built on this endpoint should treat that the
|
|
794
|
+
* same as a thrown error.
|
|
795
|
+
*/
|
|
796
|
+
post: operations["callMemoryTool"];
|
|
797
|
+
delete?: never;
|
|
798
|
+
options?: never;
|
|
799
|
+
head?: never;
|
|
800
|
+
patch?: never;
|
|
801
|
+
trace?: never;
|
|
802
|
+
};
|
|
803
|
+
}
|
|
804
|
+
interface components {
|
|
805
|
+
schemas: {
|
|
806
|
+
Error: {
|
|
807
|
+
error: string;
|
|
808
|
+
error_code?: string;
|
|
809
|
+
message?: string;
|
|
810
|
+
};
|
|
811
|
+
/** @description Shared structured error shape used by SERP Intelligence endpoints. */
|
|
812
|
+
StructuredError: {
|
|
813
|
+
error_code: string;
|
|
814
|
+
error_type: string;
|
|
815
|
+
message: string;
|
|
816
|
+
retryable: boolean;
|
|
817
|
+
attempts?: {
|
|
818
|
+
[key: string]: unknown;
|
|
819
|
+
}[];
|
|
820
|
+
};
|
|
821
|
+
InsufficientBalanceError: {
|
|
822
|
+
/** @enum {string} */
|
|
823
|
+
error: "insufficient_balance";
|
|
824
|
+
/** @enum {string} */
|
|
825
|
+
error_code: "insufficient_balance";
|
|
826
|
+
message: string;
|
|
827
|
+
balance_credits: number;
|
|
828
|
+
required_credits: number;
|
|
829
|
+
/** Format: uri */
|
|
830
|
+
topup_url: string;
|
|
831
|
+
};
|
|
832
|
+
ConcurrencyLimitError: {
|
|
833
|
+
error?: string;
|
|
834
|
+
message: string;
|
|
835
|
+
/** @enum {string} */
|
|
836
|
+
error_code: "concurrency_limit_exceeded";
|
|
837
|
+
/** @enum {string} */
|
|
838
|
+
error_type?: "concurrency_limit";
|
|
839
|
+
retryable?: boolean;
|
|
840
|
+
active: number;
|
|
841
|
+
limit: number;
|
|
842
|
+
operation: string;
|
|
843
|
+
/** Format: uri */
|
|
844
|
+
upgrade_url?: string;
|
|
845
|
+
/** @description CLI command to buy an extra concurrency slot. */
|
|
846
|
+
upgrade_command?: string;
|
|
847
|
+
};
|
|
848
|
+
HarvestSyncRequest: {
|
|
849
|
+
/** @description Search query. */
|
|
850
|
+
query: string;
|
|
851
|
+
/** @description e.g. "Austin, TX". */
|
|
852
|
+
location?: string;
|
|
853
|
+
/**
|
|
854
|
+
* @description PAA drill-down depth. Ignored when serpOnly is true.
|
|
855
|
+
* @default 4
|
|
856
|
+
*/
|
|
857
|
+
depth: number;
|
|
858
|
+
/**
|
|
859
|
+
* @description Max PAA questions to harvest. Ignored when serpOnly is true.
|
|
860
|
+
* @default 30
|
|
861
|
+
*/
|
|
862
|
+
maxQuestions: number;
|
|
863
|
+
/**
|
|
864
|
+
* @description Google country code.
|
|
865
|
+
* @default us
|
|
866
|
+
*/
|
|
867
|
+
gl: string;
|
|
868
|
+
/**
|
|
869
|
+
* @description Google language code.
|
|
870
|
+
* @default en
|
|
871
|
+
*/
|
|
872
|
+
hl: string;
|
|
873
|
+
/**
|
|
874
|
+
* @default desktop
|
|
875
|
+
* @enum {string}
|
|
876
|
+
*/
|
|
877
|
+
device: "desktop" | "mobile";
|
|
878
|
+
/**
|
|
879
|
+
* @default none
|
|
880
|
+
* @enum {string}
|
|
881
|
+
*/
|
|
882
|
+
proxyMode: "location" | "configured" | "none";
|
|
883
|
+
/** @description US ZIP to localize the proxy egress to. */
|
|
884
|
+
proxyZip?: string;
|
|
885
|
+
/**
|
|
886
|
+
* @description Organic result pages to fetch.
|
|
887
|
+
* @default 1
|
|
888
|
+
*/
|
|
889
|
+
pages: number;
|
|
890
|
+
/**
|
|
891
|
+
* @description true = pure SERP call (search_serp); false = full PAA harvest.
|
|
892
|
+
* @default false
|
|
893
|
+
*/
|
|
894
|
+
serpOnly: boolean;
|
|
895
|
+
/** @default false */
|
|
896
|
+
debug: boolean;
|
|
897
|
+
};
|
|
898
|
+
HarvestSyncResponse: {
|
|
899
|
+
job_id: string;
|
|
900
|
+
/** @enum {string} */
|
|
901
|
+
status: "done" | "cancelled" | "failed";
|
|
902
|
+
/** @description Present when status is done — SERP/PAA harvest result. */
|
|
903
|
+
result?: {
|
|
904
|
+
[key: string]: unknown;
|
|
905
|
+
};
|
|
906
|
+
attempts?: {
|
|
907
|
+
[key: string]: unknown;
|
|
908
|
+
}[];
|
|
909
|
+
error?: string;
|
|
910
|
+
};
|
|
911
|
+
JobRecord: {
|
|
912
|
+
id?: string;
|
|
913
|
+
status?: string;
|
|
914
|
+
query?: string;
|
|
915
|
+
result?: {
|
|
916
|
+
[key: string]: unknown;
|
|
917
|
+
} | null;
|
|
918
|
+
attempts?: {
|
|
919
|
+
[key: string]: unknown;
|
|
920
|
+
}[];
|
|
921
|
+
created_at?: string;
|
|
922
|
+
};
|
|
923
|
+
ExtractUrlRequest: {
|
|
924
|
+
/** Format: uri */
|
|
925
|
+
url: string;
|
|
926
|
+
/** @default false */
|
|
927
|
+
screenshot: boolean;
|
|
928
|
+
/**
|
|
929
|
+
* @default desktop
|
|
930
|
+
* @enum {string}
|
|
931
|
+
*/
|
|
932
|
+
screenshotDevice: "desktop" | "mobile";
|
|
933
|
+
/**
|
|
934
|
+
* @description Extract brand colors/fonts/logo.
|
|
935
|
+
* @default false
|
|
936
|
+
*/
|
|
937
|
+
extractBranding: boolean;
|
|
938
|
+
/** @default false */
|
|
939
|
+
downloadMedia: boolean;
|
|
940
|
+
mediaTypes?: ("image" | "video" | "audio")[];
|
|
941
|
+
/** @default false */
|
|
942
|
+
allowLocal: boolean;
|
|
943
|
+
/**
|
|
944
|
+
* @description Save the extracted content into an mcp-memory vault.
|
|
945
|
+
* @default false
|
|
946
|
+
*/
|
|
947
|
+
depositToVault: boolean;
|
|
948
|
+
vaultName?: string;
|
|
949
|
+
};
|
|
950
|
+
/** @description Spreads the page extraction result plus optional screenshot/branding/media/memory. */
|
|
951
|
+
ExtractUrlResponse: {
|
|
952
|
+
title?: string | null;
|
|
953
|
+
bodyMarkdown?: string;
|
|
954
|
+
bodyHtml?: string;
|
|
955
|
+
headings?: {
|
|
956
|
+
[key: string]: unknown;
|
|
957
|
+
}[];
|
|
958
|
+
screenshot?: {
|
|
959
|
+
base64?: string;
|
|
960
|
+
sizeBytes?: number;
|
|
961
|
+
device?: string;
|
|
962
|
+
} | null;
|
|
963
|
+
branding?: {
|
|
964
|
+
[key: string]: unknown;
|
|
965
|
+
} | null;
|
|
966
|
+
media?: {
|
|
967
|
+
[key: string]: unknown;
|
|
968
|
+
} | null;
|
|
969
|
+
memory?: components["schemas"]["VaultDepositResult"];
|
|
970
|
+
} & {
|
|
971
|
+
[key: string]: unknown;
|
|
972
|
+
};
|
|
973
|
+
/**
|
|
974
|
+
* @description Present on ExtractUrlResponse only when the request set depositToVault: true.
|
|
975
|
+
* Result of depositing a scrape into the caller's mcp-memory vault. Falls back to a
|
|
976
|
+
* temporary downloadable file (`fileUrl`, expires in 24h) if the vault deposit itself
|
|
977
|
+
* fails, so the content is never silently lost.
|
|
978
|
+
*/
|
|
979
|
+
VaultDepositResult: {
|
|
980
|
+
/** @description True if the content was embedded into the vault. */
|
|
981
|
+
deposited: boolean;
|
|
982
|
+
/** @description The vault handle deposited into. */
|
|
983
|
+
vault?: string;
|
|
984
|
+
noteId?: string;
|
|
985
|
+
/** @description Note path within the vault, addressable via mcpscraper-memory-sdk. */
|
|
986
|
+
path?: string;
|
|
987
|
+
/** @description Number of embedded chunks created. */
|
|
988
|
+
chunks?: number;
|
|
989
|
+
/** @description Present when deposited is false. */
|
|
990
|
+
error?: string;
|
|
991
|
+
/** @description Fallback download URL, only present when the vault deposit failed. */
|
|
992
|
+
fileUrl?: string;
|
|
993
|
+
/**
|
|
994
|
+
* Format: date-time
|
|
995
|
+
* @description Fallback file expiry, only present alongside fileUrl.
|
|
996
|
+
*/
|
|
997
|
+
fileExpiresAt?: string;
|
|
998
|
+
};
|
|
999
|
+
MapUrlsRequest: {
|
|
1000
|
+
/** Format: uri */
|
|
1001
|
+
url: string;
|
|
1002
|
+
/** @default 500 */
|
|
1003
|
+
maxUrls: number;
|
|
1004
|
+
/** @default 12 */
|
|
1005
|
+
concurrency: number;
|
|
1006
|
+
/**
|
|
1007
|
+
* @description Use a real browser session for JS-heavy sites.
|
|
1008
|
+
* @default false
|
|
1009
|
+
*/
|
|
1010
|
+
browserFallback: boolean;
|
|
1011
|
+
/** @default false */
|
|
1012
|
+
kernelFallback: boolean;
|
|
1013
|
+
};
|
|
1014
|
+
MapUrlsResponse: {
|
|
1015
|
+
urls?: string[];
|
|
1016
|
+
} & {
|
|
1017
|
+
[key: string]: unknown;
|
|
1018
|
+
};
|
|
1019
|
+
ExtractSiteRequest: {
|
|
1020
|
+
/** Format: uri */
|
|
1021
|
+
url: string;
|
|
1022
|
+
/** @default 100 */
|
|
1023
|
+
maxPages: number;
|
|
1024
|
+
/**
|
|
1025
|
+
* @description Enqueue an async crawl instead of waiting inline.
|
|
1026
|
+
* @default false
|
|
1027
|
+
*/
|
|
1028
|
+
background: boolean;
|
|
1029
|
+
/** @default false */
|
|
1030
|
+
rotateProxies: boolean;
|
|
1031
|
+
/** @default 30 */
|
|
1032
|
+
rotateProxyEvery: number;
|
|
1033
|
+
/** @default false */
|
|
1034
|
+
browserFallback: boolean;
|
|
1035
|
+
/** @default false */
|
|
1036
|
+
kernelFallback: boolean;
|
|
1037
|
+
formats?: ("markdown" | "links" | "json" | "images" | "branding")[];
|
|
1038
|
+
};
|
|
1039
|
+
/** @description Full synchronous crawl result. */
|
|
1040
|
+
ExtractSiteResponse: {
|
|
1041
|
+
pages?: {
|
|
1042
|
+
[key: string]: unknown;
|
|
1043
|
+
}[];
|
|
1044
|
+
} & {
|
|
1045
|
+
[key: string]: unknown;
|
|
1046
|
+
};
|
|
1047
|
+
ExtractSiteQueuedResponse: {
|
|
1048
|
+
jobId: string;
|
|
1049
|
+
/** @enum {string} */
|
|
1050
|
+
status: "pending";
|
|
1051
|
+
statusUrl: string;
|
|
1052
|
+
};
|
|
1053
|
+
ExtractSiteStatus: {
|
|
1054
|
+
jobId?: string;
|
|
1055
|
+
status?: string;
|
|
1056
|
+
startUrl?: string;
|
|
1057
|
+
totalUrls?: number;
|
|
1058
|
+
doneUrls?: number;
|
|
1059
|
+
artifacts?: {
|
|
1060
|
+
[key: string]: unknown;
|
|
1061
|
+
}[];
|
|
1062
|
+
error?: string | null;
|
|
1063
|
+
updatedAt?: string;
|
|
1064
|
+
};
|
|
1065
|
+
YoutubeHarvestRequest: {
|
|
1066
|
+
/** @enum {string} */
|
|
1067
|
+
mode: "search" | "channel";
|
|
1068
|
+
/** @description Required when mode is search. */
|
|
1069
|
+
query?: string;
|
|
1070
|
+
/** @description Required when mode is channel — @handle or UC... channel ID. */
|
|
1071
|
+
channelHandle?: string;
|
|
1072
|
+
/** @default 50 */
|
|
1073
|
+
maxVideos: number;
|
|
1074
|
+
};
|
|
1075
|
+
TranscriptResponse: {
|
|
1076
|
+
videoId?: string;
|
|
1077
|
+
text?: string;
|
|
1078
|
+
chunks?: {
|
|
1079
|
+
timestamp?: number[];
|
|
1080
|
+
text?: string;
|
|
1081
|
+
}[];
|
|
1082
|
+
durationMs?: number;
|
|
1083
|
+
markdown?: string;
|
|
1084
|
+
html?: string;
|
|
1085
|
+
};
|
|
1086
|
+
MapsSearchRequest: {
|
|
1087
|
+
query: string;
|
|
1088
|
+
location?: string;
|
|
1089
|
+
/** @default us */
|
|
1090
|
+
gl: string;
|
|
1091
|
+
/** @default en */
|
|
1092
|
+
hl: string;
|
|
1093
|
+
/** @default 10 */
|
|
1094
|
+
maxResults: number;
|
|
1095
|
+
/**
|
|
1096
|
+
* @default location
|
|
1097
|
+
* @enum {string}
|
|
1098
|
+
*/
|
|
1099
|
+
proxyMode: "location" | "configured" | "none";
|
|
1100
|
+
proxyZip?: string;
|
|
1101
|
+
/** @default false */
|
|
1102
|
+
debug: boolean;
|
|
1103
|
+
};
|
|
1104
|
+
MapsPlaceRequest: {
|
|
1105
|
+
businessName: string;
|
|
1106
|
+
location: string;
|
|
1107
|
+
/** @default us */
|
|
1108
|
+
gl: string;
|
|
1109
|
+
/** @default en */
|
|
1110
|
+
hl: string;
|
|
1111
|
+
/** @default false */
|
|
1112
|
+
includeReviews: boolean;
|
|
1113
|
+
/** @default 50 */
|
|
1114
|
+
maxReviews: number;
|
|
1115
|
+
};
|
|
1116
|
+
SerpIntelligenceCaptureRequest: {
|
|
1117
|
+
query: string;
|
|
1118
|
+
location?: string;
|
|
1119
|
+
/** @default us */
|
|
1120
|
+
gl: string;
|
|
1121
|
+
/** @default en */
|
|
1122
|
+
hl: string;
|
|
1123
|
+
/**
|
|
1124
|
+
* @default desktop
|
|
1125
|
+
* @enum {string}
|
|
1126
|
+
*/
|
|
1127
|
+
device: "desktop" | "mobile";
|
|
1128
|
+
/**
|
|
1129
|
+
* @default none
|
|
1130
|
+
* @enum {string}
|
|
1131
|
+
*/
|
|
1132
|
+
proxyMode: "location" | "configured" | "none";
|
|
1133
|
+
proxyZip?: string;
|
|
1134
|
+
/** @default 1 */
|
|
1135
|
+
pages: number;
|
|
1136
|
+
/** @default false */
|
|
1137
|
+
debug: boolean;
|
|
1138
|
+
/** @default false */
|
|
1139
|
+
includePageSnapshots: boolean;
|
|
1140
|
+
/** @default 0 */
|
|
1141
|
+
pageSnapshotLimit: number;
|
|
1142
|
+
};
|
|
1143
|
+
SerpIntelligencePageSnapshotsRequest: {
|
|
1144
|
+
urls: string[];
|
|
1145
|
+
targets?: {
|
|
1146
|
+
/** Format: uri */
|
|
1147
|
+
url?: string;
|
|
1148
|
+
/**
|
|
1149
|
+
* @default configured_target
|
|
1150
|
+
* @enum {string}
|
|
1151
|
+
*/
|
|
1152
|
+
sourceKind: "organic" | "ai_citation" | "local_pack_website" | "configured_target" | "site_subject";
|
|
1153
|
+
sourcePosition?: number;
|
|
1154
|
+
}[];
|
|
1155
|
+
/** @default 2 */
|
|
1156
|
+
maxConcurrency: number;
|
|
1157
|
+
/** @default 15000 */
|
|
1158
|
+
timeoutMs: number;
|
|
1159
|
+
/** @default false */
|
|
1160
|
+
debug: boolean;
|
|
1161
|
+
};
|
|
1162
|
+
SerpIntelligenceOrganicResult: {
|
|
1163
|
+
position?: number;
|
|
1164
|
+
title?: string;
|
|
1165
|
+
url?: string;
|
|
1166
|
+
domain?: string;
|
|
1167
|
+
cite?: string | null;
|
|
1168
|
+
snippet?: string | null;
|
|
1169
|
+
isRedditStyle?: boolean;
|
|
1170
|
+
inlineRating?: {
|
|
1171
|
+
value?: string;
|
|
1172
|
+
count?: string;
|
|
1173
|
+
} | null;
|
|
1174
|
+
};
|
|
1175
|
+
SerpIntelligenceHarvestResult: {
|
|
1176
|
+
seed?: string;
|
|
1177
|
+
location?: string | null;
|
|
1178
|
+
extractedAt?: string;
|
|
1179
|
+
totalQuestions?: number;
|
|
1180
|
+
/** @enum {string} */
|
|
1181
|
+
surface?: "web" | "aim" | "unknown";
|
|
1182
|
+
aiOverview?: {
|
|
1183
|
+
detected?: boolean;
|
|
1184
|
+
text?: string | null;
|
|
1185
|
+
citations?: {
|
|
1186
|
+
text?: string;
|
|
1187
|
+
href?: string;
|
|
1188
|
+
}[];
|
|
1189
|
+
};
|
|
1190
|
+
aiMode?: {
|
|
1191
|
+
detected?: boolean;
|
|
1192
|
+
text?: string | null;
|
|
1193
|
+
citations?: {
|
|
1194
|
+
text?: string;
|
|
1195
|
+
href?: string;
|
|
1196
|
+
}[];
|
|
1197
|
+
};
|
|
1198
|
+
tree?: unknown[];
|
|
1199
|
+
flat?: unknown[];
|
|
1200
|
+
videos?: unknown[];
|
|
1201
|
+
forums?: unknown[];
|
|
1202
|
+
organicResults?: components["schemas"]["SerpIntelligenceOrganicResult"][];
|
|
1203
|
+
localPack?: unknown[];
|
|
1204
|
+
entityIds?: {
|
|
1205
|
+
entities?: {
|
|
1206
|
+
name?: string;
|
|
1207
|
+
kgId?: string | null;
|
|
1208
|
+
cid?: string | null;
|
|
1209
|
+
gcid?: string | null;
|
|
1210
|
+
}[];
|
|
1211
|
+
kgIds?: string[];
|
|
1212
|
+
cids?: string[];
|
|
1213
|
+
gcids?: string[];
|
|
1214
|
+
};
|
|
1215
|
+
stats?: {
|
|
1216
|
+
seed?: string;
|
|
1217
|
+
totalQuestions?: number;
|
|
1218
|
+
maxDepthReached?: number;
|
|
1219
|
+
durationMs?: number;
|
|
1220
|
+
errorCount?: number;
|
|
1221
|
+
};
|
|
1222
|
+
diagnostics?: {
|
|
1223
|
+
[key: string]: unknown;
|
|
1224
|
+
};
|
|
1225
|
+
whatPeopleSaying?: unknown[];
|
|
1226
|
+
};
|
|
1227
|
+
SerpPageSnapshotCapture: {
|
|
1228
|
+
url?: string;
|
|
1229
|
+
requestedUrl?: string;
|
|
1230
|
+
finalUrl?: string | null;
|
|
1231
|
+
/** @enum {string} */
|
|
1232
|
+
sourceKind?: "organic" | "ai_citation" | "local_pack_website" | "configured_target" | "site_subject";
|
|
1233
|
+
sourcePosition?: number | null;
|
|
1234
|
+
/** @enum {string} */
|
|
1235
|
+
status?: "captured" | "skipped" | "failed";
|
|
1236
|
+
/** @enum {string|null} */
|
|
1237
|
+
fetchedVia?: "fetch" | "headless" | "browser" | "mcp" | null;
|
|
1238
|
+
httpStatus?: number | null;
|
|
1239
|
+
contentType?: string | null;
|
|
1240
|
+
title?: string | null;
|
|
1241
|
+
canonicalUrl?: string | null;
|
|
1242
|
+
metaDescription?: string | null;
|
|
1243
|
+
headings?: {
|
|
1244
|
+
level?: number;
|
|
1245
|
+
text?: string;
|
|
1246
|
+
}[];
|
|
1247
|
+
artifact?: {
|
|
1248
|
+
htmlBlobUrl?: string | null;
|
|
1249
|
+
textBlobUrl?: string | null;
|
|
1250
|
+
markdownBlobUrl?: string | null;
|
|
1251
|
+
screenshotBlobUrl?: string | null;
|
|
1252
|
+
contentSha256?: string | null;
|
|
1253
|
+
capturedAt?: string | null;
|
|
1254
|
+
};
|
|
1255
|
+
error?: {
|
|
1256
|
+
code?: string;
|
|
1257
|
+
message?: string;
|
|
1258
|
+
} | null;
|
|
1259
|
+
};
|
|
1260
|
+
SerpIntelligenceCaptureAttempt: {
|
|
1261
|
+
attemptNumber?: number;
|
|
1262
|
+
outcome?: string;
|
|
1263
|
+
startedAt?: string;
|
|
1264
|
+
completedAt?: string;
|
|
1265
|
+
durationMs?: number;
|
|
1266
|
+
problemCode?: string;
|
|
1267
|
+
message?: string;
|
|
1268
|
+
kernelSessionId?: string | null;
|
|
1269
|
+
cleanupSucceeded?: boolean | null;
|
|
1270
|
+
};
|
|
1271
|
+
SerpIntelligenceCaptureResponse: {
|
|
1272
|
+
harvestResult?: components["schemas"]["SerpIntelligenceHarvestResult"];
|
|
1273
|
+
attempts?: components["schemas"]["SerpIntelligenceCaptureAttempt"][];
|
|
1274
|
+
locationEvidence?: {
|
|
1275
|
+
[key: string]: unknown;
|
|
1276
|
+
} | null;
|
|
1277
|
+
pageSnapshotArtifacts?: components["schemas"]["SerpPageSnapshotCapture"][];
|
|
1278
|
+
billing?: {
|
|
1279
|
+
creditsUsed?: number;
|
|
1280
|
+
requestId?: string;
|
|
1281
|
+
jobId?: string;
|
|
1282
|
+
};
|
|
1283
|
+
};
|
|
1284
|
+
SerpIntelligencePageSnapshotsResponse: {
|
|
1285
|
+
pageSnapshotArtifacts?: components["schemas"]["SerpPageSnapshotCapture"][];
|
|
1286
|
+
attempts?: components["schemas"]["SerpIntelligenceCaptureAttempt"][];
|
|
1287
|
+
};
|
|
1288
|
+
WorkflowRun: {
|
|
1289
|
+
id?: string;
|
|
1290
|
+
workflow_id?: string;
|
|
1291
|
+
/** @enum {string} */
|
|
1292
|
+
status?: "queued" | "running" | "succeeded" | "partial" | "failed" | "cancelled";
|
|
1293
|
+
input?: {
|
|
1294
|
+
[key: string]: unknown;
|
|
1295
|
+
};
|
|
1296
|
+
step_index?: number;
|
|
1297
|
+
created_at?: string;
|
|
1298
|
+
completed_at?: string | null;
|
|
1299
|
+
error_message?: string | null;
|
|
1300
|
+
artifacts?: {
|
|
1301
|
+
id?: string;
|
|
1302
|
+
kind?: string;
|
|
1303
|
+
label?: string;
|
|
1304
|
+
downloadUrl?: string;
|
|
1305
|
+
}[];
|
|
1306
|
+
} & {
|
|
1307
|
+
[key: string]: unknown;
|
|
1308
|
+
};
|
|
1309
|
+
WorkflowRunStepResponse: {
|
|
1310
|
+
run?: components["schemas"]["WorkflowRun"];
|
|
1311
|
+
/** @description Present once the run reaches a terminal state. */
|
|
1312
|
+
summary?: {
|
|
1313
|
+
[key: string]: unknown;
|
|
1314
|
+
} | null;
|
|
1315
|
+
step?: {
|
|
1316
|
+
index?: number;
|
|
1317
|
+
id?: string;
|
|
1318
|
+
title?: string;
|
|
1319
|
+
totalSteps?: number;
|
|
1320
|
+
output?: {
|
|
1321
|
+
[key: string]: unknown;
|
|
1322
|
+
};
|
|
1323
|
+
warnings?: string[];
|
|
1324
|
+
} | null;
|
|
1325
|
+
nextStep?: {
|
|
1326
|
+
index?: number;
|
|
1327
|
+
id?: string | null;
|
|
1328
|
+
title?: string | null;
|
|
1329
|
+
} | null;
|
|
1330
|
+
done?: boolean;
|
|
1331
|
+
};
|
|
1332
|
+
WorkflowSchedule: {
|
|
1333
|
+
id?: string;
|
|
1334
|
+
workflow_id?: string;
|
|
1335
|
+
name?: string;
|
|
1336
|
+
/** @enum {string} */
|
|
1337
|
+
status?: "active" | "paused";
|
|
1338
|
+
input?: {
|
|
1339
|
+
[key: string]: unknown;
|
|
1340
|
+
};
|
|
1341
|
+
/** @enum {string} */
|
|
1342
|
+
cadence?: "daily" | "weekly" | "monthly";
|
|
1343
|
+
timezone?: string;
|
|
1344
|
+
webhook_url?: string | null;
|
|
1345
|
+
next_run_at?: string | null;
|
|
1346
|
+
};
|
|
1347
|
+
CallMemoryToolRequest: {
|
|
1348
|
+
/** @description A tool name from contracts/memory.tools.json, e.g. "memory-search". */
|
|
1349
|
+
toolName: string;
|
|
1350
|
+
/**
|
|
1351
|
+
* @description The named tool's input, matching its inputSchema in memory.tools.json.
|
|
1352
|
+
* @default {}
|
|
1353
|
+
*/
|
|
1354
|
+
args: {
|
|
1355
|
+
[key: string]: unknown;
|
|
1356
|
+
};
|
|
1357
|
+
};
|
|
1358
|
+
/** @description Shape depends on the tool called — see its outputSchema in memory.tools.json. */
|
|
1359
|
+
CallMemoryToolResponse: {
|
|
1360
|
+
ok?: boolean;
|
|
1361
|
+
/** @description Present when ok is false. */
|
|
1362
|
+
error?: string;
|
|
1363
|
+
} & {
|
|
1364
|
+
[key: string]: unknown;
|
|
1365
|
+
};
|
|
1366
|
+
};
|
|
1367
|
+
responses: {
|
|
1368
|
+
/** @description Missing or invalid `x-api-key`. */
|
|
1369
|
+
Unauthorized: {
|
|
1370
|
+
headers: {
|
|
1371
|
+
[name: string]: unknown;
|
|
1372
|
+
};
|
|
1373
|
+
content: {
|
|
1374
|
+
"application/json": components["schemas"]["Error"];
|
|
1375
|
+
};
|
|
1376
|
+
};
|
|
1377
|
+
/** @description Invalid request body. */
|
|
1378
|
+
BadRequest: {
|
|
1379
|
+
headers: {
|
|
1380
|
+
[name: string]: unknown;
|
|
1381
|
+
};
|
|
1382
|
+
content: {
|
|
1383
|
+
"application/json": components["schemas"]["Error"];
|
|
1384
|
+
};
|
|
1385
|
+
};
|
|
1386
|
+
/** @description Not found. */
|
|
1387
|
+
NotFound: {
|
|
1388
|
+
headers: {
|
|
1389
|
+
[name: string]: unknown;
|
|
1390
|
+
};
|
|
1391
|
+
content: {
|
|
1392
|
+
"application/json": components["schemas"]["Error"];
|
|
1393
|
+
};
|
|
1394
|
+
};
|
|
1395
|
+
/** @description Unexpected server error. */
|
|
1396
|
+
ServerError: {
|
|
1397
|
+
headers: {
|
|
1398
|
+
[name: string]: unknown;
|
|
1399
|
+
};
|
|
1400
|
+
content: {
|
|
1401
|
+
"application/json": components["schemas"]["Error"];
|
|
1402
|
+
};
|
|
1403
|
+
};
|
|
1404
|
+
/** @description Not enough credit balance to cover this call's cost. */
|
|
1405
|
+
InsufficientBalance: {
|
|
1406
|
+
headers: {
|
|
1407
|
+
[name: string]: unknown;
|
|
1408
|
+
};
|
|
1409
|
+
content: {
|
|
1410
|
+
"application/json": components["schemas"]["InsufficientBalanceError"];
|
|
1411
|
+
};
|
|
1412
|
+
};
|
|
1413
|
+
/** @description Too many concurrent operations for your account's concurrency limit. */
|
|
1414
|
+
ConcurrencyLimitExceeded: {
|
|
1415
|
+
headers: {
|
|
1416
|
+
[name: string]: unknown;
|
|
1417
|
+
};
|
|
1418
|
+
content: {
|
|
1419
|
+
"application/json": components["schemas"]["ConcurrencyLimitError"];
|
|
1420
|
+
};
|
|
1421
|
+
};
|
|
1422
|
+
/** @description Invalid request body. */
|
|
1423
|
+
StructuredBadRequest: {
|
|
1424
|
+
headers: {
|
|
1425
|
+
[name: string]: unknown;
|
|
1426
|
+
};
|
|
1427
|
+
content: {
|
|
1428
|
+
"application/json": components["schemas"]["StructuredError"];
|
|
1429
|
+
};
|
|
1430
|
+
};
|
|
1431
|
+
/** @description Too many SERP Intelligence requests (60/minute limit). */
|
|
1432
|
+
StructuredRateLimited: {
|
|
1433
|
+
headers: {
|
|
1434
|
+
[name: string]: unknown;
|
|
1435
|
+
};
|
|
1436
|
+
content: {
|
|
1437
|
+
"application/json": components["schemas"]["StructuredError"];
|
|
1438
|
+
};
|
|
1439
|
+
};
|
|
1440
|
+
/** @description Capture failed. */
|
|
1441
|
+
StructuredCaptureFailed: {
|
|
1442
|
+
headers: {
|
|
1443
|
+
[name: string]: unknown;
|
|
1444
|
+
};
|
|
1445
|
+
content: {
|
|
1446
|
+
"application/json": components["schemas"]["StructuredError"];
|
|
1447
|
+
};
|
|
1448
|
+
};
|
|
1449
|
+
};
|
|
1450
|
+
parameters: never;
|
|
1451
|
+
requestBodies: never;
|
|
1452
|
+
headers: never;
|
|
1453
|
+
pathItems: never;
|
|
1454
|
+
}
|
|
1455
|
+
interface operations {
|
|
1456
|
+
harvestSync: {
|
|
1457
|
+
parameters: {
|
|
1458
|
+
query?: never;
|
|
1459
|
+
header?: never;
|
|
1460
|
+
path?: never;
|
|
1461
|
+
cookie?: never;
|
|
1462
|
+
};
|
|
1463
|
+
requestBody: {
|
|
1464
|
+
content: {
|
|
1465
|
+
"application/json": components["schemas"]["HarvestSyncRequest"];
|
|
1466
|
+
};
|
|
1467
|
+
};
|
|
1468
|
+
responses: {
|
|
1469
|
+
/** @description Harvest completed (or failed/cancelled — check `status`). */
|
|
1470
|
+
200: {
|
|
1471
|
+
headers: {
|
|
1472
|
+
[name: string]: unknown;
|
|
1473
|
+
};
|
|
1474
|
+
content: {
|
|
1475
|
+
"application/json": components["schemas"]["HarvestSyncResponse"];
|
|
1476
|
+
};
|
|
1477
|
+
};
|
|
1478
|
+
400: components["responses"]["BadRequest"];
|
|
1479
|
+
402: components["responses"]["InsufficientBalance"];
|
|
1480
|
+
429: components["responses"]["ConcurrencyLimitExceeded"];
|
|
1481
|
+
};
|
|
1482
|
+
};
|
|
1483
|
+
listJobs: {
|
|
1484
|
+
parameters: {
|
|
1485
|
+
query?: never;
|
|
1486
|
+
header?: never;
|
|
1487
|
+
path?: never;
|
|
1488
|
+
cookie?: never;
|
|
1489
|
+
};
|
|
1490
|
+
requestBody?: never;
|
|
1491
|
+
responses: {
|
|
1492
|
+
/** @description Job list. */
|
|
1493
|
+
200: {
|
|
1494
|
+
headers: {
|
|
1495
|
+
[name: string]: unknown;
|
|
1496
|
+
};
|
|
1497
|
+
content: {
|
|
1498
|
+
"application/json": components["schemas"]["JobRecord"][];
|
|
1499
|
+
};
|
|
1500
|
+
};
|
|
1501
|
+
401: components["responses"]["Unauthorized"];
|
|
1502
|
+
};
|
|
1503
|
+
};
|
|
1504
|
+
getJob: {
|
|
1505
|
+
parameters: {
|
|
1506
|
+
query?: never;
|
|
1507
|
+
header?: never;
|
|
1508
|
+
path: {
|
|
1509
|
+
id: string;
|
|
1510
|
+
};
|
|
1511
|
+
cookie?: never;
|
|
1512
|
+
};
|
|
1513
|
+
requestBody?: never;
|
|
1514
|
+
responses: {
|
|
1515
|
+
/** @description Job detail. */
|
|
1516
|
+
200: {
|
|
1517
|
+
headers: {
|
|
1518
|
+
[name: string]: unknown;
|
|
1519
|
+
};
|
|
1520
|
+
content: {
|
|
1521
|
+
"application/json": components["schemas"]["JobRecord"];
|
|
1522
|
+
};
|
|
1523
|
+
};
|
|
1524
|
+
404: components["responses"]["NotFound"];
|
|
1525
|
+
};
|
|
1526
|
+
};
|
|
1527
|
+
getHistory: {
|
|
1528
|
+
parameters: {
|
|
1529
|
+
query?: never;
|
|
1530
|
+
header?: never;
|
|
1531
|
+
path?: never;
|
|
1532
|
+
cookie?: never;
|
|
1533
|
+
};
|
|
1534
|
+
requestBody?: never;
|
|
1535
|
+
responses: {
|
|
1536
|
+
/** @description Up to 100 most recent rows. */
|
|
1537
|
+
200: {
|
|
1538
|
+
headers: {
|
|
1539
|
+
[name: string]: unknown;
|
|
1540
|
+
};
|
|
1541
|
+
content: {
|
|
1542
|
+
"application/json": {
|
|
1543
|
+
[key: string]: unknown;
|
|
1544
|
+
}[];
|
|
1545
|
+
};
|
|
1546
|
+
};
|
|
1547
|
+
401: components["responses"]["Unauthorized"];
|
|
1548
|
+
};
|
|
1549
|
+
};
|
|
1550
|
+
getLedger: {
|
|
1551
|
+
parameters: {
|
|
1552
|
+
query?: never;
|
|
1553
|
+
header?: never;
|
|
1554
|
+
path?: never;
|
|
1555
|
+
cookie?: never;
|
|
1556
|
+
};
|
|
1557
|
+
requestBody?: never;
|
|
1558
|
+
responses: {
|
|
1559
|
+
/** @description Up to 100 most recent ledger rows. */
|
|
1560
|
+
200: {
|
|
1561
|
+
headers: {
|
|
1562
|
+
[name: string]: unknown;
|
|
1563
|
+
};
|
|
1564
|
+
content: {
|
|
1565
|
+
"application/json": {
|
|
1566
|
+
[key: string]: unknown;
|
|
1567
|
+
}[];
|
|
1568
|
+
};
|
|
1569
|
+
};
|
|
1570
|
+
401: components["responses"]["Unauthorized"];
|
|
1571
|
+
};
|
|
1572
|
+
};
|
|
1573
|
+
extractUrl: {
|
|
1574
|
+
parameters: {
|
|
1575
|
+
query?: never;
|
|
1576
|
+
header?: never;
|
|
1577
|
+
path?: never;
|
|
1578
|
+
cookie?: never;
|
|
1579
|
+
};
|
|
1580
|
+
requestBody: {
|
|
1581
|
+
content: {
|
|
1582
|
+
"application/json": components["schemas"]["ExtractUrlRequest"];
|
|
1583
|
+
};
|
|
1584
|
+
};
|
|
1585
|
+
responses: {
|
|
1586
|
+
/** @description Extraction result. */
|
|
1587
|
+
200: {
|
|
1588
|
+
headers: {
|
|
1589
|
+
[name: string]: unknown;
|
|
1590
|
+
};
|
|
1591
|
+
content: {
|
|
1592
|
+
"application/json": components["schemas"]["ExtractUrlResponse"];
|
|
1593
|
+
};
|
|
1594
|
+
};
|
|
1595
|
+
400: components["responses"]["BadRequest"];
|
|
1596
|
+
402: components["responses"]["InsufficientBalance"];
|
|
1597
|
+
429: components["responses"]["ConcurrencyLimitExceeded"];
|
|
1598
|
+
500: components["responses"]["ServerError"];
|
|
1599
|
+
};
|
|
1600
|
+
};
|
|
1601
|
+
mapSiteUrls: {
|
|
1602
|
+
parameters: {
|
|
1603
|
+
query?: never;
|
|
1604
|
+
header?: never;
|
|
1605
|
+
path?: never;
|
|
1606
|
+
cookie?: never;
|
|
1607
|
+
};
|
|
1608
|
+
requestBody: {
|
|
1609
|
+
content: {
|
|
1610
|
+
"application/json": components["schemas"]["MapUrlsRequest"];
|
|
1611
|
+
};
|
|
1612
|
+
};
|
|
1613
|
+
responses: {
|
|
1614
|
+
/** @description URL inventory. */
|
|
1615
|
+
200: {
|
|
1616
|
+
headers: {
|
|
1617
|
+
[name: string]: unknown;
|
|
1618
|
+
};
|
|
1619
|
+
content: {
|
|
1620
|
+
"application/json": components["schemas"]["MapUrlsResponse"];
|
|
1621
|
+
};
|
|
1622
|
+
};
|
|
1623
|
+
400: components["responses"]["BadRequest"];
|
|
1624
|
+
402: components["responses"]["InsufficientBalance"];
|
|
1625
|
+
429: components["responses"]["ConcurrencyLimitExceeded"];
|
|
1626
|
+
500: components["responses"]["ServerError"];
|
|
1627
|
+
};
|
|
1628
|
+
};
|
|
1629
|
+
extractSite: {
|
|
1630
|
+
parameters: {
|
|
1631
|
+
query?: never;
|
|
1632
|
+
header?: never;
|
|
1633
|
+
path?: never;
|
|
1634
|
+
cookie?: never;
|
|
1635
|
+
};
|
|
1636
|
+
requestBody: {
|
|
1637
|
+
content: {
|
|
1638
|
+
"application/json": components["schemas"]["ExtractSiteRequest"];
|
|
1639
|
+
};
|
|
1640
|
+
};
|
|
1641
|
+
responses: {
|
|
1642
|
+
/** @description Full crawl result (synchronous mode) or a queued job (`background:true`). */
|
|
1643
|
+
200: {
|
|
1644
|
+
headers: {
|
|
1645
|
+
[name: string]: unknown;
|
|
1646
|
+
};
|
|
1647
|
+
content: {
|
|
1648
|
+
"application/json": components["schemas"]["ExtractSiteResponse"] | components["schemas"]["ExtractSiteQueuedResponse"];
|
|
1649
|
+
};
|
|
1650
|
+
};
|
|
1651
|
+
400: components["responses"]["BadRequest"];
|
|
1652
|
+
402: components["responses"]["InsufficientBalance"];
|
|
1653
|
+
429: components["responses"]["ConcurrencyLimitExceeded"];
|
|
1654
|
+
500: components["responses"]["ServerError"];
|
|
1655
|
+
/** @description Failed to enqueue the background crawl. */
|
|
1656
|
+
503: {
|
|
1657
|
+
headers: {
|
|
1658
|
+
[name: string]: unknown;
|
|
1659
|
+
};
|
|
1660
|
+
content?: never;
|
|
1661
|
+
};
|
|
1662
|
+
};
|
|
1663
|
+
};
|
|
1664
|
+
getExtractSiteStatus: {
|
|
1665
|
+
parameters: {
|
|
1666
|
+
query?: never;
|
|
1667
|
+
header?: never;
|
|
1668
|
+
path: {
|
|
1669
|
+
id: string;
|
|
1670
|
+
};
|
|
1671
|
+
cookie?: never;
|
|
1672
|
+
};
|
|
1673
|
+
requestBody?: never;
|
|
1674
|
+
responses: {
|
|
1675
|
+
/** @description Job status. */
|
|
1676
|
+
200: {
|
|
1677
|
+
headers: {
|
|
1678
|
+
[name: string]: unknown;
|
|
1679
|
+
};
|
|
1680
|
+
content: {
|
|
1681
|
+
"application/json": components["schemas"]["ExtractSiteStatus"];
|
|
1682
|
+
};
|
|
1683
|
+
};
|
|
1684
|
+
404: components["responses"]["NotFound"];
|
|
1685
|
+
};
|
|
1686
|
+
};
|
|
1687
|
+
youtubeHarvest: {
|
|
1688
|
+
parameters: {
|
|
1689
|
+
query?: never;
|
|
1690
|
+
header?: never;
|
|
1691
|
+
path?: never;
|
|
1692
|
+
cookie?: never;
|
|
1693
|
+
};
|
|
1694
|
+
requestBody: {
|
|
1695
|
+
content: {
|
|
1696
|
+
"application/json": components["schemas"]["YoutubeHarvestRequest"];
|
|
1697
|
+
};
|
|
1698
|
+
};
|
|
1699
|
+
responses: {
|
|
1700
|
+
/** @description Video list. */
|
|
1701
|
+
200: {
|
|
1702
|
+
headers: {
|
|
1703
|
+
[name: string]: unknown;
|
|
1704
|
+
};
|
|
1705
|
+
content: {
|
|
1706
|
+
"application/json": {
|
|
1707
|
+
[key: string]: unknown;
|
|
1708
|
+
};
|
|
1709
|
+
};
|
|
1710
|
+
};
|
|
1711
|
+
400: components["responses"]["BadRequest"];
|
|
1712
|
+
402: components["responses"]["InsufficientBalance"];
|
|
1713
|
+
429: components["responses"]["ConcurrencyLimitExceeded"];
|
|
1714
|
+
500: components["responses"]["ServerError"];
|
|
1715
|
+
/** @description YouTube blocked the request (CAPTCHA) — billed amount was refunded. */
|
|
1716
|
+
503: {
|
|
1717
|
+
headers: {
|
|
1718
|
+
[name: string]: unknown;
|
|
1719
|
+
};
|
|
1720
|
+
content?: never;
|
|
1721
|
+
};
|
|
1722
|
+
};
|
|
1723
|
+
};
|
|
1724
|
+
youtubeTranscribe: {
|
|
1725
|
+
parameters: {
|
|
1726
|
+
query?: never;
|
|
1727
|
+
header?: never;
|
|
1728
|
+
path?: never;
|
|
1729
|
+
cookie?: never;
|
|
1730
|
+
};
|
|
1731
|
+
requestBody: {
|
|
1732
|
+
content: {
|
|
1733
|
+
"application/json": {
|
|
1734
|
+
/** @description YouTube video ID (not a full URL). */
|
|
1735
|
+
videoId: string;
|
|
1736
|
+
};
|
|
1737
|
+
};
|
|
1738
|
+
};
|
|
1739
|
+
responses: {
|
|
1740
|
+
/** @description Transcript with plain text, timestamped chunks, markdown, and HTML renderings. */
|
|
1741
|
+
200: {
|
|
1742
|
+
headers: {
|
|
1743
|
+
[name: string]: unknown;
|
|
1744
|
+
};
|
|
1745
|
+
content: {
|
|
1746
|
+
"application/json": components["schemas"]["TranscriptResponse"];
|
|
1747
|
+
};
|
|
1748
|
+
};
|
|
1749
|
+
400: components["responses"]["BadRequest"];
|
|
1750
|
+
402: components["responses"]["InsufficientBalance"];
|
|
1751
|
+
429: components["responses"]["ConcurrencyLimitExceeded"];
|
|
1752
|
+
500: components["responses"]["ServerError"];
|
|
1753
|
+
};
|
|
1754
|
+
};
|
|
1755
|
+
screenshot: {
|
|
1756
|
+
parameters: {
|
|
1757
|
+
query?: never;
|
|
1758
|
+
header?: never;
|
|
1759
|
+
path?: never;
|
|
1760
|
+
cookie?: never;
|
|
1761
|
+
};
|
|
1762
|
+
requestBody: {
|
|
1763
|
+
content: {
|
|
1764
|
+
"application/json": {
|
|
1765
|
+
/** Format: uri */
|
|
1766
|
+
url: string;
|
|
1767
|
+
/**
|
|
1768
|
+
* @default desktop
|
|
1769
|
+
* @enum {string}
|
|
1770
|
+
*/
|
|
1771
|
+
device?: "desktop" | "mobile";
|
|
1772
|
+
/**
|
|
1773
|
+
* @description Allow non-public/local URLs. Off by default.
|
|
1774
|
+
* @default false
|
|
1775
|
+
*/
|
|
1776
|
+
allowLocal?: boolean;
|
|
1777
|
+
};
|
|
1778
|
+
};
|
|
1779
|
+
};
|
|
1780
|
+
responses: {
|
|
1781
|
+
/** @description PNG image bytes. */
|
|
1782
|
+
200: {
|
|
1783
|
+
headers: {
|
|
1784
|
+
[name: string]: unknown;
|
|
1785
|
+
};
|
|
1786
|
+
content: {
|
|
1787
|
+
"image/png": string;
|
|
1788
|
+
};
|
|
1789
|
+
};
|
|
1790
|
+
400: components["responses"]["BadRequest"];
|
|
1791
|
+
402: components["responses"]["InsufficientBalance"];
|
|
1792
|
+
429: components["responses"]["ConcurrencyLimitExceeded"];
|
|
1793
|
+
/** @description Screenshot capture failed. */
|
|
1794
|
+
502: {
|
|
1795
|
+
headers: {
|
|
1796
|
+
[name: string]: unknown;
|
|
1797
|
+
};
|
|
1798
|
+
content?: never;
|
|
1799
|
+
};
|
|
1800
|
+
};
|
|
1801
|
+
};
|
|
1802
|
+
facebookAd: {
|
|
1803
|
+
parameters: {
|
|
1804
|
+
query?: never;
|
|
1805
|
+
header?: never;
|
|
1806
|
+
path?: never;
|
|
1807
|
+
cookie?: never;
|
|
1808
|
+
};
|
|
1809
|
+
requestBody: {
|
|
1810
|
+
content: {
|
|
1811
|
+
"application/json": {
|
|
1812
|
+
/** @description A facebook.com/ads/library ad URL. */
|
|
1813
|
+
url?: string;
|
|
1814
|
+
libraryId?: string;
|
|
1815
|
+
/** @default true */
|
|
1816
|
+
openModal?: boolean;
|
|
1817
|
+
};
|
|
1818
|
+
};
|
|
1819
|
+
};
|
|
1820
|
+
responses: {
|
|
1821
|
+
/** @description Ad detail with creative variants. */
|
|
1822
|
+
200: {
|
|
1823
|
+
headers: {
|
|
1824
|
+
[name: string]: unknown;
|
|
1825
|
+
};
|
|
1826
|
+
content: {
|
|
1827
|
+
"application/json": {
|
|
1828
|
+
[key: string]: unknown;
|
|
1829
|
+
};
|
|
1830
|
+
};
|
|
1831
|
+
};
|
|
1832
|
+
400: components["responses"]["BadRequest"];
|
|
1833
|
+
402: components["responses"]["InsufficientBalance"];
|
|
1834
|
+
429: components["responses"]["ConcurrencyLimitExceeded"];
|
|
1835
|
+
500: components["responses"]["ServerError"];
|
|
1836
|
+
/** @description Facebook blocked the request (CAPTCHA/soft-block) — billed amount was refunded. */
|
|
1837
|
+
503: {
|
|
1838
|
+
headers: {
|
|
1839
|
+
[name: string]: unknown;
|
|
1840
|
+
};
|
|
1841
|
+
content?: never;
|
|
1842
|
+
};
|
|
1843
|
+
};
|
|
1844
|
+
};
|
|
1845
|
+
facebookPageIntel: {
|
|
1846
|
+
parameters: {
|
|
1847
|
+
query?: never;
|
|
1848
|
+
header?: never;
|
|
1849
|
+
path?: never;
|
|
1850
|
+
cookie?: never;
|
|
1851
|
+
};
|
|
1852
|
+
requestBody: {
|
|
1853
|
+
content: {
|
|
1854
|
+
"application/json": {
|
|
1855
|
+
pageId?: string;
|
|
1856
|
+
query?: string;
|
|
1857
|
+
libraryId?: string;
|
|
1858
|
+
/** @default 50 */
|
|
1859
|
+
maxAds?: number;
|
|
1860
|
+
/**
|
|
1861
|
+
* @description ISO 3166-1 alpha-2, e.g. US.
|
|
1862
|
+
* @default US
|
|
1863
|
+
*/
|
|
1864
|
+
country?: string;
|
|
1865
|
+
};
|
|
1866
|
+
};
|
|
1867
|
+
};
|
|
1868
|
+
responses: {
|
|
1869
|
+
/** @description Ads for the advertiser. */
|
|
1870
|
+
200: {
|
|
1871
|
+
headers: {
|
|
1872
|
+
[name: string]: unknown;
|
|
1873
|
+
};
|
|
1874
|
+
content: {
|
|
1875
|
+
"application/json": {
|
|
1876
|
+
[key: string]: unknown;
|
|
1877
|
+
};
|
|
1878
|
+
};
|
|
1879
|
+
};
|
|
1880
|
+
400: components["responses"]["BadRequest"];
|
|
1881
|
+
402: components["responses"]["InsufficientBalance"];
|
|
1882
|
+
429: components["responses"]["ConcurrencyLimitExceeded"];
|
|
1883
|
+
500: components["responses"]["ServerError"];
|
|
1884
|
+
/** @description Soft-blocked with an empty result — billed amount was refunded. */
|
|
1885
|
+
503: {
|
|
1886
|
+
headers: {
|
|
1887
|
+
[name: string]: unknown;
|
|
1888
|
+
};
|
|
1889
|
+
content?: never;
|
|
1890
|
+
};
|
|
1891
|
+
};
|
|
1892
|
+
};
|
|
1893
|
+
facebookAdTranscribe: {
|
|
1894
|
+
parameters: {
|
|
1895
|
+
query?: never;
|
|
1896
|
+
header?: never;
|
|
1897
|
+
path?: never;
|
|
1898
|
+
cookie?: never;
|
|
1899
|
+
};
|
|
1900
|
+
requestBody: {
|
|
1901
|
+
content: {
|
|
1902
|
+
"application/json": {
|
|
1903
|
+
/** Format: uri */
|
|
1904
|
+
videoUrl: string;
|
|
1905
|
+
};
|
|
1906
|
+
};
|
|
1907
|
+
};
|
|
1908
|
+
responses: {
|
|
1909
|
+
/** @description Transcript. */
|
|
1910
|
+
200: {
|
|
1911
|
+
headers: {
|
|
1912
|
+
[name: string]: unknown;
|
|
1913
|
+
};
|
|
1914
|
+
content: {
|
|
1915
|
+
"application/json": components["schemas"]["TranscriptResponse"];
|
|
1916
|
+
};
|
|
1917
|
+
};
|
|
1918
|
+
400: components["responses"]["BadRequest"];
|
|
1919
|
+
402: components["responses"]["InsufficientBalance"];
|
|
1920
|
+
429: components["responses"]["ConcurrencyLimitExceeded"];
|
|
1921
|
+
500: components["responses"]["ServerError"];
|
|
1922
|
+
};
|
|
1923
|
+
};
|
|
1924
|
+
facebookVideoTranscribe: {
|
|
1925
|
+
parameters: {
|
|
1926
|
+
query?: never;
|
|
1927
|
+
header?: never;
|
|
1928
|
+
path?: never;
|
|
1929
|
+
cookie?: never;
|
|
1930
|
+
};
|
|
1931
|
+
requestBody: {
|
|
1932
|
+
content: {
|
|
1933
|
+
"application/json": {
|
|
1934
|
+
/** @description facebook.com or fb.watch URL. */
|
|
1935
|
+
url: string;
|
|
1936
|
+
/**
|
|
1937
|
+
* @default best
|
|
1938
|
+
* @enum {string}
|
|
1939
|
+
*/
|
|
1940
|
+
quality?: "best" | "hd" | "sd";
|
|
1941
|
+
};
|
|
1942
|
+
};
|
|
1943
|
+
};
|
|
1944
|
+
responses: {
|
|
1945
|
+
/** @description Video metadata plus transcript. */
|
|
1946
|
+
200: {
|
|
1947
|
+
headers: {
|
|
1948
|
+
[name: string]: unknown;
|
|
1949
|
+
};
|
|
1950
|
+
content: {
|
|
1951
|
+
"application/json": {
|
|
1952
|
+
[key: string]: unknown;
|
|
1953
|
+
};
|
|
1954
|
+
};
|
|
1955
|
+
};
|
|
1956
|
+
400: components["responses"]["BadRequest"];
|
|
1957
|
+
402: components["responses"]["InsufficientBalance"];
|
|
1958
|
+
429: components["responses"]["ConcurrencyLimitExceeded"];
|
|
1959
|
+
500: components["responses"]["ServerError"];
|
|
1960
|
+
};
|
|
1961
|
+
};
|
|
1962
|
+
facebookSearch: {
|
|
1963
|
+
parameters: {
|
|
1964
|
+
query?: never;
|
|
1965
|
+
header?: never;
|
|
1966
|
+
path?: never;
|
|
1967
|
+
cookie?: never;
|
|
1968
|
+
};
|
|
1969
|
+
requestBody: {
|
|
1970
|
+
content: {
|
|
1971
|
+
"application/json": {
|
|
1972
|
+
query: string;
|
|
1973
|
+
/** @default US */
|
|
1974
|
+
country?: string;
|
|
1975
|
+
/** @default 10 */
|
|
1976
|
+
maxResults?: number;
|
|
1977
|
+
};
|
|
1978
|
+
};
|
|
1979
|
+
};
|
|
1980
|
+
responses: {
|
|
1981
|
+
/** @description Matching advertisers. */
|
|
1982
|
+
200: {
|
|
1983
|
+
headers: {
|
|
1984
|
+
[name: string]: unknown;
|
|
1985
|
+
};
|
|
1986
|
+
content: {
|
|
1987
|
+
"application/json": {
|
|
1988
|
+
query?: string;
|
|
1989
|
+
searchUrl?: string;
|
|
1990
|
+
results?: {
|
|
1991
|
+
name?: string;
|
|
1992
|
+
pageName?: string;
|
|
1993
|
+
pageId?: string | null;
|
|
1994
|
+
libraryId?: string;
|
|
1995
|
+
sampleLibraryId?: string;
|
|
1996
|
+
adCount?: number;
|
|
1997
|
+
}[];
|
|
1998
|
+
};
|
|
1999
|
+
};
|
|
2000
|
+
};
|
|
2001
|
+
400: components["responses"]["BadRequest"];
|
|
2002
|
+
402: components["responses"]["InsufficientBalance"];
|
|
2003
|
+
429: components["responses"]["ConcurrencyLimitExceeded"];
|
|
2004
|
+
500: components["responses"]["ServerError"];
|
|
2005
|
+
/** @description Soft-blocked with an empty result — billed amount was refunded. */
|
|
2006
|
+
503: {
|
|
2007
|
+
headers: {
|
|
2008
|
+
[name: string]: unknown;
|
|
2009
|
+
};
|
|
2010
|
+
content?: never;
|
|
2011
|
+
};
|
|
2012
|
+
};
|
|
2013
|
+
};
|
|
2014
|
+
facebookMedia: {
|
|
2015
|
+
parameters: {
|
|
2016
|
+
query?: never;
|
|
2017
|
+
header?: never;
|
|
2018
|
+
path?: never;
|
|
2019
|
+
cookie?: never;
|
|
2020
|
+
};
|
|
2021
|
+
requestBody: {
|
|
2022
|
+
content: {
|
|
2023
|
+
"application/json": {
|
|
2024
|
+
/** Format: uri */
|
|
2025
|
+
url: string;
|
|
2026
|
+
filename?: string;
|
|
2027
|
+
};
|
|
2028
|
+
};
|
|
2029
|
+
};
|
|
2030
|
+
responses: {
|
|
2031
|
+
/** @description Media bytes with the original content type. */
|
|
2032
|
+
200: {
|
|
2033
|
+
headers: {
|
|
2034
|
+
[name: string]: unknown;
|
|
2035
|
+
};
|
|
2036
|
+
content: {
|
|
2037
|
+
"application/octet-stream": string;
|
|
2038
|
+
};
|
|
2039
|
+
};
|
|
2040
|
+
400: components["responses"]["BadRequest"];
|
|
2041
|
+
/** @description The CDN fetch failed. */
|
|
2042
|
+
502: {
|
|
2043
|
+
headers: {
|
|
2044
|
+
[name: string]: unknown;
|
|
2045
|
+
};
|
|
2046
|
+
content?: never;
|
|
2047
|
+
};
|
|
2048
|
+
};
|
|
2049
|
+
};
|
|
2050
|
+
googleAdsSearch: {
|
|
2051
|
+
parameters: {
|
|
2052
|
+
query?: never;
|
|
2053
|
+
header?: never;
|
|
2054
|
+
path?: never;
|
|
2055
|
+
cookie?: never;
|
|
2056
|
+
};
|
|
2057
|
+
requestBody: {
|
|
2058
|
+
content: {
|
|
2059
|
+
"application/json": {
|
|
2060
|
+
query: string;
|
|
2061
|
+
/**
|
|
2062
|
+
* @description ISO 3166-1 alpha-2.
|
|
2063
|
+
* @default US
|
|
2064
|
+
*/
|
|
2065
|
+
region?: string;
|
|
2066
|
+
/** @default 10 */
|
|
2067
|
+
maxResults?: number;
|
|
2068
|
+
};
|
|
2069
|
+
};
|
|
2070
|
+
};
|
|
2071
|
+
responses: {
|
|
2072
|
+
/** @description Matching advertisers. */
|
|
2073
|
+
200: {
|
|
2074
|
+
headers: {
|
|
2075
|
+
[name: string]: unknown;
|
|
2076
|
+
};
|
|
2077
|
+
content: {
|
|
2078
|
+
"application/json": {
|
|
2079
|
+
[key: string]: unknown;
|
|
2080
|
+
};
|
|
2081
|
+
};
|
|
2082
|
+
};
|
|
2083
|
+
400: components["responses"]["BadRequest"];
|
|
2084
|
+
402: components["responses"]["InsufficientBalance"];
|
|
2085
|
+
429: components["responses"]["ConcurrencyLimitExceeded"];
|
|
2086
|
+
500: components["responses"]["ServerError"];
|
|
2087
|
+
/** @description No advertisers found, or blocked — billed amount was refunded. */
|
|
2088
|
+
503: {
|
|
2089
|
+
headers: {
|
|
2090
|
+
[name: string]: unknown;
|
|
2091
|
+
};
|
|
2092
|
+
content?: never;
|
|
2093
|
+
};
|
|
2094
|
+
};
|
|
2095
|
+
};
|
|
2096
|
+
googleAdsPageIntel: {
|
|
2097
|
+
parameters: {
|
|
2098
|
+
query?: never;
|
|
2099
|
+
header?: never;
|
|
2100
|
+
path?: never;
|
|
2101
|
+
cookie?: never;
|
|
2102
|
+
};
|
|
2103
|
+
requestBody: {
|
|
2104
|
+
content: {
|
|
2105
|
+
"application/json": {
|
|
2106
|
+
advertiserId?: string;
|
|
2107
|
+
domain?: string;
|
|
2108
|
+
/** @default US */
|
|
2109
|
+
region?: string;
|
|
2110
|
+
/** @default 50 */
|
|
2111
|
+
maxAds?: number;
|
|
2112
|
+
};
|
|
2113
|
+
};
|
|
2114
|
+
};
|
|
2115
|
+
responses: {
|
|
2116
|
+
/** @description Advertiser creatives. */
|
|
2117
|
+
200: {
|
|
2118
|
+
headers: {
|
|
2119
|
+
[name: string]: unknown;
|
|
2120
|
+
};
|
|
2121
|
+
content: {
|
|
2122
|
+
"application/json": {
|
|
2123
|
+
[key: string]: unknown;
|
|
2124
|
+
};
|
|
2125
|
+
};
|
|
2126
|
+
};
|
|
2127
|
+
400: components["responses"]["BadRequest"];
|
|
2128
|
+
402: components["responses"]["InsufficientBalance"];
|
|
2129
|
+
429: components["responses"]["ConcurrencyLimitExceeded"];
|
|
2130
|
+
500: components["responses"]["ServerError"];
|
|
2131
|
+
/** @description No ads found, or blocked — billed amount was refunded. */
|
|
2132
|
+
503: {
|
|
2133
|
+
headers: {
|
|
2134
|
+
[name: string]: unknown;
|
|
2135
|
+
};
|
|
2136
|
+
content?: never;
|
|
2137
|
+
};
|
|
2138
|
+
};
|
|
2139
|
+
};
|
|
2140
|
+
googleAdsTranscribe: {
|
|
2141
|
+
parameters: {
|
|
2142
|
+
query?: never;
|
|
2143
|
+
header?: never;
|
|
2144
|
+
path?: never;
|
|
2145
|
+
cookie?: never;
|
|
2146
|
+
};
|
|
2147
|
+
requestBody: {
|
|
2148
|
+
content: {
|
|
2149
|
+
"application/json": {
|
|
2150
|
+
/** Format: uri */
|
|
2151
|
+
videoUrl: string;
|
|
2152
|
+
};
|
|
2153
|
+
};
|
|
2154
|
+
};
|
|
2155
|
+
responses: {
|
|
2156
|
+
/** @description Transcript. */
|
|
2157
|
+
200: {
|
|
2158
|
+
headers: {
|
|
2159
|
+
[name: string]: unknown;
|
|
2160
|
+
};
|
|
2161
|
+
content: {
|
|
2162
|
+
"application/json": components["schemas"]["TranscriptResponse"];
|
|
2163
|
+
};
|
|
2164
|
+
};
|
|
2165
|
+
400: components["responses"]["BadRequest"];
|
|
2166
|
+
402: components["responses"]["InsufficientBalance"];
|
|
2167
|
+
429: components["responses"]["ConcurrencyLimitExceeded"];
|
|
2168
|
+
500: components["responses"]["ServerError"];
|
|
2169
|
+
};
|
|
2170
|
+
};
|
|
2171
|
+
instagramProfileContent: {
|
|
2172
|
+
parameters: {
|
|
2173
|
+
query?: never;
|
|
2174
|
+
header?: never;
|
|
2175
|
+
path?: never;
|
|
2176
|
+
cookie?: never;
|
|
2177
|
+
};
|
|
2178
|
+
requestBody: {
|
|
2179
|
+
content: {
|
|
2180
|
+
"application/json": {
|
|
2181
|
+
handle?: string;
|
|
2182
|
+
url?: string;
|
|
2183
|
+
/** @default 50 */
|
|
2184
|
+
maxItems?: number;
|
|
2185
|
+
/** @default 10 */
|
|
2186
|
+
maxScrolls?: number;
|
|
2187
|
+
/** @default 1200 */
|
|
2188
|
+
scrollDelayMs?: number;
|
|
2189
|
+
/** @default 4 */
|
|
2190
|
+
stableScrollLimit?: number;
|
|
2191
|
+
};
|
|
2192
|
+
};
|
|
2193
|
+
};
|
|
2194
|
+
responses: {
|
|
2195
|
+
/** @description Profile content. */
|
|
2196
|
+
200: {
|
|
2197
|
+
headers: {
|
|
2198
|
+
[name: string]: unknown;
|
|
2199
|
+
};
|
|
2200
|
+
content: {
|
|
2201
|
+
"application/json": {
|
|
2202
|
+
[key: string]: unknown;
|
|
2203
|
+
};
|
|
2204
|
+
};
|
|
2205
|
+
};
|
|
2206
|
+
400: components["responses"]["BadRequest"];
|
|
2207
|
+
402: components["responses"]["InsufficientBalance"];
|
|
2208
|
+
429: components["responses"]["ConcurrencyLimitExceeded"];
|
|
2209
|
+
500: components["responses"]["ServerError"];
|
|
2210
|
+
/** @description Blocked/CAPTCHA. */
|
|
2211
|
+
503: {
|
|
2212
|
+
headers: {
|
|
2213
|
+
[name: string]: unknown;
|
|
2214
|
+
};
|
|
2215
|
+
content?: never;
|
|
2216
|
+
};
|
|
2217
|
+
};
|
|
2218
|
+
};
|
|
2219
|
+
instagramMediaDownload: {
|
|
2220
|
+
parameters: {
|
|
2221
|
+
query?: never;
|
|
2222
|
+
header?: never;
|
|
2223
|
+
path?: never;
|
|
2224
|
+
cookie?: never;
|
|
2225
|
+
};
|
|
2226
|
+
requestBody: {
|
|
2227
|
+
content: {
|
|
2228
|
+
"application/json": {
|
|
2229
|
+
/** @description Instagram post/reel/tv URL. */
|
|
2230
|
+
url: string;
|
|
2231
|
+
/**
|
|
2232
|
+
* @default [
|
|
2233
|
+
* "image",
|
|
2234
|
+
* "video",
|
|
2235
|
+
* "audio"
|
|
2236
|
+
* ]
|
|
2237
|
+
*/
|
|
2238
|
+
mediaTypes?: ("image" | "video" | "audio")[];
|
|
2239
|
+
/** @default true */
|
|
2240
|
+
downloadMedia?: boolean;
|
|
2241
|
+
/** @default false */
|
|
2242
|
+
downloadAllTracks?: boolean;
|
|
2243
|
+
/** @default false */
|
|
2244
|
+
includeTranscript?: boolean;
|
|
2245
|
+
/**
|
|
2246
|
+
* @description Mux separately-downloaded video+audio tracks into one file with ffmpeg.
|
|
2247
|
+
* @default true
|
|
2248
|
+
*/
|
|
2249
|
+
mux?: boolean;
|
|
2250
|
+
};
|
|
2251
|
+
};
|
|
2252
|
+
};
|
|
2253
|
+
responses: {
|
|
2254
|
+
/** @description Extraction result with download manifest and optional transcript. */
|
|
2255
|
+
200: {
|
|
2256
|
+
headers: {
|
|
2257
|
+
[name: string]: unknown;
|
|
2258
|
+
};
|
|
2259
|
+
content: {
|
|
2260
|
+
"application/json": {
|
|
2261
|
+
[key: string]: unknown;
|
|
2262
|
+
};
|
|
2263
|
+
};
|
|
2264
|
+
};
|
|
2265
|
+
400: components["responses"]["BadRequest"];
|
|
2266
|
+
402: components["responses"]["InsufficientBalance"];
|
|
2267
|
+
429: components["responses"]["ConcurrencyLimitExceeded"];
|
|
2268
|
+
500: components["responses"]["ServerError"];
|
|
2269
|
+
/** @description Blocked/CAPTCHA. */
|
|
2270
|
+
503: {
|
|
2271
|
+
headers: {
|
|
2272
|
+
[name: string]: unknown;
|
|
2273
|
+
};
|
|
2274
|
+
content?: never;
|
|
2275
|
+
};
|
|
2276
|
+
};
|
|
2277
|
+
};
|
|
2278
|
+
redditThread: {
|
|
2279
|
+
parameters: {
|
|
2280
|
+
query?: never;
|
|
2281
|
+
header?: never;
|
|
2282
|
+
path?: never;
|
|
2283
|
+
cookie?: never;
|
|
2284
|
+
};
|
|
2285
|
+
requestBody: {
|
|
2286
|
+
content: {
|
|
2287
|
+
"application/json": {
|
|
2288
|
+
/** @description A reddit.com or redd.it thread URL. */
|
|
2289
|
+
url: string;
|
|
2290
|
+
maxComments?: number;
|
|
2291
|
+
};
|
|
2292
|
+
};
|
|
2293
|
+
};
|
|
2294
|
+
responses: {
|
|
2295
|
+
/** @description Thread with comments. */
|
|
2296
|
+
200: {
|
|
2297
|
+
headers: {
|
|
2298
|
+
[name: string]: unknown;
|
|
2299
|
+
};
|
|
2300
|
+
content: {
|
|
2301
|
+
"application/json": {
|
|
2302
|
+
title?: string;
|
|
2303
|
+
author?: string | null;
|
|
2304
|
+
score?: string | null;
|
|
2305
|
+
postBody?: string;
|
|
2306
|
+
numComments?: number;
|
|
2307
|
+
comments?: {
|
|
2308
|
+
author?: string | null;
|
|
2309
|
+
score?: string;
|
|
2310
|
+
depth?: number;
|
|
2311
|
+
body?: string;
|
|
2312
|
+
}[];
|
|
2313
|
+
sourceUrl?: string;
|
|
2314
|
+
};
|
|
2315
|
+
};
|
|
2316
|
+
};
|
|
2317
|
+
400: components["responses"]["BadRequest"];
|
|
2318
|
+
402: components["responses"]["InsufficientBalance"];
|
|
2319
|
+
429: components["responses"]["ConcurrencyLimitExceeded"];
|
|
2320
|
+
500: components["responses"]["ServerError"];
|
|
2321
|
+
/** @description Reddit blocked the request after retries — billed amount was refunded. */
|
|
2322
|
+
503: {
|
|
2323
|
+
headers: {
|
|
2324
|
+
[name: string]: unknown;
|
|
2325
|
+
};
|
|
2326
|
+
content?: never;
|
|
2327
|
+
};
|
|
2328
|
+
};
|
|
2329
|
+
};
|
|
2330
|
+
videoAnalyze: {
|
|
2331
|
+
parameters: {
|
|
2332
|
+
query?: never;
|
|
2333
|
+
header?: never;
|
|
2334
|
+
path?: never;
|
|
2335
|
+
cookie?: never;
|
|
2336
|
+
};
|
|
2337
|
+
requestBody: {
|
|
2338
|
+
content: {
|
|
2339
|
+
"application/json": {
|
|
2340
|
+
/**
|
|
2341
|
+
* Format: uri
|
|
2342
|
+
* @description Direct video file URL.
|
|
2343
|
+
*/
|
|
2344
|
+
sourceUrl: string;
|
|
2345
|
+
/** @default 2 */
|
|
2346
|
+
intervalS?: number;
|
|
2347
|
+
/** @default 120 */
|
|
2348
|
+
maxFrames?: number;
|
|
2349
|
+
/**
|
|
2350
|
+
* @default standard
|
|
2351
|
+
* @enum {string}
|
|
2352
|
+
*/
|
|
2353
|
+
detail?: "fast" | "standard" | "deep";
|
|
2354
|
+
/**
|
|
2355
|
+
* @description Destination memory vault name.
|
|
2356
|
+
* @default Library
|
|
2357
|
+
*/
|
|
2358
|
+
vault?: string;
|
|
2359
|
+
};
|
|
2360
|
+
};
|
|
2361
|
+
};
|
|
2362
|
+
responses: {
|
|
2363
|
+
/** @description Run queued. */
|
|
2364
|
+
200: {
|
|
2365
|
+
headers: {
|
|
2366
|
+
[name: string]: unknown;
|
|
2367
|
+
};
|
|
2368
|
+
content: {
|
|
2369
|
+
"application/json": {
|
|
2370
|
+
ok?: boolean;
|
|
2371
|
+
runId?: string;
|
|
2372
|
+
/** @enum {string} */
|
|
2373
|
+
status?: "queued";
|
|
2374
|
+
message?: string;
|
|
2375
|
+
};
|
|
2376
|
+
};
|
|
2377
|
+
};
|
|
2378
|
+
400: components["responses"]["BadRequest"];
|
|
2379
|
+
402: components["responses"]["InsufficientBalance"];
|
|
2380
|
+
/** @description Memory backend unavailable, or the run failed to start (billed amount refunded). */
|
|
2381
|
+
502: {
|
|
2382
|
+
headers: {
|
|
2383
|
+
[name: string]: unknown;
|
|
2384
|
+
};
|
|
2385
|
+
content?: never;
|
|
2386
|
+
};
|
|
2387
|
+
};
|
|
2388
|
+
};
|
|
2389
|
+
videoAnalyzeStatus: {
|
|
2390
|
+
parameters: {
|
|
2391
|
+
query?: never;
|
|
2392
|
+
header?: never;
|
|
2393
|
+
path?: never;
|
|
2394
|
+
cookie?: never;
|
|
2395
|
+
};
|
|
2396
|
+
requestBody: {
|
|
2397
|
+
content: {
|
|
2398
|
+
"application/json": {
|
|
2399
|
+
runId: string;
|
|
2400
|
+
};
|
|
2401
|
+
};
|
|
2402
|
+
};
|
|
2403
|
+
responses: {
|
|
2404
|
+
/** @description Run status. `artifactPath`/`report` are present once `status` is `done`. */
|
|
2405
|
+
200: {
|
|
2406
|
+
headers: {
|
|
2407
|
+
[name: string]: unknown;
|
|
2408
|
+
};
|
|
2409
|
+
content: {
|
|
2410
|
+
"application/json": {
|
|
2411
|
+
ok?: boolean;
|
|
2412
|
+
runId?: string;
|
|
2413
|
+
/** @description e.g. queued, running, done, failed. */
|
|
2414
|
+
status?: string;
|
|
2415
|
+
progress?: {
|
|
2416
|
+
analyzed?: number;
|
|
2417
|
+
total?: number;
|
|
2418
|
+
} | null;
|
|
2419
|
+
frameCount?: number | null;
|
|
2420
|
+
artifactPath?: string;
|
|
2421
|
+
/** @description Markdown report. */
|
|
2422
|
+
report?: string;
|
|
2423
|
+
error?: string;
|
|
2424
|
+
reconciliation?: {
|
|
2425
|
+
billedMc?: number;
|
|
2426
|
+
refundedMc?: number;
|
|
2427
|
+
effectiveFrames?: number | null;
|
|
2428
|
+
};
|
|
2429
|
+
};
|
|
2430
|
+
};
|
|
2431
|
+
};
|
|
2432
|
+
400: components["responses"]["BadRequest"];
|
|
2433
|
+
/** @description Run not found. */
|
|
2434
|
+
404: {
|
|
2435
|
+
headers: {
|
|
2436
|
+
[name: string]: unknown;
|
|
2437
|
+
};
|
|
2438
|
+
content?: never;
|
|
2439
|
+
};
|
|
2440
|
+
/** @description Memory backend unavailable. */
|
|
2441
|
+
502: {
|
|
2442
|
+
headers: {
|
|
2443
|
+
[name: string]: unknown;
|
|
2444
|
+
};
|
|
2445
|
+
content?: never;
|
|
2446
|
+
};
|
|
2447
|
+
};
|
|
2448
|
+
};
|
|
2449
|
+
mapsSearch: {
|
|
2450
|
+
parameters: {
|
|
2451
|
+
query?: never;
|
|
2452
|
+
header?: never;
|
|
2453
|
+
path?: never;
|
|
2454
|
+
cookie?: never;
|
|
2455
|
+
};
|
|
2456
|
+
requestBody: {
|
|
2457
|
+
content: {
|
|
2458
|
+
"application/json": components["schemas"]["MapsSearchRequest"];
|
|
2459
|
+
};
|
|
2460
|
+
};
|
|
2461
|
+
responses: {
|
|
2462
|
+
/** @description Search results. */
|
|
2463
|
+
200: {
|
|
2464
|
+
headers: {
|
|
2465
|
+
[name: string]: unknown;
|
|
2466
|
+
};
|
|
2467
|
+
content: {
|
|
2468
|
+
"application/json": {
|
|
2469
|
+
[key: string]: unknown;
|
|
2470
|
+
};
|
|
2471
|
+
};
|
|
2472
|
+
};
|
|
2473
|
+
400: components["responses"]["BadRequest"];
|
|
2474
|
+
402: components["responses"]["InsufficientBalance"];
|
|
2475
|
+
429: components["responses"]["ConcurrencyLimitExceeded"];
|
|
2476
|
+
500: components["responses"]["ServerError"];
|
|
2477
|
+
/** @description CAPTCHA/blocked — retryable. */
|
|
2478
|
+
503: {
|
|
2479
|
+
headers: {
|
|
2480
|
+
[name: string]: unknown;
|
|
2481
|
+
};
|
|
2482
|
+
content?: never;
|
|
2483
|
+
};
|
|
2484
|
+
};
|
|
2485
|
+
};
|
|
2486
|
+
mapsPlaceIntel: {
|
|
2487
|
+
parameters: {
|
|
2488
|
+
query?: never;
|
|
2489
|
+
header?: never;
|
|
2490
|
+
path?: never;
|
|
2491
|
+
cookie?: never;
|
|
2492
|
+
};
|
|
2493
|
+
requestBody: {
|
|
2494
|
+
content: {
|
|
2495
|
+
"application/json": components["schemas"]["MapsPlaceRequest"];
|
|
2496
|
+
};
|
|
2497
|
+
};
|
|
2498
|
+
responses: {
|
|
2499
|
+
/** @description Place detail with optional reviews. */
|
|
2500
|
+
200: {
|
|
2501
|
+
headers: {
|
|
2502
|
+
[name: string]: unknown;
|
|
2503
|
+
};
|
|
2504
|
+
content: {
|
|
2505
|
+
"application/json": {
|
|
2506
|
+
[key: string]: unknown;
|
|
2507
|
+
};
|
|
2508
|
+
};
|
|
2509
|
+
};
|
|
2510
|
+
400: components["responses"]["BadRequest"];
|
|
2511
|
+
402: components["responses"]["InsufficientBalance"];
|
|
2512
|
+
429: components["responses"]["ConcurrencyLimitExceeded"];
|
|
2513
|
+
500: components["responses"]["ServerError"];
|
|
2514
|
+
/** @description CAPTCHA/blocked — retryable. */
|
|
2515
|
+
503: {
|
|
2516
|
+
headers: {
|
|
2517
|
+
[name: string]: unknown;
|
|
2518
|
+
};
|
|
2519
|
+
content?: never;
|
|
2520
|
+
};
|
|
2521
|
+
};
|
|
2522
|
+
};
|
|
2523
|
+
directoryWorkflow: {
|
|
2524
|
+
parameters: {
|
|
2525
|
+
query?: never;
|
|
2526
|
+
header?: never;
|
|
2527
|
+
path?: never;
|
|
2528
|
+
cookie?: never;
|
|
2529
|
+
};
|
|
2530
|
+
requestBody: {
|
|
2531
|
+
content: {
|
|
2532
|
+
"application/json": {
|
|
2533
|
+
/** @description Business category to search, e.g. "roofers". */
|
|
2534
|
+
query: string;
|
|
2535
|
+
/** @description US state code or name. */
|
|
2536
|
+
state: string;
|
|
2537
|
+
/** @description Minimum city population to include as a market. */
|
|
2538
|
+
minPop?: number;
|
|
2539
|
+
/** @description Max results per city. */
|
|
2540
|
+
perCity?: number;
|
|
2541
|
+
};
|
|
2542
|
+
};
|
|
2543
|
+
};
|
|
2544
|
+
responses: {
|
|
2545
|
+
/** @description Per-city results. */
|
|
2546
|
+
200: {
|
|
2547
|
+
headers: {
|
|
2548
|
+
[name: string]: unknown;
|
|
2549
|
+
};
|
|
2550
|
+
content: {
|
|
2551
|
+
"application/json": {
|
|
2552
|
+
query?: string;
|
|
2553
|
+
state?: string;
|
|
2554
|
+
totalResultCount?: number;
|
|
2555
|
+
cities?: {
|
|
2556
|
+
city?: string;
|
|
2557
|
+
/** @enum {string} */
|
|
2558
|
+
status?: "done" | "failed";
|
|
2559
|
+
results?: {
|
|
2560
|
+
[key: string]: unknown;
|
|
2561
|
+
}[];
|
|
2562
|
+
}[];
|
|
2563
|
+
};
|
|
2564
|
+
};
|
|
2565
|
+
};
|
|
2566
|
+
400: components["responses"]["BadRequest"];
|
|
2567
|
+
402: components["responses"]["InsufficientBalance"];
|
|
2568
|
+
429: components["responses"]["ConcurrencyLimitExceeded"];
|
|
2569
|
+
/** @description Directory workflow failed. */
|
|
2570
|
+
500: {
|
|
2571
|
+
headers: {
|
|
2572
|
+
[name: string]: unknown;
|
|
2573
|
+
};
|
|
2574
|
+
content?: never;
|
|
2575
|
+
};
|
|
2576
|
+
};
|
|
2577
|
+
};
|
|
2578
|
+
serpIntelligenceCapture: {
|
|
2579
|
+
parameters: {
|
|
2580
|
+
query?: never;
|
|
2581
|
+
header?: never;
|
|
2582
|
+
path?: never;
|
|
2583
|
+
cookie?: never;
|
|
2584
|
+
};
|
|
2585
|
+
requestBody: {
|
|
2586
|
+
content: {
|
|
2587
|
+
"application/json": components["schemas"]["SerpIntelligenceCaptureRequest"];
|
|
2588
|
+
};
|
|
2589
|
+
};
|
|
2590
|
+
responses: {
|
|
2591
|
+
/** @description Structured SERP capture. */
|
|
2592
|
+
200: {
|
|
2593
|
+
headers: {
|
|
2594
|
+
[name: string]: unknown;
|
|
2595
|
+
};
|
|
2596
|
+
content: {
|
|
2597
|
+
"application/json": components["schemas"]["SerpIntelligenceCaptureResponse"];
|
|
2598
|
+
};
|
|
2599
|
+
};
|
|
2600
|
+
400: components["responses"]["StructuredBadRequest"];
|
|
2601
|
+
402: components["responses"]["InsufficientBalance"];
|
|
2602
|
+
429: components["responses"]["StructuredRateLimited"];
|
|
2603
|
+
500: components["responses"]["StructuredCaptureFailed"];
|
|
2604
|
+
};
|
|
2605
|
+
};
|
|
2606
|
+
serpIntelligencePageSnapshots: {
|
|
2607
|
+
parameters: {
|
|
2608
|
+
query?: never;
|
|
2609
|
+
header?: never;
|
|
2610
|
+
path?: never;
|
|
2611
|
+
cookie?: never;
|
|
2612
|
+
};
|
|
2613
|
+
requestBody: {
|
|
2614
|
+
content: {
|
|
2615
|
+
"application/json": components["schemas"]["SerpIntelligencePageSnapshotsRequest"];
|
|
2616
|
+
};
|
|
2617
|
+
};
|
|
2618
|
+
responses: {
|
|
2619
|
+
/** @description Page snapshot artifacts. */
|
|
2620
|
+
200: {
|
|
2621
|
+
headers: {
|
|
2622
|
+
[name: string]: unknown;
|
|
2623
|
+
};
|
|
2624
|
+
content: {
|
|
2625
|
+
"application/json": components["schemas"]["SerpIntelligencePageSnapshotsResponse"];
|
|
2626
|
+
};
|
|
2627
|
+
};
|
|
2628
|
+
400: components["responses"]["StructuredBadRequest"];
|
|
2629
|
+
402: components["responses"]["InsufficientBalance"];
|
|
2630
|
+
429: components["responses"]["StructuredRateLimited"];
|
|
2631
|
+
500: components["responses"]["StructuredCaptureFailed"];
|
|
2632
|
+
};
|
|
2633
|
+
};
|
|
2634
|
+
listWorkflowDefinitions: {
|
|
2635
|
+
parameters: {
|
|
2636
|
+
query?: never;
|
|
2637
|
+
header?: never;
|
|
2638
|
+
path?: never;
|
|
2639
|
+
cookie?: never;
|
|
2640
|
+
};
|
|
2641
|
+
requestBody?: never;
|
|
2642
|
+
responses: {
|
|
2643
|
+
/** @description Workflow definitions. */
|
|
2644
|
+
200: {
|
|
2645
|
+
headers: {
|
|
2646
|
+
[name: string]: unknown;
|
|
2647
|
+
};
|
|
2648
|
+
content: {
|
|
2649
|
+
"application/json": {
|
|
2650
|
+
workflows?: {
|
|
2651
|
+
[key: string]: unknown;
|
|
2652
|
+
}[];
|
|
2653
|
+
};
|
|
2654
|
+
};
|
|
2655
|
+
};
|
|
2656
|
+
401: components["responses"]["Unauthorized"];
|
|
2657
|
+
};
|
|
2658
|
+
};
|
|
2659
|
+
runWorkflow: {
|
|
2660
|
+
parameters: {
|
|
2661
|
+
query?: never;
|
|
2662
|
+
header?: never;
|
|
2663
|
+
path?: never;
|
|
2664
|
+
cookie?: never;
|
|
2665
|
+
};
|
|
2666
|
+
requestBody: {
|
|
2667
|
+
content: {
|
|
2668
|
+
"application/json": {
|
|
2669
|
+
workflowId: string;
|
|
2670
|
+
/** @description Validated against the workflow's own input schema — see GET /workflows/definitions. */
|
|
2671
|
+
input?: {
|
|
2672
|
+
[key: string]: unknown;
|
|
2673
|
+
};
|
|
2674
|
+
/**
|
|
2675
|
+
* Format: uri
|
|
2676
|
+
* @description HTTPS URL to receive a signed webhook on completion.
|
|
2677
|
+
*/
|
|
2678
|
+
webhookUrl?: string;
|
|
2679
|
+
};
|
|
2680
|
+
};
|
|
2681
|
+
};
|
|
2682
|
+
responses: {
|
|
2683
|
+
/** @description Run started — either completed inline or advanced one step (`done: false` means call POST /workflows/runs/{id}/step to continue). */
|
|
2684
|
+
200: {
|
|
2685
|
+
headers: {
|
|
2686
|
+
[name: string]: unknown;
|
|
2687
|
+
};
|
|
2688
|
+
content: {
|
|
2689
|
+
"application/json": components["schemas"]["WorkflowRunStepResponse"];
|
|
2690
|
+
};
|
|
2691
|
+
};
|
|
2692
|
+
400: components["responses"]["BadRequest"];
|
|
2693
|
+
429: components["responses"]["ConcurrencyLimitExceeded"];
|
|
2694
|
+
500: components["responses"]["ServerError"];
|
|
2695
|
+
};
|
|
2696
|
+
};
|
|
2697
|
+
advanceWorkflowRunStep: {
|
|
2698
|
+
parameters: {
|
|
2699
|
+
query?: never;
|
|
2700
|
+
header?: never;
|
|
2701
|
+
path: {
|
|
2702
|
+
id: string;
|
|
2703
|
+
};
|
|
2704
|
+
cookie?: never;
|
|
2705
|
+
};
|
|
2706
|
+
requestBody?: never;
|
|
2707
|
+
responses: {
|
|
2708
|
+
/** @description Step result. */
|
|
2709
|
+
200: {
|
|
2710
|
+
headers: {
|
|
2711
|
+
[name: string]: unknown;
|
|
2712
|
+
};
|
|
2713
|
+
content: {
|
|
2714
|
+
"application/json": components["schemas"]["WorkflowRunStepResponse"];
|
|
2715
|
+
};
|
|
2716
|
+
};
|
|
2717
|
+
/** @description This workflow doesn't support stepwise execution. */
|
|
2718
|
+
400: {
|
|
2719
|
+
headers: {
|
|
2720
|
+
[name: string]: unknown;
|
|
2721
|
+
};
|
|
2722
|
+
content?: never;
|
|
2723
|
+
};
|
|
2724
|
+
404: components["responses"]["NotFound"];
|
|
2725
|
+
/** @description The run is already in a terminal state, or has no remaining steps. */
|
|
2726
|
+
409: {
|
|
2727
|
+
headers: {
|
|
2728
|
+
[name: string]: unknown;
|
|
2729
|
+
};
|
|
2730
|
+
content?: never;
|
|
2731
|
+
};
|
|
2732
|
+
429: components["responses"]["ConcurrencyLimitExceeded"];
|
|
2733
|
+
500: components["responses"]["ServerError"];
|
|
2734
|
+
};
|
|
2735
|
+
};
|
|
2736
|
+
listWorkflowRuns: {
|
|
2737
|
+
parameters: {
|
|
2738
|
+
query?: never;
|
|
2739
|
+
header?: never;
|
|
2740
|
+
path?: never;
|
|
2741
|
+
cookie?: never;
|
|
2742
|
+
};
|
|
2743
|
+
requestBody?: never;
|
|
2744
|
+
responses: {
|
|
2745
|
+
/** @description Run list. */
|
|
2746
|
+
200: {
|
|
2747
|
+
headers: {
|
|
2748
|
+
[name: string]: unknown;
|
|
2749
|
+
};
|
|
2750
|
+
content: {
|
|
2751
|
+
"application/json": {
|
|
2752
|
+
runs?: components["schemas"]["WorkflowRun"][];
|
|
2753
|
+
};
|
|
2754
|
+
};
|
|
2755
|
+
};
|
|
2756
|
+
401: components["responses"]["Unauthorized"];
|
|
2757
|
+
};
|
|
2758
|
+
};
|
|
2759
|
+
getWorkflowRun: {
|
|
2760
|
+
parameters: {
|
|
2761
|
+
query?: never;
|
|
2762
|
+
header?: never;
|
|
2763
|
+
path: {
|
|
2764
|
+
id: string;
|
|
2765
|
+
};
|
|
2766
|
+
cookie?: never;
|
|
2767
|
+
};
|
|
2768
|
+
requestBody?: never;
|
|
2769
|
+
responses: {
|
|
2770
|
+
/** @description Run detail. */
|
|
2771
|
+
200: {
|
|
2772
|
+
headers: {
|
|
2773
|
+
[name: string]: unknown;
|
|
2774
|
+
};
|
|
2775
|
+
content: {
|
|
2776
|
+
"application/json": {
|
|
2777
|
+
run?: components["schemas"]["WorkflowRun"];
|
|
2778
|
+
};
|
|
2779
|
+
};
|
|
2780
|
+
};
|
|
2781
|
+
404: components["responses"]["NotFound"];
|
|
2782
|
+
};
|
|
2783
|
+
};
|
|
2784
|
+
getWorkflowRunArtifact: {
|
|
2785
|
+
parameters: {
|
|
2786
|
+
query?: never;
|
|
2787
|
+
header?: never;
|
|
2788
|
+
path: {
|
|
2789
|
+
id: string;
|
|
2790
|
+
artifactId: string;
|
|
2791
|
+
};
|
|
2792
|
+
cookie?: never;
|
|
2793
|
+
};
|
|
2794
|
+
requestBody?: never;
|
|
2795
|
+
responses: {
|
|
2796
|
+
/** @description Artifact file bytes, with the artifact's own content type. */
|
|
2797
|
+
200: {
|
|
2798
|
+
headers: {
|
|
2799
|
+
[name: string]: unknown;
|
|
2800
|
+
};
|
|
2801
|
+
content?: never;
|
|
2802
|
+
};
|
|
2803
|
+
404: components["responses"]["NotFound"];
|
|
2804
|
+
/** @description The artifact file is no longer available. */
|
|
2805
|
+
410: {
|
|
2806
|
+
headers: {
|
|
2807
|
+
[name: string]: unknown;
|
|
2808
|
+
};
|
|
2809
|
+
content?: never;
|
|
2810
|
+
};
|
|
2811
|
+
};
|
|
2812
|
+
};
|
|
2813
|
+
listWorkflowSchedules: {
|
|
2814
|
+
parameters: {
|
|
2815
|
+
query?: never;
|
|
2816
|
+
header?: never;
|
|
2817
|
+
path?: never;
|
|
2818
|
+
cookie?: never;
|
|
2819
|
+
};
|
|
2820
|
+
requestBody?: never;
|
|
2821
|
+
responses: {
|
|
2822
|
+
/** @description Schedule list. */
|
|
2823
|
+
200: {
|
|
2824
|
+
headers: {
|
|
2825
|
+
[name: string]: unknown;
|
|
2826
|
+
};
|
|
2827
|
+
content: {
|
|
2828
|
+
"application/json": {
|
|
2829
|
+
schedules?: components["schemas"]["WorkflowSchedule"][];
|
|
2830
|
+
};
|
|
2831
|
+
};
|
|
2832
|
+
};
|
|
2833
|
+
401: components["responses"]["Unauthorized"];
|
|
2834
|
+
};
|
|
2835
|
+
};
|
|
2836
|
+
createWorkflowSchedule: {
|
|
2837
|
+
parameters: {
|
|
2838
|
+
query?: never;
|
|
2839
|
+
header?: never;
|
|
2840
|
+
path?: never;
|
|
2841
|
+
cookie?: never;
|
|
2842
|
+
};
|
|
2843
|
+
requestBody: {
|
|
2844
|
+
content: {
|
|
2845
|
+
"application/json": {
|
|
2846
|
+
workflowId: string;
|
|
2847
|
+
name?: string;
|
|
2848
|
+
input?: {
|
|
2849
|
+
[key: string]: unknown;
|
|
2850
|
+
};
|
|
2851
|
+
/**
|
|
2852
|
+
* @default weekly
|
|
2853
|
+
* @enum {string}
|
|
2854
|
+
*/
|
|
2855
|
+
cadence?: "daily" | "weekly" | "monthly";
|
|
2856
|
+
/** @default UTC */
|
|
2857
|
+
timezone?: string;
|
|
2858
|
+
/** Format: uri */
|
|
2859
|
+
webhookUrl?: string;
|
|
2860
|
+
/** Format: date-time */
|
|
2861
|
+
nextRunAt?: string;
|
|
2862
|
+
};
|
|
2863
|
+
};
|
|
2864
|
+
};
|
|
2865
|
+
responses: {
|
|
2866
|
+
/** @description Schedule created. */
|
|
2867
|
+
201: {
|
|
2868
|
+
headers: {
|
|
2869
|
+
[name: string]: unknown;
|
|
2870
|
+
};
|
|
2871
|
+
content: {
|
|
2872
|
+
"application/json": {
|
|
2873
|
+
schedule?: components["schemas"]["WorkflowSchedule"];
|
|
2874
|
+
};
|
|
2875
|
+
};
|
|
2876
|
+
};
|
|
2877
|
+
400: components["responses"]["BadRequest"];
|
|
2878
|
+
};
|
|
2879
|
+
};
|
|
2880
|
+
deleteWorkflowSchedule: {
|
|
2881
|
+
parameters: {
|
|
2882
|
+
query?: never;
|
|
2883
|
+
header?: never;
|
|
2884
|
+
path: {
|
|
2885
|
+
id: string;
|
|
2886
|
+
};
|
|
2887
|
+
cookie?: never;
|
|
2888
|
+
};
|
|
2889
|
+
requestBody?: never;
|
|
2890
|
+
responses: {
|
|
2891
|
+
/** @description Deleted. */
|
|
2892
|
+
200: {
|
|
2893
|
+
headers: {
|
|
2894
|
+
[name: string]: unknown;
|
|
2895
|
+
};
|
|
2896
|
+
content: {
|
|
2897
|
+
"application/json": {
|
|
2898
|
+
ok?: boolean;
|
|
2899
|
+
};
|
|
2900
|
+
};
|
|
2901
|
+
};
|
|
2902
|
+
404: components["responses"]["NotFound"];
|
|
2903
|
+
};
|
|
2904
|
+
};
|
|
2905
|
+
patchWorkflowSchedule: {
|
|
2906
|
+
parameters: {
|
|
2907
|
+
query?: never;
|
|
2908
|
+
header?: never;
|
|
2909
|
+
path: {
|
|
2910
|
+
id: string;
|
|
2911
|
+
};
|
|
2912
|
+
cookie?: never;
|
|
2913
|
+
};
|
|
2914
|
+
requestBody?: {
|
|
2915
|
+
content: {
|
|
2916
|
+
"application/json": {
|
|
2917
|
+
name?: string;
|
|
2918
|
+
/** @enum {string} */
|
|
2919
|
+
status?: "active" | "paused";
|
|
2920
|
+
input?: {
|
|
2921
|
+
[key: string]: unknown;
|
|
2922
|
+
};
|
|
2923
|
+
/** @enum {string} */
|
|
2924
|
+
cadence?: "daily" | "weekly" | "monthly";
|
|
2925
|
+
timezone?: string;
|
|
2926
|
+
/** Format: uri */
|
|
2927
|
+
webhookUrl?: string | null;
|
|
2928
|
+
/** Format: date-time */
|
|
2929
|
+
nextRunAt?: string | null;
|
|
2930
|
+
};
|
|
2931
|
+
};
|
|
2932
|
+
};
|
|
2933
|
+
responses: {
|
|
2934
|
+
/** @description Updated schedule. */
|
|
2935
|
+
200: {
|
|
2936
|
+
headers: {
|
|
2937
|
+
[name: string]: unknown;
|
|
2938
|
+
};
|
|
2939
|
+
content: {
|
|
2940
|
+
"application/json": {
|
|
2941
|
+
schedule?: components["schemas"]["WorkflowSchedule"];
|
|
2942
|
+
};
|
|
2943
|
+
};
|
|
2944
|
+
};
|
|
2945
|
+
400: components["responses"]["BadRequest"];
|
|
2946
|
+
404: components["responses"]["NotFound"];
|
|
2947
|
+
};
|
|
2948
|
+
};
|
|
2949
|
+
runWorkflowScheduleNow: {
|
|
2950
|
+
parameters: {
|
|
2951
|
+
query?: never;
|
|
2952
|
+
header?: never;
|
|
2953
|
+
path: {
|
|
2954
|
+
id: string;
|
|
2955
|
+
};
|
|
2956
|
+
cookie?: never;
|
|
2957
|
+
};
|
|
2958
|
+
requestBody?: never;
|
|
2959
|
+
responses: {
|
|
2960
|
+
/** @description Run started. */
|
|
2961
|
+
200: {
|
|
2962
|
+
headers: {
|
|
2963
|
+
[name: string]: unknown;
|
|
2964
|
+
};
|
|
2965
|
+
content: {
|
|
2966
|
+
"application/json": {
|
|
2967
|
+
run?: components["schemas"]["WorkflowRun"];
|
|
2968
|
+
summary?: {
|
|
2969
|
+
[key: string]: unknown;
|
|
2970
|
+
};
|
|
2971
|
+
};
|
|
2972
|
+
};
|
|
2973
|
+
};
|
|
2974
|
+
404: components["responses"]["NotFound"];
|
|
2975
|
+
429: components["responses"]["ConcurrencyLimitExceeded"];
|
|
2976
|
+
500: components["responses"]["ServerError"];
|
|
2977
|
+
};
|
|
2978
|
+
};
|
|
2979
|
+
callMemoryTool: {
|
|
2980
|
+
parameters: {
|
|
2981
|
+
query?: never;
|
|
2982
|
+
header?: never;
|
|
2983
|
+
path?: never;
|
|
2984
|
+
cookie?: never;
|
|
2985
|
+
};
|
|
2986
|
+
requestBody: {
|
|
2987
|
+
content: {
|
|
2988
|
+
"application/json": components["schemas"]["CallMemoryToolRequest"];
|
|
2989
|
+
};
|
|
2990
|
+
};
|
|
2991
|
+
responses: {
|
|
2992
|
+
/** @description Whatever the named tool returns, or `{ok: false, error}` on tool-level failure. */
|
|
2993
|
+
200: {
|
|
2994
|
+
headers: {
|
|
2995
|
+
[name: string]: unknown;
|
|
2996
|
+
};
|
|
2997
|
+
content: {
|
|
2998
|
+
"application/json": components["schemas"]["CallMemoryToolResponse"];
|
|
2999
|
+
};
|
|
3000
|
+
};
|
|
3001
|
+
400: components["responses"]["BadRequest"];
|
|
3002
|
+
/** @description Memory identity could not be provisioned or reached. */
|
|
3003
|
+
502: {
|
|
3004
|
+
headers: {
|
|
3005
|
+
[name: string]: unknown;
|
|
3006
|
+
};
|
|
3007
|
+
content: {
|
|
3008
|
+
"application/json": components["schemas"]["Error"];
|
|
3009
|
+
};
|
|
3010
|
+
};
|
|
3011
|
+
};
|
|
3012
|
+
};
|
|
3013
|
+
}
|
|
3014
|
+
|
|
3015
|
+
type OperationId = keyof operations;
|
|
3016
|
+
type RequestBodyOf<K extends OperationId> = operations[K] extends {
|
|
3017
|
+
requestBody: {
|
|
3018
|
+
content: {
|
|
3019
|
+
'application/json': infer B;
|
|
3020
|
+
};
|
|
3021
|
+
};
|
|
3022
|
+
} ? B : undefined;
|
|
3023
|
+
type SuccessBodyOf<K extends OperationId> = operations[K]['responses'] extends {
|
|
3024
|
+
200: {
|
|
3025
|
+
content: {
|
|
3026
|
+
'application/json': infer B;
|
|
3027
|
+
};
|
|
3028
|
+
};
|
|
3029
|
+
} ? B : unknown;
|
|
3030
|
+
interface ScraperClientOptions {
|
|
3031
|
+
apiKey: string;
|
|
3032
|
+
baseUrl?: string;
|
|
3033
|
+
fetch?: typeof globalThis.fetch;
|
|
3034
|
+
}
|
|
3035
|
+
declare class Requester {
|
|
3036
|
+
private readonly apiKey;
|
|
3037
|
+
private readonly baseUrl;
|
|
3038
|
+
private readonly fetchImpl;
|
|
3039
|
+
constructor(apiKey: string, baseUrl: string, fetchImpl: typeof globalThis.fetch);
|
|
3040
|
+
call<K extends OperationId>(method: string, path: string, body?: RequestBodyOf<K>): Promise<SuccessBodyOf<K>>;
|
|
3041
|
+
callRaw(method: string, path: string): Promise<ArrayBuffer>;
|
|
3042
|
+
}
|
|
3043
|
+
declare class YoutubeNamespace {
|
|
3044
|
+
private readonly r;
|
|
3045
|
+
constructor(r: Requester);
|
|
3046
|
+
harvest(params: RequestBodyOf<'youtubeHarvest'>): Promise<{
|
|
3047
|
+
[key: string]: unknown;
|
|
3048
|
+
}>;
|
|
3049
|
+
transcribe(params: RequestBodyOf<'youtubeTranscribe'>): Promise<{
|
|
3050
|
+
videoId?: string;
|
|
3051
|
+
text?: string;
|
|
3052
|
+
chunks?: {
|
|
3053
|
+
timestamp?: number[];
|
|
3054
|
+
text?: string;
|
|
3055
|
+
}[];
|
|
3056
|
+
durationMs?: number;
|
|
3057
|
+
markdown?: string;
|
|
3058
|
+
html?: string;
|
|
3059
|
+
}>;
|
|
3060
|
+
}
|
|
3061
|
+
declare class ScreenshotNamespace {
|
|
3062
|
+
private readonly r;
|
|
3063
|
+
constructor(r: Requester);
|
|
3064
|
+
capture(params: RequestBodyOf<'screenshot'>): Promise<unknown>;
|
|
3065
|
+
}
|
|
3066
|
+
declare class FacebookNamespace {
|
|
3067
|
+
private readonly r;
|
|
3068
|
+
constructor(r: Requester);
|
|
3069
|
+
ad(params: RequestBodyOf<'facebookAd'>): Promise<{
|
|
3070
|
+
[key: string]: unknown;
|
|
3071
|
+
}>;
|
|
3072
|
+
pageIntel(params: RequestBodyOf<'facebookPageIntel'>): Promise<{
|
|
3073
|
+
[key: string]: unknown;
|
|
3074
|
+
}>;
|
|
3075
|
+
adTranscribe(params: RequestBodyOf<'facebookAdTranscribe'>): Promise<{
|
|
3076
|
+
videoId?: string;
|
|
3077
|
+
text?: string;
|
|
3078
|
+
chunks?: {
|
|
3079
|
+
timestamp?: number[];
|
|
3080
|
+
text?: string;
|
|
3081
|
+
}[];
|
|
3082
|
+
durationMs?: number;
|
|
3083
|
+
markdown?: string;
|
|
3084
|
+
html?: string;
|
|
3085
|
+
}>;
|
|
3086
|
+
videoTranscribe(params: RequestBodyOf<'facebookVideoTranscribe'>): Promise<{
|
|
3087
|
+
[key: string]: unknown;
|
|
3088
|
+
}>;
|
|
3089
|
+
search(params: RequestBodyOf<'facebookSearch'>): Promise<{
|
|
3090
|
+
query?: string;
|
|
3091
|
+
searchUrl?: string;
|
|
3092
|
+
results?: {
|
|
3093
|
+
name?: string;
|
|
3094
|
+
pageName?: string;
|
|
3095
|
+
pageId?: string | null;
|
|
3096
|
+
libraryId?: string;
|
|
3097
|
+
sampleLibraryId?: string;
|
|
3098
|
+
adCount?: number;
|
|
3099
|
+
}[];
|
|
3100
|
+
}>;
|
|
3101
|
+
media(params: RequestBodyOf<'facebookMedia'>): Promise<unknown>;
|
|
3102
|
+
}
|
|
3103
|
+
declare class GoogleAdsNamespace {
|
|
3104
|
+
private readonly r;
|
|
3105
|
+
constructor(r: Requester);
|
|
3106
|
+
search(params: RequestBodyOf<'googleAdsSearch'>): Promise<{
|
|
3107
|
+
[key: string]: unknown;
|
|
3108
|
+
}>;
|
|
3109
|
+
pageIntel(params: RequestBodyOf<'googleAdsPageIntel'>): Promise<{
|
|
3110
|
+
[key: string]: unknown;
|
|
3111
|
+
}>;
|
|
3112
|
+
transcribe(params: RequestBodyOf<'googleAdsTranscribe'>): Promise<{
|
|
3113
|
+
videoId?: string;
|
|
3114
|
+
text?: string;
|
|
3115
|
+
chunks?: {
|
|
3116
|
+
timestamp?: number[];
|
|
3117
|
+
text?: string;
|
|
3118
|
+
}[];
|
|
3119
|
+
durationMs?: number;
|
|
3120
|
+
markdown?: string;
|
|
3121
|
+
html?: string;
|
|
3122
|
+
}>;
|
|
3123
|
+
}
|
|
3124
|
+
declare class InstagramNamespace {
|
|
3125
|
+
private readonly r;
|
|
3126
|
+
constructor(r: Requester);
|
|
3127
|
+
profileContent(params: RequestBodyOf<'instagramProfileContent'>): Promise<{
|
|
3128
|
+
[key: string]: unknown;
|
|
3129
|
+
}>;
|
|
3130
|
+
mediaDownload(params: RequestBodyOf<'instagramMediaDownload'>): Promise<{
|
|
3131
|
+
[key: string]: unknown;
|
|
3132
|
+
}>;
|
|
3133
|
+
}
|
|
3134
|
+
declare class RedditNamespace {
|
|
3135
|
+
private readonly r;
|
|
3136
|
+
constructor(r: Requester);
|
|
3137
|
+
thread(params: RequestBodyOf<'redditThread'>): Promise<{
|
|
3138
|
+
title?: string;
|
|
3139
|
+
author?: string | null;
|
|
3140
|
+
score?: string | null;
|
|
3141
|
+
postBody?: string;
|
|
3142
|
+
numComments?: number;
|
|
3143
|
+
comments?: {
|
|
3144
|
+
author?: string | null;
|
|
3145
|
+
score?: string;
|
|
3146
|
+
depth?: number;
|
|
3147
|
+
body?: string;
|
|
3148
|
+
}[];
|
|
3149
|
+
sourceUrl?: string;
|
|
3150
|
+
}>;
|
|
3151
|
+
}
|
|
3152
|
+
declare class VideoNamespace {
|
|
3153
|
+
private readonly r;
|
|
3154
|
+
constructor(r: Requester);
|
|
3155
|
+
analyze(params: RequestBodyOf<'videoAnalyze'>): Promise<{
|
|
3156
|
+
ok?: boolean;
|
|
3157
|
+
runId?: string;
|
|
3158
|
+
status?: "queued";
|
|
3159
|
+
message?: string;
|
|
3160
|
+
}>;
|
|
3161
|
+
status(params: RequestBodyOf<'videoAnalyzeStatus'>): Promise<{
|
|
3162
|
+
ok?: boolean;
|
|
3163
|
+
runId?: string;
|
|
3164
|
+
status?: string;
|
|
3165
|
+
progress?: {
|
|
3166
|
+
analyzed?: number;
|
|
3167
|
+
total?: number;
|
|
3168
|
+
} | null;
|
|
3169
|
+
frameCount?: number | null;
|
|
3170
|
+
artifactPath?: string;
|
|
3171
|
+
report?: string;
|
|
3172
|
+
error?: string;
|
|
3173
|
+
reconciliation?: {
|
|
3174
|
+
billedMc?: number;
|
|
3175
|
+
refundedMc?: number;
|
|
3176
|
+
effectiveFrames?: number | null;
|
|
3177
|
+
};
|
|
3178
|
+
}>;
|
|
3179
|
+
}
|
|
3180
|
+
declare class MapsNamespace {
|
|
3181
|
+
private readonly r;
|
|
3182
|
+
constructor(r: Requester);
|
|
3183
|
+
search(params: RequestBodyOf<'mapsSearch'>): Promise<{
|
|
3184
|
+
[key: string]: unknown;
|
|
3185
|
+
}>;
|
|
3186
|
+
place(params: RequestBodyOf<'mapsPlaceIntel'>): Promise<{
|
|
3187
|
+
[key: string]: unknown;
|
|
3188
|
+
}>;
|
|
3189
|
+
}
|
|
3190
|
+
declare class DirectoryNamespace {
|
|
3191
|
+
private readonly r;
|
|
3192
|
+
constructor(r: Requester);
|
|
3193
|
+
run(params: RequestBodyOf<'directoryWorkflow'>): Promise<{
|
|
3194
|
+
query?: string;
|
|
3195
|
+
state?: string;
|
|
3196
|
+
totalResultCount?: number;
|
|
3197
|
+
cities?: {
|
|
3198
|
+
city?: string;
|
|
3199
|
+
status?: "done" | "failed";
|
|
3200
|
+
results?: {
|
|
3201
|
+
[key: string]: unknown;
|
|
3202
|
+
}[];
|
|
3203
|
+
}[];
|
|
3204
|
+
}>;
|
|
3205
|
+
}
|
|
3206
|
+
declare class SerpIntelligenceNamespace {
|
|
3207
|
+
private readonly r;
|
|
3208
|
+
constructor(r: Requester);
|
|
3209
|
+
capture(params: RequestBodyOf<'serpIntelligenceCapture'>): Promise<{
|
|
3210
|
+
harvestResult?: components["schemas"]["SerpIntelligenceHarvestResult"];
|
|
3211
|
+
attempts?: components["schemas"]["SerpIntelligenceCaptureAttempt"][];
|
|
3212
|
+
locationEvidence?: {
|
|
3213
|
+
[key: string]: unknown;
|
|
3214
|
+
} | null;
|
|
3215
|
+
pageSnapshotArtifacts?: components["schemas"]["SerpPageSnapshotCapture"][];
|
|
3216
|
+
billing?: {
|
|
3217
|
+
creditsUsed?: number;
|
|
3218
|
+
requestId?: string;
|
|
3219
|
+
jobId?: string;
|
|
3220
|
+
};
|
|
3221
|
+
}>;
|
|
3222
|
+
pageSnapshots(params: RequestBodyOf<'serpIntelligencePageSnapshots'>): Promise<{
|
|
3223
|
+
pageSnapshotArtifacts?: components["schemas"]["SerpPageSnapshotCapture"][];
|
|
3224
|
+
attempts?: components["schemas"]["SerpIntelligenceCaptureAttempt"][];
|
|
3225
|
+
}>;
|
|
3226
|
+
}
|
|
3227
|
+
declare class WorkflowsNamespace {
|
|
3228
|
+
private readonly r;
|
|
3229
|
+
constructor(r: Requester);
|
|
3230
|
+
listDefinitions(): Promise<{
|
|
3231
|
+
workflows?: {
|
|
3232
|
+
[key: string]: unknown;
|
|
3233
|
+
}[];
|
|
3234
|
+
}>;
|
|
3235
|
+
run(params: RequestBodyOf<'runWorkflow'>): Promise<{
|
|
3236
|
+
run?: components["schemas"]["WorkflowRun"];
|
|
3237
|
+
summary?: {
|
|
3238
|
+
[key: string]: unknown;
|
|
3239
|
+
} | null;
|
|
3240
|
+
step?: {
|
|
3241
|
+
index?: number;
|
|
3242
|
+
id?: string;
|
|
3243
|
+
title?: string;
|
|
3244
|
+
totalSteps?: number;
|
|
3245
|
+
output?: {
|
|
3246
|
+
[key: string]: unknown;
|
|
3247
|
+
};
|
|
3248
|
+
warnings?: string[];
|
|
3249
|
+
} | null;
|
|
3250
|
+
nextStep?: {
|
|
3251
|
+
index?: number;
|
|
3252
|
+
id?: string | null;
|
|
3253
|
+
title?: string | null;
|
|
3254
|
+
} | null;
|
|
3255
|
+
done?: boolean;
|
|
3256
|
+
}>;
|
|
3257
|
+
advanceStep(id: string): Promise<{
|
|
3258
|
+
run?: components["schemas"]["WorkflowRun"];
|
|
3259
|
+
summary?: {
|
|
3260
|
+
[key: string]: unknown;
|
|
3261
|
+
} | null;
|
|
3262
|
+
step?: {
|
|
3263
|
+
index?: number;
|
|
3264
|
+
id?: string;
|
|
3265
|
+
title?: string;
|
|
3266
|
+
totalSteps?: number;
|
|
3267
|
+
output?: {
|
|
3268
|
+
[key: string]: unknown;
|
|
3269
|
+
};
|
|
3270
|
+
warnings?: string[];
|
|
3271
|
+
} | null;
|
|
3272
|
+
nextStep?: {
|
|
3273
|
+
index?: number;
|
|
3274
|
+
id?: string | null;
|
|
3275
|
+
title?: string | null;
|
|
3276
|
+
} | null;
|
|
3277
|
+
done?: boolean;
|
|
3278
|
+
}>;
|
|
3279
|
+
listRuns(): Promise<{
|
|
3280
|
+
runs?: components["schemas"]["WorkflowRun"][];
|
|
3281
|
+
}>;
|
|
3282
|
+
getRun(id: string): Promise<{
|
|
3283
|
+
run?: components["schemas"]["WorkflowRun"];
|
|
3284
|
+
}>;
|
|
3285
|
+
getRunArtifact(id: string, artifactId: string): Promise<ArrayBuffer>;
|
|
3286
|
+
createSchedule(params: RequestBodyOf<'createWorkflowSchedule'>): Promise<unknown>;
|
|
3287
|
+
listSchedules(): Promise<{
|
|
3288
|
+
schedules?: components["schemas"]["WorkflowSchedule"][];
|
|
3289
|
+
}>;
|
|
3290
|
+
patchSchedule(id: string, params: RequestBodyOf<'patchWorkflowSchedule'>): Promise<{
|
|
3291
|
+
schedule?: components["schemas"]["WorkflowSchedule"];
|
|
3292
|
+
}>;
|
|
3293
|
+
deleteSchedule(id: string): Promise<{
|
|
3294
|
+
ok?: boolean;
|
|
3295
|
+
}>;
|
|
3296
|
+
runScheduleNow(id: string): Promise<{
|
|
3297
|
+
run?: components["schemas"]["WorkflowRun"];
|
|
3298
|
+
summary?: {
|
|
3299
|
+
[key: string]: unknown;
|
|
3300
|
+
};
|
|
3301
|
+
}>;
|
|
3302
|
+
}
|
|
3303
|
+
declare class MemoryTools {
|
|
3304
|
+
readonly access: AccessNamespace;
|
|
3305
|
+
readonly capture: CaptureNamespace;
|
|
3306
|
+
readonly channels: ChannelsNamespace;
|
|
3307
|
+
readonly facts: FactsNamespace;
|
|
3308
|
+
readonly graph: GraphNamespace;
|
|
3309
|
+
readonly library: LibraryNamespace;
|
|
3310
|
+
readonly memory: MemoryNamespace;
|
|
3311
|
+
readonly recall: RecallNamespace;
|
|
3312
|
+
readonly schedule: ScheduleNamespace;
|
|
3313
|
+
readonly storage: StorageNamespace;
|
|
3314
|
+
readonly tables: TablesNamespace;
|
|
3315
|
+
readonly tags: TagsNamespace;
|
|
3316
|
+
readonly vaults: VaultsNamespace;
|
|
3317
|
+
readonly video: VideoNamespace$1;
|
|
3318
|
+
readonly webhooks: WebhooksNamespace;
|
|
3319
|
+
constructor(callTool: CallToolFn);
|
|
3320
|
+
}
|
|
3321
|
+
declare class ScraperClient {
|
|
3322
|
+
private readonly r;
|
|
3323
|
+
readonly youtube: YoutubeNamespace;
|
|
3324
|
+
readonly screenshot: ScreenshotNamespace;
|
|
3325
|
+
readonly facebook: FacebookNamespace;
|
|
3326
|
+
readonly googleAds: GoogleAdsNamespace;
|
|
3327
|
+
readonly instagram: InstagramNamespace;
|
|
3328
|
+
readonly reddit: RedditNamespace;
|
|
3329
|
+
readonly video: VideoNamespace;
|
|
3330
|
+
readonly maps: MapsNamespace;
|
|
3331
|
+
readonly directory: DirectoryNamespace;
|
|
3332
|
+
readonly serpIntelligence: SerpIntelligenceNamespace;
|
|
3333
|
+
readonly workflows: WorkflowsNamespace;
|
|
3334
|
+
readonly memoryTools: MemoryTools;
|
|
3335
|
+
constructor(options: ScraperClientOptions);
|
|
3336
|
+
private callMemoryTool;
|
|
3337
|
+
searchSerp(params: Omit<RequestBodyOf<'harvestSync'>, 'serpOnly'>): Promise<{
|
|
3338
|
+
job_id: string;
|
|
3339
|
+
status: "done" | "cancelled" | "failed";
|
|
3340
|
+
result?: {
|
|
3341
|
+
[key: string]: unknown;
|
|
3342
|
+
};
|
|
3343
|
+
attempts?: {
|
|
3344
|
+
[key: string]: unknown;
|
|
3345
|
+
}[];
|
|
3346
|
+
error?: string;
|
|
3347
|
+
}>;
|
|
3348
|
+
harvestPaa(params: RequestBodyOf<'harvestSync'>): Promise<{
|
|
3349
|
+
job_id: string;
|
|
3350
|
+
status: "done" | "cancelled" | "failed";
|
|
3351
|
+
result?: {
|
|
3352
|
+
[key: string]: unknown;
|
|
3353
|
+
};
|
|
3354
|
+
attempts?: {
|
|
3355
|
+
[key: string]: unknown;
|
|
3356
|
+
}[];
|
|
3357
|
+
error?: string;
|
|
3358
|
+
}>;
|
|
3359
|
+
extractUrl(params: RequestBodyOf<'extractUrl'>): Promise<{
|
|
3360
|
+
title?: string | null;
|
|
3361
|
+
bodyMarkdown?: string;
|
|
3362
|
+
bodyHtml?: string;
|
|
3363
|
+
headings?: {
|
|
3364
|
+
[key: string]: unknown;
|
|
3365
|
+
}[];
|
|
3366
|
+
screenshot?: {
|
|
3367
|
+
base64?: string;
|
|
3368
|
+
sizeBytes?: number;
|
|
3369
|
+
device?: string;
|
|
3370
|
+
} | null;
|
|
3371
|
+
branding?: {
|
|
3372
|
+
[key: string]: unknown;
|
|
3373
|
+
} | null;
|
|
3374
|
+
media?: {
|
|
3375
|
+
[key: string]: unknown;
|
|
3376
|
+
} | null;
|
|
3377
|
+
memory?: components["schemas"]["VaultDepositResult"];
|
|
3378
|
+
} & {
|
|
3379
|
+
[key: string]: unknown;
|
|
3380
|
+
}>;
|
|
3381
|
+
mapSiteUrls(params: RequestBodyOf<'mapSiteUrls'>): Promise<{
|
|
3382
|
+
urls?: string[];
|
|
3383
|
+
} & {
|
|
3384
|
+
[key: string]: unknown;
|
|
3385
|
+
}>;
|
|
3386
|
+
extractSite(params: RequestBodyOf<'extractSite'>): Promise<({
|
|
3387
|
+
pages?: {
|
|
3388
|
+
[key: string]: unknown;
|
|
3389
|
+
}[];
|
|
3390
|
+
} & {
|
|
3391
|
+
[key: string]: unknown;
|
|
3392
|
+
}) | {
|
|
3393
|
+
jobId: string;
|
|
3394
|
+
status: "pending";
|
|
3395
|
+
statusUrl: string;
|
|
3396
|
+
}>;
|
|
3397
|
+
auditSite(params: RequestBodyOf<'extractSite'>): Promise<({
|
|
3398
|
+
pages?: {
|
|
3399
|
+
[key: string]: unknown;
|
|
3400
|
+
}[];
|
|
3401
|
+
} & {
|
|
3402
|
+
[key: string]: unknown;
|
|
3403
|
+
}) | {
|
|
3404
|
+
jobId: string;
|
|
3405
|
+
status: "pending";
|
|
3406
|
+
statusUrl: string;
|
|
3407
|
+
}>;
|
|
3408
|
+
getExtractSiteStatus(id: string): Promise<{
|
|
3409
|
+
jobId?: string;
|
|
3410
|
+
status?: string;
|
|
3411
|
+
startUrl?: string;
|
|
3412
|
+
totalUrls?: number;
|
|
3413
|
+
doneUrls?: number;
|
|
3414
|
+
artifacts?: {
|
|
3415
|
+
[key: string]: unknown;
|
|
3416
|
+
}[];
|
|
3417
|
+
error?: string | null;
|
|
3418
|
+
updatedAt?: string;
|
|
3419
|
+
}>;
|
|
3420
|
+
listJobs(): Promise<{
|
|
3421
|
+
id?: string;
|
|
3422
|
+
status?: string;
|
|
3423
|
+
query?: string;
|
|
3424
|
+
result?: {
|
|
3425
|
+
[key: string]: unknown;
|
|
3426
|
+
} | null;
|
|
3427
|
+
attempts?: {
|
|
3428
|
+
[key: string]: unknown;
|
|
3429
|
+
}[];
|
|
3430
|
+
created_at?: string;
|
|
3431
|
+
}[]>;
|
|
3432
|
+
getJob(id: string): Promise<{
|
|
3433
|
+
id?: string;
|
|
3434
|
+
status?: string;
|
|
3435
|
+
query?: string;
|
|
3436
|
+
result?: {
|
|
3437
|
+
[key: string]: unknown;
|
|
3438
|
+
} | null;
|
|
3439
|
+
attempts?: {
|
|
3440
|
+
[key: string]: unknown;
|
|
3441
|
+
}[];
|
|
3442
|
+
created_at?: string;
|
|
3443
|
+
}>;
|
|
3444
|
+
getHistory(): Promise<{
|
|
3445
|
+
[key: string]: unknown;
|
|
3446
|
+
}[]>;
|
|
3447
|
+
getLedger(): Promise<{
|
|
3448
|
+
[key: string]: unknown;
|
|
3449
|
+
}[]>;
|
|
3450
|
+
}
|
|
3451
|
+
|
|
3452
|
+
type InsufficientBalanceBody = components['schemas']['InsufficientBalanceError'];
|
|
3453
|
+
type ConcurrencyLimitBody = components['schemas']['ConcurrencyLimitError'];
|
|
3454
|
+
type StructuredErrorBody = components['schemas']['StructuredError'];
|
|
3455
|
+
declare class ScraperApiError extends Error {
|
|
3456
|
+
readonly status: number;
|
|
3457
|
+
readonly code?: string;
|
|
3458
|
+
readonly body: unknown;
|
|
3459
|
+
constructor(status: number, body: unknown);
|
|
3460
|
+
isInsufficientBalance(): this is ScraperApiError & {
|
|
3461
|
+
body: InsufficientBalanceBody;
|
|
3462
|
+
};
|
|
3463
|
+
isConcurrencyLimitExceeded(): this is ScraperApiError & {
|
|
3464
|
+
body: ConcurrencyLimitBody;
|
|
3465
|
+
};
|
|
3466
|
+
isStructuredError(): this is ScraperApiError & {
|
|
3467
|
+
body: StructuredErrorBody;
|
|
3468
|
+
};
|
|
3469
|
+
}
|
|
3470
|
+
|
|
3471
|
+
export { type ConcurrencyLimitBody, type InsufficientBalanceBody, ScraperApiError, ScraperClient, type ScraperClientOptions, type StructuredErrorBody, type components, type operations, type paths };
|