@apteva/integrations 0.15.9 → 0.15.11
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/dist/http-executor.d.ts.map +1 -1
- package/dist/http-executor.js +62 -8
- package/dist/http-executor.js.map +1 -1
- package/dist/mcp-generator.js +24 -0
- package/dist/mcp-generator.js.map +1 -1
- package/dist/types.d.ts +4 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/apps/anthropic-admin.json +183 -0
- package/src/apps/apify.json +168 -0
- package/src/apps/aws-ses.json +1 -1
- package/src/apps/bookvault.json +309 -0
- package/src/apps/braintree.json +53 -0
- package/src/apps/brightdata.json +22 -1
- package/src/apps/browse-ai.json +243 -5
- package/src/apps/browserbase.json +41 -11
- package/src/apps/browserless.json +101 -0
- package/src/apps/bunny-stream.json +50 -28
- package/src/apps/ccbill.json +142 -0
- package/src/apps/close.json +238 -301
- package/src/apps/craftcloud.json +251 -202
- package/src/apps/dataforseo.json +1700 -2
- package/src/apps/deepgram.json +288 -1
- package/src/apps/digitalocean.json +53 -0
- package/src/apps/elevenlabs.json +292 -0
- package/src/apps/firecrawl.json +111 -0
- package/src/apps/gladia.json +158 -0
- package/src/apps/gmail.json +2 -5
- package/src/apps/gumroad.json +569 -0
- package/src/apps/imaterialise.json +171 -262
- package/src/apps/ingram-coresource.json +119 -0
- package/src/apps/jlcpcb.json +43 -0
- package/src/apps/jungle-scout.json +166 -0
- package/src/apps/ko-fi.json +34 -0
- package/src/apps/lemon-squeezy.json +270 -0
- package/src/apps/lulu-print.json +266 -0
- package/src/apps/mollie.json +219 -0
- package/src/apps/paddle.json +199 -9
- package/src/apps/payhip.json +162 -0
- package/src/apps/paystack.json +207 -0
- package/src/apps/pipedrive.json +221 -212
- package/src/apps/publishdrive.json +132 -0
- package/src/apps/razorpay.json +207 -0
- package/src/apps/ringover.json +69 -0
- package/src/apps/runpod.json +727 -0
- package/src/apps/salesforce-crm.json +192 -233
- package/src/apps/sculpteo.json +98 -180
- package/src/apps/segpay.json +215 -0
- package/src/apps/shapeways.json +114 -136
- package/src/apps/slant3d.json +260 -168
- package/src/apps/soniox.json +194 -0
- package/src/apps/speechmatics.json +167 -0
- package/src/apps/streetlib.json +60 -0
- package/src/apps/stripe.json +1 -0
- package/src/apps/surfer.json +511 -0
- package/src/apps/twitter-api.json +14 -1
- package/src/apps/verotel.json +124 -0
- package/src/apps/whop.json +364 -0
- package/src/apps/zendesk-sell.json +248 -0
- package/src/apps/zendesk.json +190 -259
package/src/apps/browse-ai.json
CHANGED
|
@@ -27,6 +27,16 @@
|
|
|
27
27
|
]
|
|
28
28
|
},
|
|
29
29
|
"tools": [
|
|
30
|
+
{
|
|
31
|
+
"name": "status",
|
|
32
|
+
"description": "Check Browse AI API and task queue status. Use as a zero-argument connection test.",
|
|
33
|
+
"method": "GET",
|
|
34
|
+
"path": "/status",
|
|
35
|
+
"input_schema": {
|
|
36
|
+
"type": "object",
|
|
37
|
+
"properties": {}
|
|
38
|
+
}
|
|
39
|
+
},
|
|
30
40
|
{
|
|
31
41
|
"name": "list_robots",
|
|
32
42
|
"description": "Retrieve a list of all robots in your Browse.ai account. Returns robot IDs, names, creation dates, and input parameter configurations. Use this to discover available robots before running tasks.",
|
|
@@ -41,7 +51,7 @@
|
|
|
41
51
|
"name": "get_robot",
|
|
42
52
|
"description": "Retrieve detailed information about a specific robot by its ID. Returns the robot's name, configuration, input parameters, and creation date.",
|
|
43
53
|
"method": "GET",
|
|
44
|
-
"path": "/robots/{
|
|
54
|
+
"path": "/robots/{robot_id}",
|
|
45
55
|
"input_schema": {
|
|
46
56
|
"type": "object",
|
|
47
57
|
"properties": {
|
|
@@ -59,7 +69,7 @@
|
|
|
59
69
|
"name": "run_robot",
|
|
60
70
|
"description": "Start a new task by running a robot with the specified input parameters. The robot will navigate to the target URL and extract data based on its configuration. Returns the created task object with its ID for tracking progress.",
|
|
61
71
|
"method": "POST",
|
|
62
|
-
"path": "/robots/{
|
|
72
|
+
"path": "/robots/{robot_id}/tasks",
|
|
63
73
|
"input_schema": {
|
|
64
74
|
"type": "object",
|
|
65
75
|
"properties": {
|
|
@@ -88,7 +98,7 @@
|
|
|
88
98
|
"name": "get_task",
|
|
89
99
|
"description": "Retrieve the results and status of a specific task. Returns task status (successful, failed, in-progress), captured text data, screenshots, timestamps, and a debug video URL. Poll this endpoint to check if a running task has completed.",
|
|
90
100
|
"method": "GET",
|
|
91
|
-
"path": "/robots/{
|
|
101
|
+
"path": "/robots/{robot_id}/tasks/{task_id}",
|
|
92
102
|
"input_schema": {
|
|
93
103
|
"type": "object",
|
|
94
104
|
"properties": {
|
|
@@ -111,7 +121,7 @@
|
|
|
111
121
|
"name": "list_tasks",
|
|
112
122
|
"description": "Retrieve a paginated list of tasks for a specific robot. Supports filtering by status and date range. Returns task IDs, statuses, timestamps, and extracted data summaries.",
|
|
113
123
|
"method": "GET",
|
|
114
|
-
"path": "/robots/{
|
|
124
|
+
"path": "/robots/{robot_id}/tasks",
|
|
115
125
|
"input_schema": {
|
|
116
126
|
"type": "object",
|
|
117
127
|
"properties": {
|
|
@@ -143,6 +153,234 @@
|
|
|
143
153
|
"robot_id"
|
|
144
154
|
]
|
|
145
155
|
}
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
"name": "bulk_run_robot",
|
|
159
|
+
"description": "Start a bulk run for a robot with many input parameter sets. Use this for large URL/listing batches instead of starting tasks one by one.",
|
|
160
|
+
"method": "POST",
|
|
161
|
+
"path": "/robots/{robot_id}/bulk-runs",
|
|
162
|
+
"input_schema": {
|
|
163
|
+
"type": "object",
|
|
164
|
+
"properties": {
|
|
165
|
+
"robot_id": {
|
|
166
|
+
"type": "string",
|
|
167
|
+
"description": "The unique identifier of the robot to run."
|
|
168
|
+
},
|
|
169
|
+
"inputParameters": {
|
|
170
|
+
"type": "array",
|
|
171
|
+
"items": {
|
|
172
|
+
"type": "object"
|
|
173
|
+
},
|
|
174
|
+
"description": "Array of input parameter objects, one task per item."
|
|
175
|
+
}
|
|
176
|
+
},
|
|
177
|
+
"required": [
|
|
178
|
+
"robot_id",
|
|
179
|
+
"inputParameters"
|
|
180
|
+
]
|
|
181
|
+
}
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
"name": "get_bulk_run",
|
|
185
|
+
"description": "Retrieve a bulk run by ID, including its status and child task results.",
|
|
186
|
+
"method": "GET",
|
|
187
|
+
"path": "/robots/{robot_id}/bulk-runs/{bulk_run_id}",
|
|
188
|
+
"input_schema": {
|
|
189
|
+
"type": "object",
|
|
190
|
+
"properties": {
|
|
191
|
+
"robot_id": {
|
|
192
|
+
"type": "string",
|
|
193
|
+
"description": "The unique identifier of the robot."
|
|
194
|
+
},
|
|
195
|
+
"bulk_run_id": {
|
|
196
|
+
"type": "string",
|
|
197
|
+
"description": "The unique identifier of the bulk run."
|
|
198
|
+
}
|
|
199
|
+
},
|
|
200
|
+
"required": [
|
|
201
|
+
"robot_id",
|
|
202
|
+
"bulk_run_id"
|
|
203
|
+
]
|
|
204
|
+
}
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
"name": "list_monitors",
|
|
208
|
+
"description": "List monitors configured for a robot.",
|
|
209
|
+
"method": "GET",
|
|
210
|
+
"path": "/robots/{robot_id}/monitors",
|
|
211
|
+
"input_schema": {
|
|
212
|
+
"type": "object",
|
|
213
|
+
"properties": {
|
|
214
|
+
"robot_id": {
|
|
215
|
+
"type": "string"
|
|
216
|
+
}
|
|
217
|
+
},
|
|
218
|
+
"required": [
|
|
219
|
+
"robot_id"
|
|
220
|
+
]
|
|
221
|
+
}
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
"name": "create_monitor",
|
|
225
|
+
"description": "Create a monitor for a robot. The request body follows Browse AI's monitor schema and usually includes inputParameters and schedule settings.",
|
|
226
|
+
"method": "POST",
|
|
227
|
+
"path": "/robots/{robot_id}/monitors",
|
|
228
|
+
"input_schema": {
|
|
229
|
+
"type": "object",
|
|
230
|
+
"properties": {
|
|
231
|
+
"robot_id": {
|
|
232
|
+
"type": "string"
|
|
233
|
+
},
|
|
234
|
+
"inputParameters": {
|
|
235
|
+
"type": "object"
|
|
236
|
+
},
|
|
237
|
+
"schedule": {
|
|
238
|
+
"type": "object"
|
|
239
|
+
}
|
|
240
|
+
},
|
|
241
|
+
"required": [
|
|
242
|
+
"robot_id"
|
|
243
|
+
]
|
|
244
|
+
}
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
"name": "get_monitor",
|
|
248
|
+
"description": "Retrieve one monitor for a robot.",
|
|
249
|
+
"method": "GET",
|
|
250
|
+
"path": "/robots/{robot_id}/monitors/{monitor_id}",
|
|
251
|
+
"input_schema": {
|
|
252
|
+
"type": "object",
|
|
253
|
+
"properties": {
|
|
254
|
+
"robot_id": {
|
|
255
|
+
"type": "string"
|
|
256
|
+
},
|
|
257
|
+
"monitor_id": {
|
|
258
|
+
"type": "string"
|
|
259
|
+
}
|
|
260
|
+
},
|
|
261
|
+
"required": [
|
|
262
|
+
"robot_id",
|
|
263
|
+
"monitor_id"
|
|
264
|
+
]
|
|
265
|
+
}
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
"name": "update_monitor",
|
|
269
|
+
"description": "Update one monitor for a robot.",
|
|
270
|
+
"method": "PATCH",
|
|
271
|
+
"path": "/robots/{robot_id}/monitors/{monitor_id}",
|
|
272
|
+
"input_schema": {
|
|
273
|
+
"type": "object",
|
|
274
|
+
"properties": {
|
|
275
|
+
"robot_id": {
|
|
276
|
+
"type": "string"
|
|
277
|
+
},
|
|
278
|
+
"monitor_id": {
|
|
279
|
+
"type": "string"
|
|
280
|
+
},
|
|
281
|
+
"inputParameters": {
|
|
282
|
+
"type": "object"
|
|
283
|
+
},
|
|
284
|
+
"schedule": {
|
|
285
|
+
"type": "object"
|
|
286
|
+
},
|
|
287
|
+
"status": {
|
|
288
|
+
"type": "string"
|
|
289
|
+
}
|
|
290
|
+
},
|
|
291
|
+
"required": [
|
|
292
|
+
"robot_id",
|
|
293
|
+
"monitor_id"
|
|
294
|
+
]
|
|
295
|
+
}
|
|
296
|
+
},
|
|
297
|
+
{
|
|
298
|
+
"name": "delete_monitor",
|
|
299
|
+
"description": "Delete one monitor for a robot.",
|
|
300
|
+
"method": "DELETE",
|
|
301
|
+
"path": "/robots/{robot_id}/monitors/{monitor_id}",
|
|
302
|
+
"input_schema": {
|
|
303
|
+
"type": "object",
|
|
304
|
+
"properties": {
|
|
305
|
+
"robot_id": {
|
|
306
|
+
"type": "string"
|
|
307
|
+
},
|
|
308
|
+
"monitor_id": {
|
|
309
|
+
"type": "string"
|
|
310
|
+
}
|
|
311
|
+
},
|
|
312
|
+
"required": [
|
|
313
|
+
"robot_id",
|
|
314
|
+
"monitor_id"
|
|
315
|
+
]
|
|
316
|
+
}
|
|
317
|
+
},
|
|
318
|
+
{
|
|
319
|
+
"name": "list_webhooks",
|
|
320
|
+
"description": "List webhooks configured for a robot.",
|
|
321
|
+
"method": "GET",
|
|
322
|
+
"path": "/robots/{robot_id}/webhooks",
|
|
323
|
+
"input_schema": {
|
|
324
|
+
"type": "object",
|
|
325
|
+
"properties": {
|
|
326
|
+
"robot_id": {
|
|
327
|
+
"type": "string"
|
|
328
|
+
}
|
|
329
|
+
},
|
|
330
|
+
"required": [
|
|
331
|
+
"robot_id"
|
|
332
|
+
]
|
|
333
|
+
}
|
|
334
|
+
},
|
|
335
|
+
{
|
|
336
|
+
"name": "create_webhook",
|
|
337
|
+
"description": "Create a robot webhook that Browse AI calls after robot task events.",
|
|
338
|
+
"method": "POST",
|
|
339
|
+
"path": "/robots/{robot_id}/webhooks",
|
|
340
|
+
"input_schema": {
|
|
341
|
+
"type": "object",
|
|
342
|
+
"properties": {
|
|
343
|
+
"robot_id": {
|
|
344
|
+
"type": "string"
|
|
345
|
+
},
|
|
346
|
+
"url": {
|
|
347
|
+
"type": "string",
|
|
348
|
+
"description": "Webhook destination URL."
|
|
349
|
+
},
|
|
350
|
+
"event": {
|
|
351
|
+
"type": "string",
|
|
352
|
+
"description": "Browse AI webhook event type."
|
|
353
|
+
}
|
|
354
|
+
},
|
|
355
|
+
"required": [
|
|
356
|
+
"robot_id",
|
|
357
|
+
"url"
|
|
358
|
+
]
|
|
359
|
+
}
|
|
360
|
+
},
|
|
361
|
+
{
|
|
362
|
+
"name": "delete_webhook",
|
|
363
|
+
"description": "Delete a robot webhook.",
|
|
364
|
+
"method": "DELETE",
|
|
365
|
+
"path": "/robots/{robot_id}/webhooks/{webhook_id}",
|
|
366
|
+
"input_schema": {
|
|
367
|
+
"type": "object",
|
|
368
|
+
"properties": {
|
|
369
|
+
"robot_id": {
|
|
370
|
+
"type": "string"
|
|
371
|
+
},
|
|
372
|
+
"webhook_id": {
|
|
373
|
+
"type": "string"
|
|
374
|
+
}
|
|
375
|
+
},
|
|
376
|
+
"required": [
|
|
377
|
+
"robot_id",
|
|
378
|
+
"webhook_id"
|
|
379
|
+
]
|
|
380
|
+
}
|
|
146
381
|
}
|
|
147
|
-
]
|
|
382
|
+
],
|
|
383
|
+
"health_check": {
|
|
384
|
+
"tool": "status"
|
|
385
|
+
}
|
|
148
386
|
}
|
|
@@ -16,6 +16,38 @@
|
|
|
16
16
|
]
|
|
17
17
|
},
|
|
18
18
|
"tools": [
|
|
19
|
+
{
|
|
20
|
+
"name": "fetch",
|
|
21
|
+
"description": "Fetch a page through Browserbase without starting a full browser session. Returns status, headers, content, contentType, and encoding. Use format='markdown' for agent-ready page text or format='json' with schema for structured extraction.",
|
|
22
|
+
"method": "POST",
|
|
23
|
+
"path": "/v1/fetch",
|
|
24
|
+
"input_schema": {
|
|
25
|
+
"type": "object",
|
|
26
|
+
"properties": {
|
|
27
|
+
"url": { "type": "string", "description": "URL to fetch" },
|
|
28
|
+
"allowRedirects": { "type": "boolean", "default": false },
|
|
29
|
+
"allowInsecureSsl": { "type": "boolean", "default": false },
|
|
30
|
+
"proxies": { "type": "boolean", "default": false },
|
|
31
|
+
"format": { "type": "string", "enum": ["raw", "markdown", "json"], "default": "raw" },
|
|
32
|
+
"schema": { "type": "object", "description": "JSON Schema used when format='json'" }
|
|
33
|
+
},
|
|
34
|
+
"required": ["url"]
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"name": "search",
|
|
39
|
+
"description": "Search the web through Browserbase and return compact structured results. Use before opening a browser session when you only need candidate URLs.",
|
|
40
|
+
"method": "POST",
|
|
41
|
+
"path": "/v1/search",
|
|
42
|
+
"input_schema": {
|
|
43
|
+
"type": "object",
|
|
44
|
+
"properties": {
|
|
45
|
+
"query": { "type": "string", "description": "Search query, 1-200 characters" },
|
|
46
|
+
"numResults": { "type": "integer", "default": 10, "description": "Number of results to return, 1-25" }
|
|
47
|
+
},
|
|
48
|
+
"required": ["query"]
|
|
49
|
+
}
|
|
50
|
+
},
|
|
19
51
|
{
|
|
20
52
|
"name": "create_session",
|
|
21
53
|
"description": "Create a new browser session. Returns `{id, connectUrl, seleniumRemoteUrl, ...}` — use `connectUrl` to connect via Playwright/Puppeteer over CDP and drive the browser (take screenshots, click, type, etc.). Sessions idle out after ~5 min unless `keepAlive=true`.",
|
|
@@ -65,8 +97,7 @@
|
|
|
65
97
|
"region": { "type": "string", "enum": ["us-west-2", "us-east-1", "eu-central-1", "ap-southeast-1"], "description": "Geographic region to run the browser in" },
|
|
66
98
|
"timeout": { "type": "integer", "description": "Max session duration in seconds" },
|
|
67
99
|
"userMetadata": { "type": "object", "description": "Arbitrary key/values attached to the session" }
|
|
68
|
-
}
|
|
69
|
-
"required": ["projectId"]
|
|
100
|
+
}
|
|
70
101
|
}
|
|
71
102
|
},
|
|
72
103
|
{
|
|
@@ -197,17 +228,16 @@
|
|
|
197
228
|
"path_params": ["id"]
|
|
198
229
|
},
|
|
199
230
|
{
|
|
200
|
-
"name": "
|
|
201
|
-
"description": "
|
|
202
|
-
"method": "
|
|
203
|
-
"path": "/v1/
|
|
231
|
+
"name": "delete_context",
|
|
232
|
+
"description": "Delete a persisted context.",
|
|
233
|
+
"method": "DELETE",
|
|
234
|
+
"path": "/v1/contexts/{id}",
|
|
204
235
|
"input_schema": {
|
|
205
236
|
"type": "object",
|
|
206
|
-
"properties": {
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
}
|
|
237
|
+
"properties": { "id": { "type": "string" } },
|
|
238
|
+
"required": ["id"]
|
|
239
|
+
},
|
|
240
|
+
"path_params": ["id"]
|
|
211
241
|
},
|
|
212
242
|
{
|
|
213
243
|
"name": "get_extension",
|
|
@@ -157,6 +157,107 @@
|
|
|
157
157
|
"required": ["url", "elements"]
|
|
158
158
|
}
|
|
159
159
|
},
|
|
160
|
+
{
|
|
161
|
+
"name": "smart_scrape",
|
|
162
|
+
"description": "Intelligently scrape a URL using Browserless cascading strategies: fast HTTP fetch, proxy, headless browser, and CAPTCHA solving as needed. Returns JSON with requested outputs such as HTML, markdown, links, screenshots, or PDFs.",
|
|
163
|
+
"method": "POST",
|
|
164
|
+
"path": "/smart-scrape",
|
|
165
|
+
"input_schema": {
|
|
166
|
+
"type": "object",
|
|
167
|
+
"properties": {
|
|
168
|
+
"url": { "type": "string", "description": "Target URL" },
|
|
169
|
+
"formats": { "type": "array", "items": { "type": "string" }, "description": "Outputs to return, e.g. html, markdown, links, screenshot, pdf" },
|
|
170
|
+
"waitFor": { "type": ["string", "integer"], "description": "Selector or milliseconds to wait" },
|
|
171
|
+
"proxy": { "type": "object", "description": "Optional proxy configuration" },
|
|
172
|
+
"timeout": { "type": "integer", "description": "Request timeout in milliseconds" }
|
|
173
|
+
},
|
|
174
|
+
"required": ["url"]
|
|
175
|
+
}
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
"name": "unblock",
|
|
179
|
+
"description": "Bypass bot detection for a URL and return content, cookies, screenshots, or a browserWSEndpoint for custom automation. Best with Browserless residential proxies.",
|
|
180
|
+
"method": "POST",
|
|
181
|
+
"path": "/unblock",
|
|
182
|
+
"timeout_ms": 305000,
|
|
183
|
+
"input_schema": {
|
|
184
|
+
"type": "object",
|
|
185
|
+
"properties": {
|
|
186
|
+
"url": { "type": "string", "description": "Target URL" },
|
|
187
|
+
"browserWSEndpoint": { "type": "boolean", "description": "Return a WebSocket endpoint for handoff to Puppeteer/Playwright" },
|
|
188
|
+
"cookies": { "type": "boolean", "description": "Return cookies" },
|
|
189
|
+
"content": { "type": "boolean", "description": "Return page content" },
|
|
190
|
+
"screenshot": { "type": "boolean", "description": "Return a screenshot" },
|
|
191
|
+
"ttl": { "type": "integer", "description": "Browser lifetime in milliseconds" }
|
|
192
|
+
},
|
|
193
|
+
"required": ["url"]
|
|
194
|
+
}
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
"name": "search",
|
|
198
|
+
"description": "Search the web through Browserless and return structured results for discovery before scraping.",
|
|
199
|
+
"method": "POST",
|
|
200
|
+
"path": "/search",
|
|
201
|
+
"input_schema": {
|
|
202
|
+
"type": "object",
|
|
203
|
+
"properties": {
|
|
204
|
+
"query": { "type": "string" },
|
|
205
|
+
"limit": { "type": "integer" },
|
|
206
|
+
"country": { "type": "string" },
|
|
207
|
+
"language": { "type": "string" }
|
|
208
|
+
},
|
|
209
|
+
"required": ["query"]
|
|
210
|
+
}
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
"name": "map",
|
|
214
|
+
"description": "Discover URLs on a website through Browserless without scraping every page.",
|
|
215
|
+
"method": "POST",
|
|
216
|
+
"path": "/map",
|
|
217
|
+
"input_schema": {
|
|
218
|
+
"type": "object",
|
|
219
|
+
"properties": {
|
|
220
|
+
"url": { "type": "string" },
|
|
221
|
+
"limit": { "type": "integer" },
|
|
222
|
+
"includeSubdomains": { "type": "boolean" },
|
|
223
|
+
"sitemap": { "type": "string" }
|
|
224
|
+
},
|
|
225
|
+
"required": ["url"]
|
|
226
|
+
}
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
"name": "crawl",
|
|
230
|
+
"description": "Start an asynchronous Browserless crawl that maps and scrapes a site into structured output.",
|
|
231
|
+
"method": "POST",
|
|
232
|
+
"path": "/crawl",
|
|
233
|
+
"timeout_ms": 65000,
|
|
234
|
+
"input_schema": {
|
|
235
|
+
"type": "object",
|
|
236
|
+
"properties": {
|
|
237
|
+
"url": { "type": "string" },
|
|
238
|
+
"limit": { "type": "integer" },
|
|
239
|
+
"formats": { "type": "array", "items": { "type": "string" } },
|
|
240
|
+
"maxDepth": { "type": "integer" },
|
|
241
|
+
"includePaths": { "type": "array", "items": { "type": "string" } },
|
|
242
|
+
"excludePaths": { "type": "array", "items": { "type": "string" } }
|
|
243
|
+
},
|
|
244
|
+
"required": ["url"]
|
|
245
|
+
}
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
"name": "bql",
|
|
249
|
+
"description": "Run a BrowserQL GraphQL query against Browserless Chromium. Use for stealth browser automation, CAPTCHA solving, navigation, interaction, and extraction workflows that are too complex for REST scrape endpoints.",
|
|
250
|
+
"method": "POST",
|
|
251
|
+
"path": "/chromium/bql",
|
|
252
|
+
"input_schema": {
|
|
253
|
+
"type": "object",
|
|
254
|
+
"properties": {
|
|
255
|
+
"query": { "type": "string", "description": "GraphQL BrowserQL query or mutation" },
|
|
256
|
+
"variables": { "type": "object", "description": "GraphQL variables" }
|
|
257
|
+
},
|
|
258
|
+
"required": ["query"]
|
|
259
|
+
}
|
|
260
|
+
},
|
|
160
261
|
{
|
|
161
262
|
"name": "stats",
|
|
162
263
|
"description": "Get account / session stats — credits used, concurrency, queue depth.",
|
|
@@ -21,12 +21,19 @@
|
|
|
21
21
|
"credential_fields": [
|
|
22
22
|
{
|
|
23
23
|
"name": "streamApiKey",
|
|
24
|
-
"label": "Stream
|
|
25
|
-
"description": "Your Bunny Stream library API key for the configured video library"
|
|
24
|
+
"label": "Stream API Key",
|
|
25
|
+
"description": "Your Bunny Stream library API key for the configured video library. Used for video, collection, upload, and fetch tools on video.bunnycdn.com."
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"name": "accountApiKey",
|
|
29
|
+
"label": "Account API Key",
|
|
30
|
+
"required": false,
|
|
31
|
+
"description": "Optional Bunny account API key from Account Settings > API Keys. Required only for account-level library tools: list_libraries, get_library, and create_library."
|
|
26
32
|
},
|
|
27
33
|
{
|
|
28
34
|
"name": "libraryId",
|
|
29
|
-
"label": "Library Id"
|
|
35
|
+
"label": "Library Id",
|
|
36
|
+
"description": "The numeric Bunny Stream video library ID used with the per-library Stream API key."
|
|
30
37
|
}
|
|
31
38
|
]
|
|
32
39
|
},
|
|
@@ -88,9 +95,15 @@
|
|
|
88
95
|
"tools": [
|
|
89
96
|
{
|
|
90
97
|
"name": "list_libraries",
|
|
91
|
-
"description": "List all video libraries in your account.
|
|
98
|
+
"description": "List all video libraries in your Bunny account. This is a Core API endpoint and requires the accountApiKey credential, not the per-library streamApiKey. Returns Id, Name, VideoCount, StorageUsage, PullZoneId, StorageZoneId, ApiKey, and ReadOnlyApiKey where available.",
|
|
92
99
|
"method": "GET",
|
|
93
100
|
"path": "/videolibrary",
|
|
101
|
+
"headers": {
|
|
102
|
+
"AccessKey": "{{accountApiKey}}"
|
|
103
|
+
},
|
|
104
|
+
"query_param_aliases": {
|
|
105
|
+
"itemsPerPage": "perPage"
|
|
106
|
+
},
|
|
94
107
|
"input_schema": {
|
|
95
108
|
"type": "object",
|
|
96
109
|
"properties": {
|
|
@@ -102,13 +115,13 @@
|
|
|
102
115
|
"itemsPerPage": {
|
|
103
116
|
"type": "integer",
|
|
104
117
|
"description": "Items per page",
|
|
105
|
-
"default":
|
|
106
|
-
"
|
|
118
|
+
"default": 1000,
|
|
119
|
+
"minimum": 5,
|
|
120
|
+
"maximum": 1000
|
|
107
121
|
},
|
|
108
|
-
"
|
|
109
|
-
"type": "
|
|
110
|
-
"description": "
|
|
111
|
-
"default": false
|
|
122
|
+
"search": {
|
|
123
|
+
"type": "string",
|
|
124
|
+
"description": "Search term used to filter video libraries"
|
|
112
125
|
}
|
|
113
126
|
}
|
|
114
127
|
},
|
|
@@ -136,19 +149,15 @@
|
|
|
136
149
|
},
|
|
137
150
|
{
|
|
138
151
|
"name": "get_library",
|
|
139
|
-
"description": "Get
|
|
152
|
+
"description": "Get account-level details for the configured video library. This is a Core API endpoint and requires accountApiKey, not streamApiKey.",
|
|
140
153
|
"method": "GET",
|
|
141
|
-
"
|
|
142
|
-
"
|
|
154
|
+
"path": "/videolibrary/{{credential.libraryId}}",
|
|
155
|
+
"headers": {
|
|
156
|
+
"AccessKey": "{{accountApiKey}}"
|
|
157
|
+
},
|
|
143
158
|
"input_schema": {
|
|
144
159
|
"type": "object",
|
|
145
|
-
"properties": {
|
|
146
|
-
"includeAccessKey": {
|
|
147
|
-
"type": "boolean",
|
|
148
|
-
"description": "Include library access key in response",
|
|
149
|
-
"default": false
|
|
150
|
-
}
|
|
151
|
-
}
|
|
160
|
+
"properties": {}
|
|
152
161
|
},
|
|
153
162
|
"mock_response": {
|
|
154
163
|
"Id": 12345,
|
|
@@ -167,9 +176,12 @@
|
|
|
167
176
|
},
|
|
168
177
|
{
|
|
169
178
|
"name": "create_library",
|
|
170
|
-
"description": "Create a new video library for organizing and hosting videos",
|
|
179
|
+
"description": "Create a new video library for organizing and hosting videos. This is a Core API endpoint and requires accountApiKey, not streamApiKey. The response includes the new library Id and ApiKey; use those as libraryId and streamApiKey for Stream tools.",
|
|
171
180
|
"method": "POST",
|
|
172
181
|
"path": "/videolibrary",
|
|
182
|
+
"headers": {
|
|
183
|
+
"AccessKey": "{{accountApiKey}}"
|
|
184
|
+
},
|
|
173
185
|
"input_schema": {
|
|
174
186
|
"type": "object",
|
|
175
187
|
"properties": {
|
|
@@ -257,7 +269,7 @@
|
|
|
257
269
|
},
|
|
258
270
|
{
|
|
259
271
|
"name": "list_videos",
|
|
260
|
-
"description": "List videos in the library with pagination and filtering. Each video includes guid, title, status, length, views, collectionId, and more. Pass collectionId to filter to one Bunny collection; the integration sends this to Bunny as the required collection query parameter.\n\
|
|
272
|
+
"description": "List videos in the library with pagination and filtering. Each video includes guid, videoLibraryId, title, status, length, views, collectionId, and more. Pass collectionId to filter to one Bunny collection; the integration sends this to Bunny as the required collection query parameter.\n\nURL construction for agents:\n- Use guid as the video ID.\n- Use videoLibraryId from the video response as the library ID. If videoLibraryId is missing, use the configured libraryId or the Id from list_libraries/get_library.\n- Embed/player URL: https://iframe.mediadelivery.net/embed/{videoLibraryId}/{guid}\n- Alternate player host: https://player.mediadelivery.net/embed/{videoLibraryId}/{guid}\n- Thumbnail URL: https://vz-{videoLibraryId}.b-cdn.net/{guid}/thumbnail.jpg\n- Direct MP4/download URLs are only available when MP4 fallback is enabled and require the library pull-zone hostname from Bunny; the video response alone is not enough.",
|
|
261
273
|
"method": "GET",
|
|
262
274
|
"base_url": "https://video.bunnycdn.com",
|
|
263
275
|
"path": "/library/{{credential.libraryId}}/videos",
|
|
@@ -324,7 +336,7 @@
|
|
|
324
336
|
},
|
|
325
337
|
{
|
|
326
338
|
"name": "get_video",
|
|
327
|
-
"description": "Get video details including status, encoding progress, resolution, duration, and metadata.\n\
|
|
339
|
+
"description": "Get video details including status, encoding progress, resolution, duration, collectionId, and metadata.\n\nURL construction for agents:\n- The guid field in the response is the Bunny video ID.\n- The videoLibraryId field in the response is the Bunny Stream library ID. If videoLibraryId is missing, use the configured libraryId or the Id from list_libraries/get_library.\n- Embed/player URL: https://iframe.mediadelivery.net/embed/{videoLibraryId}/{guid}\n- Alternate player host: https://player.mediadelivery.net/embed/{videoLibraryId}/{guid}\n- Thumbnail URL: https://vz-{videoLibraryId}.b-cdn.net/{guid}/thumbnail.jpg\n- Direct MP4/download URLs are not returned by get_video. They only work when MP4 fallback is enabled and require the library pull-zone hostname from Bunny, for example https://{pullZoneHostname}/{guid}/play_720p.mp4. Do not invent this hostname from guid or videoLibraryId alone.",
|
|
328
340
|
"method": "GET",
|
|
329
341
|
"base_url": "https://video.bunnycdn.com",
|
|
330
342
|
"path": "/library/{{credential.libraryId}}/videos/{videoId}",
|
|
@@ -406,7 +418,7 @@
|
|
|
406
418
|
},
|
|
407
419
|
{
|
|
408
420
|
"name": "update_video",
|
|
409
|
-
"description": "Update video metadata including title, description, chapters, moments, and tags",
|
|
421
|
+
"description": "Update video metadata including title, description, chapters, moments, and meta tags. metaTags must be an array of objects like [{\"property\":\"keywords\",\"value\":\"tag one, tag two\"}], not an array of strings.",
|
|
410
422
|
"method": "POST",
|
|
411
423
|
"base_url": "https://video.bunnycdn.com",
|
|
412
424
|
"path": "/library/{{credential.libraryId}}/videos/{videoId}",
|
|
@@ -465,9 +477,19 @@
|
|
|
465
477
|
"metaTags": {
|
|
466
478
|
"type": "array",
|
|
467
479
|
"items": {
|
|
468
|
-
"type": "
|
|
480
|
+
"type": "object",
|
|
481
|
+
"properties": {
|
|
482
|
+
"property": {
|
|
483
|
+
"type": "string",
|
|
484
|
+
"description": "Meta tag property/name, for example keywords, title, or description"
|
|
485
|
+
},
|
|
486
|
+
"value": {
|
|
487
|
+
"type": "string",
|
|
488
|
+
"description": "Meta tag value"
|
|
489
|
+
}
|
|
490
|
+
}
|
|
469
491
|
},
|
|
470
|
-
"description": "Meta tags for SEO"
|
|
492
|
+
"description": "Meta tags for SEO as Bunny MetaTagModel objects. Do not pass plain strings; use objects like {\"property\":\"keywords\",\"value\":\"tag one, tag two\"}."
|
|
471
493
|
}
|
|
472
494
|
},
|
|
473
495
|
"required": [
|
|
@@ -577,7 +599,7 @@
|
|
|
577
599
|
},
|
|
578
600
|
{
|
|
579
601
|
"name": "fetch_video",
|
|
580
|
-
"description": "Fetch and upload a video from an external URL to Bunny Stream for processing. If collectionId is provided, it is sent as Bunny's collectionId query parameter so the fetched video is assigned to that collection.",
|
|
602
|
+
"description": "Fetch and upload a video from an external URL to Bunny Stream for processing. If collectionId is provided, it is sent as Bunny's collectionId query parameter so the fetched video is assigned to that collection. thumbnailTime is in milliseconds.",
|
|
581
603
|
"method": "POST",
|
|
582
604
|
"base_url": "https://video.bunnycdn.com",
|
|
583
605
|
"path": "/library/{{credential.libraryId}}/videos/fetch",
|
|
@@ -602,7 +624,7 @@
|
|
|
602
624
|
},
|
|
603
625
|
"thumbnailTime": {
|
|
604
626
|
"type": "integer",
|
|
605
|
-
"description": "
|
|
627
|
+
"description": "Video time in milliseconds to generate the main thumbnail"
|
|
606
628
|
},
|
|
607
629
|
"headers": {
|
|
608
630
|
"type": "object",
|