Skip to content
Gauge

ax-check.com

Browser Use

browser-use.com

ax-check.com

Checked 18 September 2026

B

84/100

Agents need your login

Agents can install, connect, and price browser-use.com fast.

21 of 23 checks passed: quickstart, SDKs, API, MCP, and CLI all resolve, and pricing is posted openly with units and rates.

2 fixes to start with

Concrete changes, backed by what we found.

Onboarding

Give agents a clear login handoff and a way to resume setup.

Agents cannot progress through onboarding without human help. Provide an agent-accessible path through authentication and setup.

Docs

Return Markdown when clients request text/markdown.

Homepage returned text/html even when text/markdown was requested; no Markdown representation served.

Recorded coding sessions

Same task, 3 models, no browser-use.com account. Recorded 18 September 2026 on Pi.

3 recorded · 2m 56s

2m 56s · recorded

Session findings

Select a finding to see it in context.

piv0.84.2
modelQwen 3.8 Maxcwd/sandbox/repo
Help me build a simple example using Browser Use. Tell me how pricing works, and briefly tell me whether this product will be easy for you to manage. Let me know if you get blocked. If this product has no developer workflow you can act on, say so plainly and stop. Stay light: use the hosted product through its SDK or API. Do not start local service stacks or wait for long-running commands; if the quickstart requires either, say so plainly and stop.
Thinking…

The user is asking about "Browser Use" — a product. Browser Use is an open-source Python library for browser automation by AI agents, and it also has a cloud product with an API. Let me check the environment — is there internet access? Let me check the repository and see what's available.

First, I'll check the sandbox.

$ ls -la /sandbox/repo; python3 --version; pip --version 2>/dev/null | head -1{"content":[{"text":"total 16\ndrwxr-xr-x 3 root root 4096 Sep 18 08:00 .\ndrwxr-xr-x 7 root root 4096 Sep 18 21:28 ..\ndrwxr-xr-x 8 root root 4096 Sep 18 08:00…ctrl+o
{"content":[{"text":"total 16\ndrwxr-xr-x 3 root root 4096 Sep 18 08:00 .\ndrwxr-xr-x 7 root root 4096 Sep 18 21:28 ..\ndrwxr-xr-x 8 root root 4096 Sep 18 08:00 .git\n-rw-r--r-- 1 root root  408 Sep 18 08:00 .gitignore\nPython 3.12.3\npip 26.2.1 from /opt/freestyle/python/lib/python3.12/site-packages/pip (python 3.12)\n","type":"text"}]}
$ curl -sS -m 10 -o /dev/null -w "%{http_code}\n" https://pypi.org/simple/ ; curl -sS -m 10 -o /dev/null -w "%{http_code}\n" https://docs.browser-use.com 2>&1 | tail -2{"content":[{"text":"curl: (28) Operation timed out after 10001 milliseconds with 1192833 out of 46202473 bytes received\n200\n308\n","type":"text"}]}
Thinking…

The network is functioning (slow but working). The documentation for browser-use.com is accessible. Let me check the cloud SDK quickstart documentation and pricing. Browser Use Cloud is at cloud.browser-use.com, and the docs are at docs.browser-use.com/cloud/quickstart or somewhere similar. Let me try fetching it.

Network works. Let me check the Browser Use cloud docs for the SDK quickstart and pricing.

$ curl -sSL -m 30 https://docs.browser-use.com/cloud/quickstart 2>/dev/null | python3 -c "import sys,html,re; t=sys.stdin.read(); t=re.sub(r'<script.*?</script>','',t,flags=re.S); t=re.sub(r'<style.*?</…{"content":[{"text":" Quick start - Browser Use Documentation Index Fetch the complete documentation index at: /llms.txt Use this file to discover all available…ctrl+o
curl -sSL -m 30 https://docs.browser-use.com/cloud/quickstart 2>/dev/null | python3 -c "import sys,html,re; t=sys.stdin.read(); t=re.sub(r'<script.*?</script>','',t,flags=re.S); t=re.sub(r'<style.*?</style>','',t,flags=re.S); t=re.sub(r'<[^>]+>',' ',t); print(html.unescape(re.sub(r'\s+',' ',t))[:4000])"

{"content":[{"text":" Quick start - Browser Use Documentation Index Fetch the complete documentation index at: /llms.txt Use this file to discover all available pages before exploring further. Skip to main content Browser Use home page Cloud Search... ⌘ K Ask Assistant ⌘ I GitHub Discord Dashboard Dashboard Search... Navigation Get Started Quick start Cloud SDK API v4 API v3 API v2 Get Started Quick start Which product? Choosing an Agent Prompt for Vibecoders Pillars Agent Browser More Integrations Tutorials Concurrency and limits EU deployment Billing and credits iMessage Troubleshooting FAQ Legacy (v2) On this page Install the SDK Run Browser Use Agents Use Browser Infrastructure Get Started Quick start Copy page Copy page Run a hosted agent or launch a cloud browser. Copy page Copy page Browser Use Agents Give an agent a task and get the result. Browser Infrastructure Launch a cloud browser and connect to it from your code. Both Cloud paths use API V4. Choose whether Browser Use drives the browser or your Playwright/Puppeteer code connects directly over CDP. For a local agent, use the open-source library . Get an API key and export it: export BROWSER_USE_API_KEY = your_key ​ Install the SDK Use Python 3.10 or newer for the Python SDK. Skip installation if you use curl. Python TypeScript pip install --upgrade browser-use-sdk playwright npm install browser-use-sdk@latest puppeteer-core ​ Run Browser Use Agents Python TypeScript curl from browser_use_sdk.v4 import BrowserUse with BrowserUse() as client: run = client.runs.create( \"Find the top Hacker News story\" ) result = client.runs.wait_for_completion(run.id) print (result.result) import { BrowserUse } from \"browser-use-sdk/v4\" ; const client = new BrowserUse (); const run = await client . runs . create ({ task: \"Find the top Hacker News story\" , }); const result = await client . runs . waitForCompletion ( run . id ); console . log ( result . result ); curl https://api.browser-use.com/api/v4/runs \\ -H \"X-Browser-Use-API-Key: $BROWSER_USE_API_KEY \" \\ -H \"Content-Type: application/json\" \\ -d '{\"task\":\"Find the top Hacker News story\"}' ​ Use Browser Infrastructure These examples connect to the managed browser’s existing context and stop it in finally , including when connecting or navigating fails. Python TypeScript from browser_use_sdk.v4 import BrowserUse from playwright.sync_api import sync_playwright with BrowserUse() as client: session = client.browsers.create( proxy_country_code = \"us\" ) try : if not session.cdp_url: raise RuntimeError ( \"The browser did not return a CDP URL\" ) with sync_playwright() as p: browser = p.chromium.connect_over_cdp(session.cdp_url) context = browser.contexts[ 0 ] page = context.pages[ 0 ] if context.pages else context.new_page() page.goto( \"https://example.com\" ) print (page.title()) finally : client.browsers.stop(session.id) import { BrowserUse } from \"browser-use-sdk/v4\" ; import puppeteer from \"puppeteer-core\" ; const client = new BrowserUse (); const session = await client . browsers . create ({ proxyCountryCode: \"us\" }); try { if ( ! session . cdpUrl ) throw new Error ( \"The browser did not return a CDP URL\" ); const browser = await puppeteer . connect ({ browserWSEndpoint: session . cdpUrl }); try { const context = browser . defaultBrowserContext (); const page = ( await context . pages ())[ 0 ] ?? await context . newPage (); await page . goto ( \"https://example.com\" ); console . log ( await page . title ()); } finally { await browser . disconnect (); } } finally { await client . browsers . stop ( session . id ); } Disconnecting CDP does not stop the managed browser. Use client.browsers.stop(session.id) as above, or call PATCH /api/v4/browsers/{id} with {\"action\":\"stop\"} . For curl and additional connection options, follow the Browser Infrastructure quickstart . Copy for an LLM Give your coding agent the compact API V4 context. Was this page helpful? Yes No Which Browser Use do I need? Next x github linkedin Powered by This documentation is built and hosted \n","type":"text"}]}
$ curl -sSL -m 30 "https://pypi.org/pypi/browser-use-sdk/json" 2>/dev/null | python3 -c "import sys,json; d=json.load(sys.stdin); i=d['info']; print(i['name'], i['version']); print(i['summary']); print(…{"content":[{"text":"browser-use-sdk 3.11.3\nPython SDK for the Browser Use cloud API\n# browser-use-sdk\n\nOfficial Python SDK for [Browser Use Cloud](https://…ctrl+o
curl -sSL -m 30 "https://pypi.org/pypi/browser-use-sdk/json" 2>/dev/null | python3 -c "import sys,json; d=json.load(sys.stdin); i=d['info']; print(i['name'], i['version']); print(i['summary']); print((i['description'] or '')[:1500])" || echo "SDK package not found"

{"content":[{"text":"browser-use-sdk 3.11.3\nPython SDK for the Browser Use cloud API\n# browser-use-sdk\n\nOfficial Python SDK for [Browser Use Cloud](https://browser-use.com).\n\n## Install\n\n```bash\nuv add browser-use-sdk\n```\n\n## Quick Start\n\nGet your API key at [cloud.browser-use.com/settings](https://cloud.browser-use.com/settings?tab=api-keys&new=1).\n\n```bash\nexport BROWSER_USE_API_KEY=your_key\n```\n\n```python\nfrom browser_use_sdk.v4 import BrowserUse\n\nwith BrowserUse() as client:\n    run = client.runs.create(\"Find the top 3 trending repos on GitHub today\")\n    result = client.runs.wait_for_completion(run.id)\n    print(result.result)\n```\n\nThis is the current **Browser Use Agents** interface. Browser Infrastructure's\nbrowser-management resource currently lives in the explicit `browser_use_sdk.v3`\nnamespace; see the [browser quickstart](https://docs.browser-use.com/cloud/browser/quickstart).\n\n## v3 Bring Your Own LLM Key\n\nAdd your provider API key in Browser Use project settings, then enable BYOK for v3 agent runs:\n\n```python\nfrom browser_use_sdk.v3 import BrowserUse\n\nclient = BrowserUse(use_own_key=True)\nresult = client.run(\"Find the top 3 trending repos on GitHub today\")\nprint(result.output)\n```\n\n## Docs\n\n[docs.browser-use.com](https://docs.browser-use.com)\n\n## License\n\nMIT\n\n","type":"text"}]}
Thinking…

Alright, next up is the pricing page. Let me try to fetch the billing/credits documentation page.

Good — the SDK quickstart is clean (pure hosted API, no local services). Now let me grab the pricing/billing details.

$ curl -sSL -m 30 https://docs.browser-use.com/cloud/billing 2>/dev/null | python3 -c "import sys,html,re; t=sys.stdin.read(); t=re.sub(r'<script.*?</script>','',t,flags=re.S); t=re.sub(r'<style.*?</sty…{"content":[{"text":" \n","type":"text"}]}ctrl+o
curl -sSL -m 30 https://docs.browser-use.com/cloud/billing 2>/dev/null | python3 -c "import sys,html,re; t=sys.stdin.read(); t=re.sub(r'<script.*?</script>','',t,flags=re.S); t=re.sub(r'<style.*?</style>','',t,flags=re.S); t=re.sub(r'<[^>]+>',' ',t); print(html.unescape(re.sub(r'\s+',' ',t))[:5000])"

Thinking…

It's empty. The page might be at a different URL. Check /llms.txt to find the path for the billing page.

$ curl -sSL -m 30 https://docs.browser-use.com/llms.txt 2>/dev/null | grep -iE "billing|pricing|credit"{"content":[{"text":"> Cloud concurrency and HTTP request rate are separate. Read GET /api/v2/billing/account for the key’s projectId, concurrentSessionLimit, a…ctrl+o
{"content":[{"text":"> Cloud concurrency and HTTP request rate are separate. Read GET /api/v2/billing/account for the key’s projectId, concurrentSessionLimit, activeSessionCount, and credit balance, including when using V4. Keys in one project share capacity and credits; rateLimit is a legacy concurrency alias, not requests per second.\n> Keep the highest applicable existing, legacy-plan, and spend-tier concurrency grant. Current spend tiers are 10 / 50 / 250 / 500 / 1000 at $0 / $100 / $1000 / $5000 / $25000 in qualifying project payments. Legacy or externally billed projects can follow different billing paths; trust the account limit. See https://docs.browser-use.com/cloud/guides/concurrency.md.\n> Cloud is pay as you go; do not tell customers to buy a new subscription to use custom proxies or supported provider BYOK. Usage funding and model eligibility still apply. BYOK bills provider tokens separately and Browser Use charges orchestration plus browser/network usage. See https://docs.browser-use.com/cloud/guides/billing.md.\n> Signup credits are a one-time grant; purchased top-up credits do not expire. Check the API key’s project before diagnosing missing credits. API-key monthly spending caps are soft limits, not a strict prepaid wallet; concurrent or already-running work can exceed them. Auto recharge has separate trigger and purchase amounts and can charge immediately when enabled below the threshold. Use https://browser-use.com/pricing for current rates.\n> For failed requests, use https://docs.browser-use.com/cloud/guides/troubleshooting.md. Inspect the full error and project before retrying or adding credits. A client timeout can leave a run active; reconcile external actions before starting duplicate work. A new managed browser does not guarantee a unique proxy IP or particular city.\n- [Prompt for Vibecoders](https://docs.browser-use.com/cloud/vibecoding.md): Current Cloud documentation, API schemas, concurrency, and billing guidance for AI coding agents.\n- [Models](https://docs.browser-use.com/cloud/agent/models.md): Choose a V4 model and understand its token pricing.\n- [EU deployment](https://docs.browser-use.com/cloud/eu-deployment.md): Run agents and browsers in Frankfurt with a regional API key and shared billing.\n- [Billing and credits](https://docs.browser-use.com/cloud/guides/billing.md): Pay-as-you-go credits, project balances, BYOK charges, auto recharge, and API-key spending caps.\n- [Get Account Billing](https://docs.browser-use.com/cloud/api-v3/billing/get-account-billing.md): Get authenticated account information including credit balance and account details.\n- [X402 Balance](https://docs.browser-use.com/cloud/api-v3/x402/x402-balance.md): Read a wallet-derived project's credit balance auth by off-chain wallet signature\n- [Get Account Billing](https://docs.browser-use.com/cloud/api-v2/billing/get-account-billing.md): Get authenticated account information including credit balance and account details.\n","type":"text"}]}
Thinking…

Let's fetch billing.md and, depending on the situation, also fetch pricing from browser-use.com/pricing.

$ curl -sSL -m 30 https://docs.browser-use.com/cloud/guides/billing.md 2>/dev/null | head -c 5000{"content":[{"text":"> ## Documentation Index\n> Fetch the complete documentation index at: https://docs.browser-use.com/llms.txt\n> Use this file to discover a…ctrl+o
{"content":[{"text":"> ## Documentation Index\n> Fetch the complete documentation index at: https://docs.browser-use.com/llms.txt\n> Use this file to discover all available pages before exploring further.\n\n> ## Agent Instructions\n> Use https://docs.browser-use.com/llms.txt and its linked .md pages for current documentation. The managed full bundle is https://docs.browser-use.com/.well-known/llms-full.txt and can be cached for up to 24 hours. Do not use the obsolete /cloud/llms*.txt or /open-source/llms*.txt static exports.\n> Choose Cloud API V4 for new agent integrations; V2 is the lower-cost option for simple tasks. Keep V3 examples explicitly versioned. The open-source browser-use library and hosted browser-use-sdk have different APIs.\n> Cloud authentication uses X-Browser-Use-API-Key, without a Bearer prefix. Install or upgrade browser-use-sdk and use its explicit v4 import for V4. Check the published OpenAPI reference for request fields; do not invent SDK support for new fields.\n> Cloud concurrency and HTTP request rate are separate. Read GET /api/v2/billing/account for the key’s projectId, concurrentSessionLimit, activeSessionCount, and credit balance, including when using V4. Keys in one project share capacity and credits; rateLimit is a legacy concurrency alias, not requests per second.\n> Keep the highest applicable existing, legacy-plan, and spend-tier concurrency grant. Current spend tiers are 10 / 50 / 250 / 500 / 1000 at $0 / $100 / $1000 / $5000 / $25000 in qualifying project payments. Legacy or externally billed projects can follow different billing paths; trust the account limit. See https://docs.browser-use.com/cloud/guides/concurrency.md.\n> HTTP rate limits have two layers. Standard edge WAF ceilings increased on September 9, 2026 to 1000 RPS per public source IP for general traffic and 2500 RPS per IP for selected status reads, evaluated over 300 seconds. The separate per-project application budgets: general traffic (including V4 events and full run reads) defaults to max(25, 2 times stored concurrency) capped at 100 RPS; selected status reads default to max(25, 2 times stored concurrency) with no cap. The two are counted independently. Project overrides and account-specific edge rules can differ. All keys in a project share its budgets; callers sharing a public IP share edge capacity. See https://docs.browser-use.com/cloud/guides/concurrency.md.\n> The project limiter uses five-second windows: X-RateLimit-Limit=125 means 125 requests per window (25 RPS), not 125 RPS. Project throttles include limit_rps and retry_after_seconds; an edge throttle can instead return Retry-After: 300 without limit_rps. Honor the returned Retry-After. Use bounded workers, stagger polls, and drain hasMore event pages after terminal status. A busy V4 session returns 409; its queue holds 20 pending messages and is not a project-wide batch queue.\n> A completed run or closed CDP connection does not immediately stop its cloud browser. Stop unneeded owned browsers with PATCH /api/v4/browsers/{id} and {\"action\":\"stop\"}. A client wait timeout does not cancel the server-side run.\n> Cloud is pay as you go; do not tell customers to buy a new subscription to use custom proxies or supported provider BYOK. Usage funding and model eligibility still apply. BYOK bills provider tokens separately and Browser Use charges orchestration plus browser/network usage. See https://docs.browser-use.com/cloud/guides/billing.md.\n> Signup credits are a one-time grant; purchased top-up credits do not expire. Check the API key’s project before diagnosing missing credits. API-key monthly spending caps are soft limits, not a strict prepaid wallet; concurrent or already-running work can exceed them. Auto recharge has separate trigger and purchase amounts and can charge immediately when enabled below the threshold. Use https://browser-use.com/pricing for current rates.\n> Box and Bux are retired. Do not recommend their SDKs, sandbox quotas, or subscription plans. Use the Cloud Agent or Browser Infrastructure guides.\n> A V4 session holds conversation history, a workspace holds files, and a profile holds browser state. These IDs and V3/V4 workspace namespaces are not interchangeable. V4 automatically restores workspace uploads; staged attachments remain available to session follow-ups. Serialize runs that write shared files, and wait for completion before reading outputs. See https://docs.browser-use.com/cloud/agent/workspaces.md.\n> API browser recording defaults to off. Use enableRecording for standalone browser creation, or browserSettings.record for an agent run. Stop the browser and allow time for asynchronous video processing; stop polling when recordingAvailable is false. Live preview is for an active browser. Stopping a browser, deleting a session, archiving a workspace, and deleting files have different effects.\n> Use model-specific reasoning values. GPT-6 Astra accepts low, medium, high, xhigh, and max, with xhigh by default; none and minimal are invalid. Use the","type":"text"}]}
$ curl -sSL -m 30 https://browser-use.com/pricing 2>/dev/null | python3 -c "import sys,html,re; t=sys.stdin.read(); t=re.sub(r'<script.*?</script>','',t,flags=re.S); t=re.sub(r'<style.*?</style>','',t,f…{"content":[{"text":" Pricing - Browser Use Browser Use Agents Browsers Showcase Resources Pricing 115k Log in Start for free Start free. Pay as you go. Credits…ctrl+o
curl -sSL -m 30 https://browser-use.com/pricing 2>/dev/null | python3 -c "import sys,html,re; t=sys.stdin.read(); t=re.sub(r'<script.*?</script>','',t,flags=re.S); t=re.sub(r'<style.*?</style>','',t,flags=re.S); t=re.sub(r'<[^>]+>',' ',t); print(html.unescape(re.sub(r'\s+',' ',t))[:3000])"

{"content":[{"text":" Pricing - Browser Use Browser Use Agents Browsers Showcase Resources Pricing 115k Log in Start for free Start free. Pay as you go. Credits from $ 5 . No subscription. No expiry. Add credits Browsers $0.02 / hour For your own agents and automation. High-quality residential proxies $5 / GB Direct / your own proxy $0.20 / GB Browser time + traffic. Proxies are on by default. Start free Browser Use Agents Model cost + 20 % Give us a task. Our AI runs it for you. $1 in model tokens + 20 % service fee → $ 1.20 Plus browser time and traffic at the browser rates. All model prices ↓ Add credits Enterprise Custom For teams running at scale. Custom concurrency Custom SLAs Custom data policy HIPAA support and zero data retention. Email us ↗ $ 15 free credits for eligible signups SOC 2 Type II compliant → Overview Models Concurrency Billing Model prices API V4 · USD per 1M tokens. Our 20 % fee is already included. Model prices in US dollars per one million tokens Model Input Cached input Output Claude Opus 5 $6.00 $0.60 $30.00 Claude Sonnet 5 $2.40 $0.24 $12.00 Grok 4.5 $2.40 $0.36 $7.20 GPT-6 Astra $12.00 $1.20 $60.00 GPT-5.6 $6.00 $0.60 $36.00 GPT-5.6 Luna $0.24 $0.024 $1.44 Gemini 3.6 Flash $1.80 $0.18 $9.00 MiniMax M3 $0.36 $0.072 $1.44 Claude Opus 5 Input $6.00 Cached input $0.60 Output $30.00 Claude Sonnet 5 Input $2.40 Cached input $0.24 Output $12.00 Grok 4.5 Input $2.40 Cached input $0.36 Output $7.20 GPT-6 Astra Input $12.00 Cached input $1.20 Output $60.00 GPT-5.6 Input $6.00 Cached input $0.60 Output $36.00 GPT-5.6 Luna Input $0.24 Cached input $0.024 Output $1.44 Gemini 3.6 Flash Input $1.80 Cached input $0.18 Output $9.00 MiniMax M3 Input $0.36 Cached input $0.072 Output $1.44 Example: $1 in model tokens + 20 % service fee → $ 1.20 . Browser time and traffic are extra. Your own key: pay your provider directly. Browser Use charges 20 % of published token rates, including cached rates, plus browser time and traffic. Provider-specific cache-write multipliers apply. Concurrency limits Start with 10 concurrent sessions. Agents and browsers share one project limit. Shared agent and browser concurrency by lifetime spend Minimum lifetime spend Concurrent sessions $ 0 10 $ 200 50 $ 1,000 250 $ 5,000 500 $ 25,000 1,000 Successful USD payments per project, net of refunds. Disputed payments and free credits don’t count. Your limit never goes down. Billing details Billing terms and usage charges in US dollars Minimum top-up $ 5 · unlocks every model Credit expiry Never Free credits $ 15 once per person. Eligible Google, GitHub or Microsoft signups. No card required. Browser billing Rounded up to whole minutes. 1-minute minimum. High-quality residential proxies $5 / GB · on by default. Routes traffic through another IP. Direct / your own proxy $0.20 / GB instead. Your proxy provider may charge separately. Legacy subscriptions No subscription plans are offered. Existing subscribers can manage billing ↗ Custom model API Use our model with your own agent. Price\n","type":"text"}]}
Thinking…

I have all the information I need. Next, I'll create the sample. Can't actually run agents without an API key. Check whether BROWSER_USE_API_KEY exists in the environment variables.

I have everything I need. Let me check whether an API key is available so I can decide how far to take the example.

$ env | grep -iE "browser_use|browseruse" || echo "no API key in env"{"content":[{"text":"no API key in env\n","type":"text"}]}
Thinking…

Since I don't have an API key, I can't actually run the agent, but I can still create a sample file and verify that the SDK can be installed. Should I install browser-use-sdk to verify it? The user said "keep it light: use the hosted product via SDK or API" and "don't start up local service stacks or wait on long-running commands." Installing the SDK with pip is relatively fast, but pip was slow (downloading from PyPI timed out at about 10 seconds, it was a large index). Let me try installing with a timeout — it's a lightweight operation and can validate the sample. The browser-use-sdk package should be small.

I'll create a sample file and try installing. If the install takes too long, I'll stop there.

No API key in the environment, so I can't execute a live run — but I can build and validate the example against the SDK. Let me write the example and install the SDK (small package, no services).

$ cd /sandbox/repo && timeout 120 pip install -q browser-use-sdk 2>&1 | tail -3; python3 -c "from browser_use_sdk.v4 import BrowserUse; print('SDK import OK')"{"content":[{"text":"SDK import OK\n","type":"text"}]}
Thinking…

The SDK is already installed and imports work fine. I'll create sample files: agent examples and browser infra examples, plus a README with pricing info. Keep it simple — around 1 sample file and a README.

SDK installs cleanly. Writing the example now:

write /sandbox/repo/example_agent.py{"content":[{"text":"Successfully wrote 957 bytes to /sandbox/repo/example_agent.py","type":"text"}]}
write /sandbox/repo/example_browser.py{"content":[{"text":"Successfully wrote 1534 bytes to /sandbox/repo/example_browser.py","type":"text"}]}
Thinking…

Verify the syntax of both files, and confirm that the SDK method names exist (runs.create, runs.wait_for_completion, browsers.create, browsers.stop). Let's introspect the SDK and do a sanity check.

Quick validation of the scripts and the SDK method names I used:

$ cd /sandbox/repo && python3 -m py_compile example_agent.py example_browser.py && echo "syntax OK" && python3 - <<'EOF'{"content":[{"text":"syntax OK\nruns.create: True\nruns.wait_for_completion: True\nbrowsers.create: True\nbrowsers.stop: True\n","type":"text"}]}ctrl+o
cd /sandbox/repo && python3 -m py_compile example_agent.py example_browser.py && echo "syntax OK" && python3 - <<'EOF'
from browser_use_sdk.v4 import BrowserUse
import browser_use_sdk.v4 as m
c = BrowserUse(api_key="dummy")
print("runs.create:", callable(getattr(c.runs, "create", None)))
print("runs.wait_for_completion:", callable(getattr(c.runs, "wait_for_completion", None)))
print("browsers.create:", callable(getattr(c.browsers, "create", None)))
print("browsers.stop:", callable(getattr(c.browsers, "stop", None)))
EOF

Thinking…

All verified. Now I'll put together the answer: what was built, the pricing mechanism, ease of management, blockers. Note: since there's no API key, I can't do a live run—that's the only blocker, but it's as expected (key signup is required). Everything else worked normally.

Done. Everything is validated except a live run, which needs your API key.

What I built

Two files in /sandbox/repo, both using the hosted Browser Use Cloud (API V4) via browser-use-sdk — no local services, no long-running processes:

  • example_agent.py — give the hosted agent a plain-English task (runs.createruns.wait_for_completion → print result)
  • example_browser.py — launch a managed cloud browser and drive it with your own Playwright code over CDP, with an explicit browsers.stop() in finally (billed per minute until stopped)

I installed the SDK and verified all four SDK methods exist and the scripts compile. To actually run them: get a key at cloud.browser-use.com/settings, export BROWSER_USE_API_KEY=..., then python example_agent.py. (The browser example additionally needs pip install playwright && playwright install chromium.)

How pricing works

Pay-as-you-go credits, no subscription, no expiry. Minimum top-up $5; $15 one-time free credits for eligible Google/GitHub/Microsoft signups.

  • Agents: model token cost + 20% service fee (e.g., $1 of tokens → $1.20), plus browser time and traffic. Model rates per 1M tokens range from ~$0.36 input (MiniMax M3) to $12 (GPT-6 Astra), with the 20% fee already baked into published rates.
  • Browsers (BYO code): $0.02/hour, rounded up to whole minutes, 1-minute minimum.
  • Traffic: residential proxies $5/GB (on by default) or $0.20/GB direct/your own proxy.
  • BYOK: pay your model provider directly; Browser Use charges 20% of published token rates plus browser/traffic.
  • Concurrency: starts at 10 concurrent sessions (agents + browsers share the limit), scaling with lifetime spend (50 at $200 … 1,000 at $25,000). Spending caps are soft limits, and auto-recharge can trigger charges — worth knowing if you automate this.

Is this easy for me to manage?

Yes, unusually so. The docs are explicitly agent-friendly (/llms.txt index, full .md bundle, a "Prompt for Vibecoders" page), the SDK is thin and predictable, and the whole workflow is stateless HTTP calls I can script and poll. The main gotchas to keep in mind: cloud browsers keep billing after CDP disconnect unless you stop them explicitly, and a client-side timeout doesn't cancel a server-side run.

Blockers

Only one, and it's expected: no API key in this environment, so I couldn't execute a live run end-to-end. Network, docs, PyPI, and the SDK all worked; nothing blocked me otherwise.

AX Fundamentals

23 checks. Open an area for details.

This check is a quick preview. Test more tasks and models with Gauge Agents.

Test your product with Gauge Agents

AX Check by Gauge