> ## Documentation Index
> Fetch the complete documentation index at: https://browseruse-0aece648-codex-clarify-browser-infrastructure.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Browser Infrastructure quickstart

> Control hosted cloud browser infrastructure for AI agents through the SDK, REST, or CDP.

Browser Infrastructure is hosted cloud browser infrastructure for AI agents,
controlled through the SDK, REST, or CDP. A browser's **CDP URL** is a WebSocket
endpoint for remotely controlling Chrome.

<img src="https://mintcdn.com/browseruse-0aece648-codex-clarify-browser-infrastructure/PTCcP_2-bFh_ZaXp/cloud/images/browser-cdp-light.svg?fit=max&auto=format&n=PTCcP_2-bFh_ZaXp&q=85&s=fc23c1d8249c7c8644daad152e894565" alt="Your code using a CDP URL to connect to and control a cloud browser that accesses the web" noZoom className="block dark:hidden" width="1200" height="400" data-path="cloud/images/browser-cdp-light.svg" />

<img src="https://mintcdn.com/browseruse-0aece648-codex-clarify-browser-infrastructure/PTCcP_2-bFh_ZaXp/cloud/images/browser-cdp-dark.svg?fit=max&auto=format&n=PTCcP_2-bFh_ZaXp&q=85&s=f587c75807f27fbe76c6eb97eee92299" alt="Your code using a CDP URL to connect to and control a cloud browser that accesses the web" noZoom className="hidden dark:block" width="1200" height="400" data-path="cloud/images/browser-cdp-dark.svg" />

Get an [API key](https://cloud.browser-use.com/settings?tab=api-keys\&new=1) and
export it:

```bash theme={null}
export BROWSER_USE_API_KEY=your_key
```

## Install the SDK

Skip this step if you use curl.

<CodeGroup>
  ```bash Python theme={null}
  pip install --upgrade browser-use-sdk
  ```

  ```bash TypeScript theme={null}
  npm install browser-use-sdk@latest
  ```
</CodeGroup>

## Launch a browser

The examples use the V3 SDK browser resource and the V4 REST browser endpoint.
See the [developer overview](https://browser-use.com/developers) when choosing
an interface for a new integration.

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

  client = BrowserUse()
  browser = client.browsers.create(proxy_country_code="us")
  print(browser.cdp_url)

  # When finished:
  client.browsers.stop(browser.id)
  ```

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

  const client = new BrowserUse();
  const browser = await client.browsers.create({ proxyCountryCode: "us" });
  console.log(browser.cdpUrl);

  // When finished:
  await client.browsers.stop(browser.id);
  ```

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

  export BROWSER_SESSION_ID=$(echo "$browser" | jq -r .id)
  export BROWSER_USE_CDP_URL=$(echo "$browser" | jq -r .cdpUrl)
  echo "$BROWSER_USE_CDP_URL"

  # When finished:
  curl -X PATCH \
    "https://api.browser-use.com/api/v4/browsers/$BROWSER_SESSION_ID" \
    -H "X-Browser-Use-API-Key: $BROWSER_USE_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{"action":"stop"}'
  ```
</CodeGroup>

<Warning>
  `browser.close()`, disconnecting CDP, or `client.close()` does not stop the
  managed browser. Use `client.browsers.stop(browser.id)` or call
  `PATCH /api/v4/browsers/{id}` with `{"action":"stop"}`.
</Warning>

<CardGroup cols={2}>
  <Card title="Connect over CDP" icon="code" href="/cloud/browser/playwright-puppeteer-selenium">
    Use the CDP URL with Playwright or Puppeteer.
  </Card>

  <Card title="Browser settings" icon="sliders" href="/cloud/api-v4/browsers/create-browser-session">
    Configure proxies, screen size, recording, and timeout.
  </Card>
</CardGroup>
