Properties
| Name | Type | Description |
|---|---|---|
| task | string | What to do, in plain words. Unbrowse picks the capability. |
| capability | string | A capability id to run instead of routing the task (from /api/v1/capabilities/search). |
| targetUrl | string | The site to do it on, when the task does not name one. |
| input | object | The capability's inputs. |
| accountRefs | array | Which kept logins to use. |
| interactionMode | string | unattended: a check nobody can clear fails instead of waiting. |
| idempotencyKey | string | Repeat a request with the same key to get the same run. |
| deadlineMs | integer | Answer within this many ms; past it 504 run_timeout with a runId to poll (the run keeps going). The x-unbrowse-deadline-ms header wins. |
| egress | string | client: you send the site requests from your own IP (see /api/v1/egress/{egressId}). |
| select | array | Keep only these parts of the result. Dots walk keys, [] maps over a list, [n] takes one item, a final {a,b} keeps several keys. Applied to the answer after the run is verified; billing is the same. Pa |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/unbrowse-ai/json-schema/unbrowse-ai-run-request-schema.json",
"title": "RunRequest",
"x-generated": "2026-10-30",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/unbrowse-ai-openapi.json#/components/schemas/RunRequest",
"type": "object",
"required": [
"idempotencyKey"
],
"properties": {
"task": {
"type": "string",
"description": "What to do, in plain words. Unbrowse picks the capability."
},
"capability": {
"type": "string",
"description": "A capability id to run instead of routing the task (from /api/v1/capabilities/search)."
},
"targetUrl": {
"type": "string",
"format": "uri",
"description": "The site to do it on, when the task does not name one."
},
"input": {
"type": "object",
"additionalProperties": true,
"description": "The capability's inputs."
},
"accountRefs": {
"type": "array",
"items": {
"type": "string"
},
"description": "Which kept logins to use."
},
"interactionMode": {
"type": "string",
"enum": [
"interactive",
"unattended",
"external_handler"
],
"description": "unattended: a check nobody can clear fails instead of waiting."
},
"idempotencyKey": {
"type": "string",
"description": "Repeat a request with the same key to get the same run."
},
"deadlineMs": {
"type": "integer",
"minimum": 5000,
"maximum": 300000,
"default": 60000,
"description": "Answer within this many ms; past it 504 run_timeout with a runId to poll (the run keeps going). The x-unbrowse-deadline-ms header wins."
},
"egress": {
"type": "string",
"enum": [
"server",
"client"
],
"default": "server",
"description": "client: you send the site requests from your own IP (see /api/v1/egress/{egressId})."
},
"select": {
"type": "array",
"items": {
"type": "string"
},
"description": "Keep only these parts of the result. Dots walk keys, [] maps over a list, [n] takes one item, a final {a,b} keeps several keys. Applied to the answer after the run is verified; billing is the same. Paths that matched nothing come back in `selectMissing`; a malformed path is a 400 invalid_input naming it. Results over 40,000 characters are shortened (`truncated`), so select what you need."
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/unbrowse-ai-run-request"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.