> ## Documentation Index
> Fetch the complete documentation index at: https://docs.browser-use.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> 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.
> 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.
> 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.
> 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.
> 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.
> 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.
> 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.
> 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.
> 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.
> 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.
> Box and Bux are retired. Do not recommend their SDKs, sandbox quotas, or subscription plans. Use the Cloud Agent or Browser Infrastructure guides.
> 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.
> 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.
> 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 public REST schema when installed SDK types lag new fields. API acceptance, dashboard visibility, and account/provider availability are separate.
> For open-source browser-use, is_done only reports a terminal done action. is_successful is the agent-reported outcome; verify important external actions independently. Cloud timeout, API client timeout, model timeout, and task completion are separate concepts.
> 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.

# EU deployment

> Run agents and browsers in Frankfurt with a regional API key and shared billing.

Browser Use's EU deployment runs agents and browsers in Frankfurt, Germany.
It uses the same Cloud codebase and V4 API as the US deployment, with separate
workload storage and a smaller set of supported features.

Use your existing account and project. Create an EU API key and point your
client at the EU endpoint. You do not need to bring your own model key:
managed **GPT-5.6 Luna** and **GPT-5.6 Sol** are available.

|                                    | EU                                                           | US                                                     |
| ---------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------ |
| Dashboard                          | [cloud.eu.browser-use.com](https://cloud.eu.browser-use.com) | [cloud.browser-use.com](https://cloud.browser-use.com) |
| V4 API base URL                    | `https://api.eu.browser-use.com/api/v4`                      | `https://api.browser-use.com/api/v4`                   |
| API key                            | Create in the EU dashboard                                   | Create in the US dashboard                             |
| Account and billing                | Shared account, project membership and credit balance        | Shared account, project membership and credit balance  |
| Runs, sessions, files and profiles | Separate EU resources                                        | Separate US resources                                  |

## Start in the dashboard

1. Open the [EU dashboard](https://cloud.eu.browser-use.com) and sign in with
   your existing account. You can also use **Configuration → Organization →
   EU deployment → Switch to EU deployment** in the US dashboard.
2. Select your project. The same project's credit balance funds US and EU usage.
3. Start an agent with Luna or Sol, or open **Browsers** to launch a browser.
4. For API access, create a key in the EU dashboard's **API Keys** section.

Each dashboard has its own sign-in session, so switching may ask you to sign
in again. Switching does not move or copy your existing US profiles,
workspaces, files, sessions or running browsers. Create those resources again
in EU if needed; use the IDs returned by the EU API.

## Send an agent through the API

Set an EU key in your application environment. Keep it on your server:

```bash theme={null}
export BROWSER_USE_API_KEY="your_eu_api_key"
```

Install or upgrade `browser-use-sdk` for Python or TypeScript. Use the explicit
**V4 import** and set the base URL, including `/api/v4`:

<CodeGroup>
  ```python Python theme={null}
  from browser_use_sdk.v4 import BrowserUse

  with BrowserUse(base_url="https://api.eu.browser-use.com/api/v4") as client:
      run = client.runs.create(
          "Open https://example.com and report the page heading.",
          model="gpt-5.6-luna",
          browser_settings={"proxyCountryCode": "de"},
      )
      result = client.runs.wait_for_completion(run.id)
      print(result.status, result.result)
  ```

  ```typescript TypeScript theme={null}
  import { BrowserUse } from "browser-use-sdk/v4";

  const client = new BrowserUse({
    baseUrl: "https://api.eu.browser-use.com/api/v4",
  });
  const run = await client.runs.create({
    task: "Open https://example.com and report the page heading.",
    model: "gpt-5.6-luna",
    browserSettings: { proxyCountryCode: "de" },
  });
  const result = await client.runs.waitForCompletion(run.id);
  console.log(result.status, result.result);
  ```

  ```bash curl theme={null}
  curl --fail-with-body https://api.eu.browser-use.com/api/v4/runs \
    -H "X-Browser-Use-API-Key: $BROWSER_USE_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "task": "Open https://example.com and report the page heading.",
      "model": "gpt-5.6-luna",
      "browserSettings": {"proxyCountryCode": "de"}
    }'
  ```
</CodeGroup>

The REST call returns a run ID. Poll `GET /api/v4/runs/{id}/status` on the same
EU host until its status is `completed`, `failed` or `cancelled`, then read
`GET /api/v4/runs/{id}` for the result. To use Sol,
set `model` to `gpt-5.6-sol`. Luna is the default when the model is omitted.

The normal [session](/cloud/agent/sessions),
[workspace](/cloud/agent/workspaces) and
[event](/cloud/agent/observability) APIs work with the EU base URL. A client
wait timeout does not cancel a run; use the cancellation API when appropriate.

## Use a browser with your own automation

Create a browser on the EU endpoint, then connect Playwright or Puppeteer to
the returned `cdpUrl`:

```bash theme={null}
curl --fail-with-body https://api.eu.browser-use.com/api/v4/browsers \
  -H "X-Browser-Use-API-Key: $BROWSER_USE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"proxyCountryCode":"de"}'
```

Follow the [browser connection guide](/cloud/browser/playwright-puppeteer-selenium)
for connecting to the returned `cdpUrl`. That guide's API examples default to
the US: replace **every** `api.browser-use.com` host with
`api.eu.browser-use.com`, use your EU API key, and keep the API version path.
Replace its `"proxyCountryCode":"us"` with `"proxyCountryCode":"de"`.
Stop the browser on the EU endpoint when finished:

```bash theme={null}
curl --fail-with-body -X PATCH \
  "https://api.eu.browser-use.com/api/v4/browsers/YOUR_BROWSER_ID" \
  -H "X-Browser-Use-API-Key: $BROWSER_USE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"action":"stop"}'
```

Disconnecting CDP does not stop the cloud browser. When you run your own
automation, any page content your code reads also reaches the machine running
that code. Run that client in Europe if your requirements include its location.

## What stays in the EU

| Data or processing                                                                                    | Location and boundary                                                                                                         |
| ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| Agent execution and cloud browsers                                                                    | Frankfurt AWS infrastructure.                                                                                                 |
| Prompts, run history, screenshots, recordings, workspace uploads/downloads and saved browser profiles | EU database/object storage when retained. Profiles include saved browser state such as cookies.                               |
| Regional API keys and stored model keys                                                               | Regional EU storage. US API keys do not authenticate EU API requests.                                                         |
| Managed Luna/Sol model requests                                                                       | OpenRouter's EU gateway, restricted to Azure EU with provider fallback disabled and zero-data-retention routing required.     |
| Enabled application and browser-host logs                                                             | Frankfurt CloudWatch/host journals, forwarded to Datadog EU. Operational logs may contain identifiers, URLs or error details. |

### What is shared or can leave the EU

**Account administration and billing remain shared in the US.** This includes
identity, project membership, payments, credit balances and usage accounting.
An EU project is not a separate billing account.

**AWS security audit metadata currently also reaches the US.** CloudTrail can
record object filenames/paths, source IPs, timestamps, AWS identities and
project/session/profile identifiers in the shared US audit destination. The
inspected object-access records did not contain file bodies, screenshots or
prompts. Filenames themselves can contain sensitive information, so avoid
putting personal data in them. This deployment is not an all-metadata-EU-only
offering.

**External destinations follow their own locations and policies.** Browsers
can visit websites outside Europe. Your client receives API results and
downloads wherever it runs. A European proxy exit does not establish the
location of a website or all of a proxy provider's processing. You are
responsible for choosing suitable destinations, custom proxies and model
providers when bringing your own key. A customer OpenAI key uses the direct
OpenAI route, not the managed Azure EU route.

The dashboard uses Vercel and shared authentication. Its global edge and
vendor metadata processing should not be treated as an EU-only boundary. For
strict requirements, assess the API path and these exceptions with your
security team before sending sensitive data.

## Differences from the US deployment

* **Agents use V4.** Legacy V2/V3 agent endpoints are unavailable and return an
  error rather than sending work to the US. Browser/profile endpoints under
  `/api/v2`, `/api/v3` and `/api/v4` are supported; the version number alone
  does not determine availability. Use V4 for new integrations.
* **Managed models are Luna and Sol.** Other supported OpenAI models require
  a stored OpenAI key in the EU project. Anthropic, Gemini, DeepSeek and GLM
  agent models are unavailable on this deployment.
* **Marketplace and Vercel-managed billing projects are unavailable.** Use a
  project billed directly through Browser Use.
* **Managed proxy countries must be EU member states.** New browsers default
  to Germany (`de`); `us`, `gb` and `ch` are not accepted. Setting
  `proxyCountryCode` to `null` disables the managed proxy. Standalone browser
  custom proxies are unavailable; V4 agent custom proxies are customer-managed.
* **Automatic CAPTCHA solving and browser response caching are disabled.**
* **Some optional agent features are unavailable**, including AgentMail,
  connected integrations, external browser attachment, payment tools,
  schedules, webhooks, 1Password/secret bindings, judge evaluation and the hosted web-search tool.
  The browser can still navigate to search websites.
* **HIPAA/Bedrock-only projects are not supported in EU.** Project retention
  policies are separate from region selection. Switching regions does not
  enable zero data retention, erase previous US data, or establish HIPAA
  compliance. Contact support for a retention or compliance assessment.

## If a request fails

For `401`, check that you created the key in the EU dashboard and sent it to
`api.eu.browser-use.com` using `X-Browser-Use-API-Key` without a Bearer prefix.
For `404`, check whether you are calling a legacy agent endpoint or using a
resource ID from the other region. For `422`, read the response: it can identify
an unsupported model, feature or proxy country. EU errors do not automatically
retry the workload in the US.

Include the region, endpoint, run/browser ID and error message when contacting
support. Do not include API keys, cookies or sensitive task content.
