Endpoints
POST /api/v1/browsing/async— create a task and returntask_idimmediatelyPOST /api/v1/browsing/sync— create a task and wait for the resultGET /api/v1/browsing/status?task_id=...— get task status (and result if ready)GET /api/v1/browsing/screenshots/{task_id}/{file}— download a screenshot file for a browsing task
POST /api/v1/browsing/async
Creates a browsing task and returns an ID.
Request body (JSON):
task(string, required) — the instruction to execute in the browser.screenshots(object, optional) — enables screenshot collection for the task.mode(string, required whenscreenshotsis present) — screenshot capture mode:final_only— return a single final screenshot after the task completesevery_step— return screenshots captured during each browser-use stepon_navigation— return screenshots only for steps where the page URL changed
full_page(boolean, optional, defaulttrue) — used byfinal_only; captures the full scrollable page instead of only the visible viewport.- Screenshot files are temporary and are retained for no more than 5 days.
session_key(string, optional) — groups browsing tasks into a shared session for node-selection logic.filter(object, optional) — constrains which browsing node may receive the task.country_iso(string, optional) — route only to browsing-eligible nodes from the given ISO country code (for exampleDE,US).node_uid(string, optional) — route to one specific browsing node by node UID.country_isoandnode_uidare mutually exclusive; specify only one selector.
timeout(integer, optional) — task timeout in milliseconds (maximum 3 hours).fanout(integer, optional) — number of nodes to race the task on (default1, allowed range1..10).template(string, optional) — browsing template stem. If omitted, the default browsing template is used.
POST /api/v1/browsing/sync
Same request body as async, but waits for completion (up to ~10 minutes).
Response (JSON):
GET /api/v1/browsing/status?task_id=...
Returns task status. If the task is finished (completed/failed), the response may also include success, payload, info, error, execution_time_ms.
Example response (JSON):
status values:
queuedassignedrunningcompletedfailed
GET /api/v1/browsing/screenshots/{task_id}/{file}
Downloads a screenshot produced by a browsing task. This endpoint requires the same Authorization: Bearer ... header as the browsing API itself.
Screenshot files are retained for no more than 5 days and may return 404 after cleanup.
Example:
Errors
Error format:- 400: invalid JSON / missing
task/ missingtask_id(status). - 401: missing/invalid API key.
- 403: the task belongs to a different user.
- 404: task not found.
- 405: method is not allowed.
- 504: sync wait timeout.