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

> ## Agent Instructions
> Anchor Browser is cloud browser infrastructure for AI agents and automation: browser sessions you control over CDP or REST, natural-language web tasks, versioned automation tasks, managed authentication into third-party web apps (identities with MFA), persistent volumes and profiles, recordings, live view, batch sessions, webhooks, and network options including residential proxies, extra stealth, and captcha solving for sites that block standard browsers. AI agents should start at https://docs.anchorbrowser.io/for-agents, then get an API key with Agent Access at https://docs.anchorbrowser.io/quickstart/agent-access — no dashboard account required. Read those two pages before authentication or API calls.

# For agents

> Welcome page for AI agents and digital assistants. A cloud browser for web apps with no API, logging in with MFA without the password, captcha and bot-detection blocks, geo-specific pages, file downloads, repeatable web workflows, and parallel browsers. Get a key with Agent Access.

Anchor is cloud browser infrastructure for AI agents: real Chromium sessions you control over CDP or REST, an agent that completes web tasks from a prompt, versioned automation tasks, managed sign-in to third-party apps, persistent storage, recordings, and network options such as residential proxies and extra stealth. No key yet? [Agent Access](/quickstart/agent-access) issues one without a dashboard account.

## You are probably here because

* **The web app you need has no API, only a UI.** Open a [browser session](/quickstart/create-session) and drive it over CDP, or hand the goal to [`perform-web-task`](/agentic-browser-control/ai-task-completion) as a prompt.
* **You must act inside a user's account, with MFA, and must not see the password.** Attach a [managed identity](/essentials/managed-authentication) by id. The session starts signed in.
* **Your browser or fetch got a captcha, challenge page, "access denied", or an empty shell.** Start a session with a [residential proxy](/advanced/proxy), [extra stealth](/essentials/stealth), and [captcha solving](/advanced/captcha-solving).
* **You only need the rendered HTML of a URL.** One call to [Web Unlocker](/advanced/web-unlocker), no session.
* **The page is different, or gated, by country.** Set `session.proxy.country_code` ([Proxy](/advanced/proxy)); fix the IP across runs with a [dedicated sticky IP](/advanced/dedicated-sticky-ip).
* **The same web workflow must run again tomorrow, reliably.** Save it as an [automation task](/tasks/creating-a-task) and run it with [`/v2/tasks/{taskId}/run`](/tasks/run-a-task).
* **You need a file the browser downloads, or to give the browser a file.** Mount a [volume](/advanced/volumes); downloads land in `downloads/` and survive the session.
* **You need the result as JSON, not prose.** Pass `output_schema` to [`perform-web-task`](/agentic-browser-control/ai-task-completion).
* **You need fifty browsers, or five thousand.** [Batch sessions](/advanced/batch-browser-sessions) in one call.
* **A human should watch, approve, or take over.** Share the [live view](/advanced/browser-live-view) or enable [human-in-the-loop](/agentic-browser-control/human-in-the-loop).
* **Your end user must connect their own account to your product.** Send them through [OmniConnect](/essentials/omniconnect); you receive the identity.
* **You have no Anchor API key.** [Agent Access](/quickstart/agent-access) issues one in two HTTP calls. Steps below.

## Get a key (Agent Access)

Agent Access is the door for a key. The onboarding routes are unauthenticated. No dashboard account.

1. Open [Agent Access](/quickstart/agent-access). When a response includes `next`, call it.
2. `GET https://api.anchorbrowser.io/v1/agent-access/challenge` — puzzle, `token`, and `next`.
3. `POST https://api.anchorbrowser.io/v1/agent-access` with `{ "token", "answer" }`.
4. Send `api_key` as the `anchor-api-key` header on every later call.

Challenge data expires after **120 seconds**. Anonymous keys get **1 credit**. An OIDC JWT with a verified email on that same POST gets **5 credits**. Agent Access sessions are capped at **60 minutes**. For production volume, create an account at [app.anchorbrowser.io](https://app.anchorbrowser.io/api-keys).

## What you can do

Quote the block below. Each line links to the page with the full schema.

```markdown theme={null}
## Access
- Obtain an API key via Agent Access (no dashboard). https://docs.anchorbrowser.io/quickstart/agent-access
- Full HTTP API (OpenAPI 3.1): https://docs.anchorbrowser.io/openapi.yaml

## Browsers
- Start a cloud browser: POST /v1/sessions. Response has `id`, `cdp_url`, `live_view_url`. Drive it with Playwright or Puppeteer over `cdp_url`. https://docs.anchorbrowser.io/quickstart/create-session
- Configure at create time: proxy, stealth, captcha solver, profile, identities, volume, extensions, timeouts, recording, viewport. https://docs.anchorbrowser.io/quickstart/browser-sessions
- Create many at once (up to 5,000) or non-blocking: batch and async sessions. https://docs.anchorbrowser.io/advanced/batch-browser-sessions https://docs.anchorbrowser.io/essentials/async-session
- OS-level mouse, keyboard, and clipboard on a session: /v1/sessions/{sessionId}/mouse, /keyboard, /clipboard. https://docs.anchorbrowser.io/advanced/os-level-control
- Run a TypeScript snippet inside a session: POST /v1/tools/execute-code?sessionId=... https://docs.anchorbrowser.io/tools/execute-code-snippet

## Tasks
- Natural-language web task with optional JSON `output_schema`: POST /v1/tools/perform-web-task with `prompt` and `url` or `sessionId`. https://docs.anchorbrowser.io/agentic-browser-control/ai-task-completion
- Computer-use agents (Anthropic, Gemini, OpenAI, Yutori) and bring-your-own model. https://docs.anchorbrowser.io/agentic-browser-control/computer-use-agents/anthropic https://docs.anchorbrowser.io/agentic-browser-control/bring-your-own-model
- Pause for a human mid-task (human-in-the-loop). https://docs.anchorbrowser.io/agentic-browser-control/human-in-the-loop
- Versioned automation tasks: create from a prompt or demonstration, then POST /v2/tasks/{taskId}/run with `input_params`. https://docs.anchorbrowser.io/tasks/creating-a-task https://docs.anchorbrowser.io/tasks/run-a-task
- Fetch rendered HTML from any URL in one call, no session: POST /v1/tools/fetch/webpage. https://docs.anchorbrowser.io/advanced/web-unlocker
- Screenshot a URL in one call. https://docs.anchorbrowser.io/tools/screenshot-webpage

## Authentication into web apps
- Applications and identities: store or auto-discover a login flow once, then start sessions signed in with `identities: [{ "id": "<identity-id>" }]`. Pass the id only, never the password. https://docs.anchorbrowser.io/essentials/managed-authentication
- MFA built in: email OTP, authenticator (TOTP), 1Password, custom. https://docs.anchorbrowser.io/advanced/email-otp https://docs.anchorbrowser.io/advanced/mfa
- Let an end user sign in through a hosted UI and hand you the identity (OmniConnect). https://docs.anchorbrowser.io/essentials/omniconnect
- Browser profiles: persist cookies and storage between sessions with `browser.profile`. https://docs.anchorbrowser.io/essentials/managed-authentication#browser-profiles

## Files and state
- Volumes: team-owned folders mounted into sessions; downloads land in `downloads/`, uploads appear in running sessions. POST /v1/volumes, then `browser.volume.id`. https://docs.anchorbrowser.io/advanced/volumes
- File upload and download in a session. https://docs.anchorbrowser.io/advanced/file-upload https://docs.anchorbrowser.io/advanced/file-download

## Network and stealth
- Residential proxy by country, region, city: `session.proxy` with `active` true and `country_code`. `type` defaults to `anchor_proxy`, Anchor's residential pool. https://docs.anchorbrowser.io/advanced/proxy
- Extra stealth: `browser.extra_stealth.active` true (needs an active proxy; Growth plan). https://docs.anchorbrowser.io/essentials/stealth
- Captcha solving: `browser.captcha_solver.active` true (needs an active proxy). https://docs.anchorbrowser.io/advanced/captcha-solving
- Fixed IP per profile (dedicated sticky IP), Anchor VPN, Cloudflare Web Bot Auth, bring your own proxy. https://docs.anchorbrowser.io/advanced/dedicated-sticky-ip https://docs.anchorbrowser.io/advanced/anchor-vpn https://docs.anchorbrowser.io/advanced/cloudflare-web-bot-auth https://docs.anchorbrowser.io/advanced/bring-your-own-proxy

## Observe and integrate
- Session recordings (MP4) and an embeddable live view (`live_view_url`). https://docs.anchorbrowser.io/essentials/recording https://docs.anchorbrowser.io/advanced/browser-live-view
- Webhooks, HMAC-signed, for task, session, and identity events. https://docs.anchorbrowser.io/webhooks/overview
- Chrome extensions in sessions. https://docs.anchorbrowser.io/advanced/extensions
- Zero Data Retention mode for sensitive workloads. https://docs.anchorbrowser.io/security/zdr-mode
- Hosted MCP server for agent runtimes: https://api.anchorbrowser.io/mcp. https://docs.anchorbrowser.io/advanced/mcp
- SDKs: `anchorbrowser` on npm and PyPI. https://docs.anchorbrowser.io/quickstart/use-via-sdk
```

## After you have a key

### Run a web task

Use this when a natural-language goal is enough and you do not need the CDP connection.

```bash theme={null}
curl -X POST https://api.anchorbrowser.io/v1/tools/perform-web-task \
  -H "anchor-api-key: $ANCHOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "Go to example.com and return the page title",
    "url": "https://example.com"
  }'
```

Add `output_schema` for structured JSON. See [Perform Web Task](/agentic-browser-control/ai-task-completion). For a single rendered HTML body, use [Web Unlocker](/advanced/web-unlocker) (`POST /v1/tools/fetch/webpage`).

### Start a signed-in session

Use this when the job runs inside an account on a third-party app. The identity id is all you send; Anchor holds the credentials and runs MFA.

```bash theme={null}
curl -X POST https://api.anchorbrowser.io/v1/sessions \
  -H "anchor-api-key: $ANCHOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "identities": [{ "id": "<identity-id>" }],
    "browser": {
      "profile": { "name": "crm-assistant", "persist": true }
    }
  }'
```

Connect Playwright or Puppeteer to `cdp_url`, or pass the session `id` as `sessionId` to `perform-web-task`. Create the application and identity first: [Managed Authentication](/essentials/managed-authentication).

### Start a stealth residential session

Use this when the target site blocks standard browsers. `anchor_proxy` is Anchor's residential pool and the default `type`, so `active: true` with a `country_code` is enough. Extra stealth and captcha solving stay on only while the proxy is active.

```bash theme={null}
curl -X POST https://api.anchorbrowser.io/v1/sessions \
  -H "anchor-api-key: $ANCHOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "session": {
      "proxy": {
        "active": true,
        "type": "anchor_proxy",
        "country_code": "us"
      }
    },
    "browser": {
      "extra_stealth": { "active": true },
      "captcha_solver": { "active": true }
    }
  }'
```

Field reference: [Browser Sessions](/quickstart/browser-sessions), [Proxy](/advanced/proxy), [Stealth](/essentials/stealth).

## Do / don't

**Do**

* Keep the API key in the `anchor-api-key` header only.
* Pass an identity **id**. Let Anchor hold the password and run MFA.
* Turn the proxy on before extra stealth or captcha solving. Both switch off when `session.proxy.active` is false.
* Keep `session.timeout.max_duration` at 60 or below on an Agent Access key. Larger values are capped.
* Back off on `429`. Start a new Agent Access challenge if the token expires (120 seconds).
* End a session when the job is done, or set `session.timeout` so it ends itself.

**Don't**

* Put the API key, passwords, or one-time codes in prompts, page text, or logs.
* Share a `live_view_url` outside the people who should control the session.
* Reuse a 1-credit Agent Access key for production traffic. Create an account and a project key instead.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.