@apteva/integrations 0.15.9 → 0.15.10

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.
@@ -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/{{param.robot_id}}",
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/{{param.robot_id}}/tasks",
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/{{param.robot_id}}/tasks/{{param.task_id}}",
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/{{param.robot_id}}/tasks",
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": "create_extension",
201
- "description": "Upload a Chrome extension (.zip) to be loaded into future sessions via `extensionId`. Multipart body with `file` field.",
202
- "method": "POST",
203
- "path": "/v1/extensions",
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
- "file": { "type": "string", "description": "Zip of the unpacked extension" }
208
- },
209
- "required": ["file"]
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.",
@@ -26,6 +26,58 @@
26
26
  }
27
27
  }
28
28
  },
29
+ {
30
+ "name": "get_droplet",
31
+ "description": "Get one droplet by ID",
32
+ "method": "GET",
33
+ "path": "/droplets/{droplet_id}",
34
+ "input_schema": {
35
+ "type": "object",
36
+ "properties": { "droplet_id": { "type": "string" } },
37
+ "required": ["droplet_id"]
38
+ }
39
+ },
40
+ {
41
+ "name": "list_sizes",
42
+ "description": "List available Droplet sizes",
43
+ "method": "GET",
44
+ "path": "/sizes",
45
+ "input_schema": {
46
+ "type": "object",
47
+ "properties": {
48
+ "page": { "type": "number" },
49
+ "per_page": { "type": "number" }
50
+ }
51
+ }
52
+ },
53
+ {
54
+ "name": "list_regions",
55
+ "description": "List available DigitalOcean regions",
56
+ "method": "GET",
57
+ "path": "/regions",
58
+ "input_schema": {
59
+ "type": "object",
60
+ "properties": {
61
+ "page": { "type": "number" },
62
+ "per_page": { "type": "number" }
63
+ }
64
+ }
65
+ },
66
+ {
67
+ "name": "list_images",
68
+ "description": "List available DigitalOcean images",
69
+ "method": "GET",
70
+ "path": "/images",
71
+ "input_schema": {
72
+ "type": "object",
73
+ "properties": {
74
+ "type": { "type": "string" },
75
+ "public": { "type": "boolean" },
76
+ "page": { "type": "number" },
77
+ "per_page": { "type": "number" }
78
+ }
79
+ }
80
+ },
29
81
  {
30
82
  "name": "create_droplet",
31
83
  "description": "Create a droplet",
@@ -39,6 +91,7 @@
39
91
  "size": { "type": "string" },
40
92
  "image": { "type": "string" },
41
93
  "ssh_keys": { "type": "array" },
94
+ "user_data": { "type": "string" },
42
95
  "backups": { "type": "boolean" }
43
96
  },
44
97
  "required": ["name", "region", "size", "image"]