Browser Use: AI browser automation agents in the cloud
Browser Use: AI browser automation agents in the cloud. POST a natural-language task and an agent navigates websites, fills forms, clicks buttons, extracts structured data, and completes multi-step workflows just like a human. Stealth-enabled remote browsers with CAPTCHA solving, residential proxies, live session view, and optional structured output. Payments top up your balance; managing your session is free — you only pay to open a new browser. Docs: https://docs.browser-use.com
1000000 (raw units)
price
15
calls / 30d
8
unique payers
2026-09-17
updated
Provider
x402.api.browser-use.com · discovered, not yet claimed by its owner
Payment (x402 accepts[])
[
{
"scheme": "exact",
"network": "eip155:8453",
"payTo": "0xC0CE6Bfb16bB6B6e10A9D806e509D8d20996380F",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "1000000",
"maxTimeoutSeconds": 300
},
{
"scheme": "exact",
"network": "eip155:8453",
"payTo": "0xC0CE6Bfb16bB6B6e10A9D806e509D8d20996380F",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "5000000",
"maxTimeoutSeconds": 300
},
{
"scheme": "upto",
"network": "eip155:8453",
"payTo": "0xC0CE6Bfb16bB6B6e10A9D806e509D8d20996380F",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "100000000",
"maxTimeoutSeconds": 300
}
]Output schema
{
"bazaar": {
"info": {
"input": {
"body": {
"task": "Go to example.com and tell me the page title"
},
"bodyType": "json",
"method": "POST",
"type": "http"
},
"output": {
"example": {
"id": "3f6f2f64-3bfa-4643-a723-000000000000",
"isTaskSuccessful": true,
"liveUrl": "https://cloud.browser-use.com/live/...",
"output": "Example Domain",
"status": "stopped",
"stepCount": 3
},
"type": "json"
}
},
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"body": {
"properties": {
"enableRecording": {
"description": "Record a video of the browser session, returned as recordingUrls.",
"type": "boolean"
},
"keepAlive": {
"description": "Keep the session idle after the task completes so follow-up tasks reuse browser state.",
"type": "boolean"
},
"maxCostUsd": {
"description": "Maximum total cost in USD for this session; the task stops when reached.",
"type": "number"
},
"model": {
"description": "LLM powering the agent: \"gemini-3-flash\" (fast/cheap), \"claude-sonnet-5\" (balanced), \"claude-opus-4.7\" (most capable, default), \"claude-opus-4.8\" (newest Opus tier).",
"type": "string"
},
"outputSchema": {
"description": "JSON Schema the agent's final output must conform to; enables structured output.",
"type": "object"
},
"proxyCountryCode": {
"description": "Country code for the browser proxy (e.g. \"US\", \"DE\", \"JP\"). Defaults to \"US\".",
"type": "string"
},
"sessionId": {
"description": "Dispatch the task to an existing idle session instead of creating a new one.",
"type": "string"
},
"task": {
"description": "Natural-language instructions for the agent to execute in a remote browser.",
"type": "string"
}
},
"required": [
"task"
],
"type": "object"
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
},
"method": {
"enum": [
"POST",
"PUT",
"PATCH"
],
"type": "string"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method",
"bodyType",
"body"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"properties": {
"id": {
"description": "Session id — poll GET /api/v3/sessions/{session_id} for progress.",
"type": "string"
},
"isTaskSuccessful": {
"description": "Agent self-assessment of whether the task succeeded.",
"type": "boolean"
},
"liveUrl": {
"description": "Watch the browser session live.",
"type": "string"
},
"output": {
"description": "Agent's final result: free-form text, or structured data when outputSchema was requested."
},
"recordingUrls": {
"description": "Video recordings of the session when enableRecording was set.",
"items": {
"type": "string"
},
"type": "array"
},
"status": {
"enum": [
"created",
"idle",
"running",
"stopped",
"timed_out",
"error"
],
"type": "string"
},
"stepCount": {
"type": "integer"
}
},
"required": [
"id",
"status"
],
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}
},
"builder-code": {
"info": {
"a": "bc_lpc23z15"
},
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"a": {
"description": "App builder code",
"pattern": "^[a-z0-9_]{1,32}$",
"type": "string"
},
"s": {
"description": "Service builder codes",
"items": {
"pattern": "^[a-z0-9_]{1,32}$",
"type": "string"
},
"type": "array"
},
"w": {
"description": "Wallet builder code",
"pattern": "^[a-z0-9_]{1,32}$",
"type": "string"
}
},
"type": "object"
}
}
}Use it
curl
curl "https://x402.api.browser-use.com/api/v3/sessions" # -> 402 Payment Required, accepts[] lists how to pay # retry with a PAYMENT-SIGNATURE (or PAYMENT header) once paid
JavaScript
const res = await fetch("https://x402.api.browser-use.com/api/v3/sessions");
if (res.status === 402) {
const { accepts } = await res.json();
// pay one of accepts[] via an x402 client, then retry with the payment header
}Python
import httpx
res = httpx.get("https://x402.api.browser-use.com/api/v3/sessions")
if res.status_code == 402:
accepts = res.json()["accepts"]
# pay one of accepts[] via an x402 client, then retry with the payment headerMachine-readable
Everything on this page is also available as clean JSON at /resources/1309.json, and this resource appears in /discovery/resources and /discovery/search.