> ## 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 create an API key at https://app.anchorbrowser.io/api-keys. Read the for-agents page before authentication or API calls.

# Create Session Tokens

> Mint URLs for a running session that can be handed to end users without exposing the session id.
Each scope gets its own token, carried as `?token=` in the URL:

- `live_view_read_only`: watch the browser only.
- `live_view`: watch and interact with the browser.
- `cdp`: full CDP control.

Every call mints new tokens. A token stops working when the session ends or when it is revoked.
On a session created with `live_view.read_only`, `live_view` is watch-only too: `live_view_url` is the
read-only URL.

The first token makes the session token-only, as `scoped_access` does: new connections with only
`?sessionId=` are refused from then on, even after the tokens are revoked. Connections already open stay up.




## OpenAPI

````yaml /openapi.yaml post /v1/sessions/{session_id}/tokens
openapi: 3.1.0
info:
  title: AnchorBrowser API
  version: 1.0.0
  description: >
    Anchor Browser ([anchorbrowser.io](https://anchorbrowser.io)) provides cloud
    browsers built

    for AI agents and automation. Use this API to launch and control browser
    sessions, run

    natural-language web tasks, authenticate into third-party web apps with
    managed identities,

    and capture recordings — reliably and at scale, without operating browser
    infrastructure

    yourself.


    ## Core resources

    - **Sessions** (`/v1/sessions`): launch configurable cloud browsers —
    residential proxies,
      stealth browsing, captcha solving, profiles, extensions, recording — and connect over CDP
      with Playwright, Puppeteer, or any CDP client.
    - **AI tools** (`/v1/tools/perform-web-task`): state a goal in natural
    language and the
      built-in agent completes it inside the browser. Related tools fetch webpages, take
      screenshots, render PDFs, and execute code in a session.
    - **Tasks** (`/v1/task`): create, version, deploy, and monitor repeatable
    browser
      automations built to run reliably in production.
    - **Applications and identities** (`/v1/applications`, `/v1/identities`):
    managed
      authentication into third-party web apps — including multi-step logins and TOTP-based
      2FA — so agents can act on behalf of users.
    - **Profiles** (`/v1/profiles`): persist cookies and login state across
    sessions.

    - **OS-level control** (`/v1/sessions/{sessionId}/mouse`, `/keyboard`,
    `/clipboard`):
      raw input for flows that resist DOM automation.
    - Plus batch sessions for running browser fleets in parallel, session
    recordings, webhooks,
      events, extensions, client certificates, and billing usage.

    ## Authentication

    Pass an API key in the `anchor-api-key` header on every request. Create keys
    at

    [app.anchorbrowser.io](https://app.anchorbrowser.io) under API Access.


    ## For AI agents and LLMs

    - Docs: [docs.anchorbrowser.io](https://docs.anchorbrowser.io), with a
    machine-readable
      index at [/llms.txt](https://docs.anchorbrowser.io/llms.txt) and the full corpus at
      [/llms-full.txt](https://docs.anchorbrowser.io/llms-full.txt).
    - MCP server for hosted browser control: `https://api.anchorbrowser.io/mcp`.

    - Official SDKs: `anchorbrowser` on
    [npm](https://www.npmjs.com/package/anchorbrowser) and
      [PyPI](https://pypi.org/project/anchorbrowser/).

    `DELETE` operations terminate sessions or permanently remove resources
    (profiles,

    identities, extensions); `GET` operations are safe and read-only.
servers:
  - url: https://api.anchorbrowser.io
    description: API server
security: []
paths:
  /v1/sessions/{session_id}/tokens:
    post:
      tags:
        - Browser Sessions
      summary: Create Session Tokens
      description: >
        Mint URLs for a running session that can be handed to end users without
        exposing the session id.

        Each scope gets its own token, carried as `?token=` in the URL:


        - `live_view_read_only`: watch the browser only.

        - `live_view`: watch and interact with the browser.

        - `cdp`: full CDP control.


        Every call mints new tokens. A token stops working when the session ends
        or when it is revoked.

        On a session created with `live_view.read_only`, `live_view` is
        watch-only too: `live_view_url` is the

        read-only URL.


        The first token makes the session token-only, as `scoped_access` does:
        new connections with only

        `?sessionId=` are refused from then on, even after the tokens are
        revoked. Connections already open stay up.
      parameters:
        - in: path
          name: session_id
          required: true
          description: The ID of the running session.
          schema:
            type: string
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                scopes:
                  type: array
                  description: >-
                    Token scopes to mint. Omit or pass an empty list to mint
                    every scope the session can serve: all three, only `cdp` on
                    a headless session, and no `live_view` on a
                    `live_view.one_time_url` session.
                  items:
                    type: string
                    enum:
                      - live_view_read_only
                      - live_view
                      - cdp
      responses:
        '200':
          description: One URL per requested scope.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      live_view_read_only_url:
                        type: string
                        description: Live view URL that can only watch the browser.
                      live_view_url:
                        type: string
                        description: >-
                          Live view URL that can watch and interact with the
                          browser.
                      cdp_url:
                        type: string
                        description: CDP WebSocket URL with full browser control.
        '400':
          description: >-
            The session is not running, runs on a connector or a Mac, is
            headless and a live view scope was requested, or was created with
            `live_view.one_time_url` and `live_view` was requested.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Invalid API Key or unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Session not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - api_key_header: []
components:
  schemas:
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: integer
            message:
              type: string
  securitySchemes:
    api_key_header:
      type: apiKey
      in: header
      name: anchor-api-key
      description: >
        API key for your Anchor Browser account, sent as the `anchor-api-key`
        header on every

        request. Create one at
        [app.anchorbrowser.io](https://app.anchorbrowser.io) (API Access).

````

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