> ## 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.

# Create Session

> Create a session and/or dispatch a task.

- Without session_id, without task: creates a new idle session (e.g. for file uploads).
- Without session_id, with task: creates a new session and dispatches the task.
- With session_id, with task: dispatches the task to an existing idle session.
- With session_id, without task: 422 — task is required when targeting an existing session.

If keep_alive is false (default), the session auto-stops when the task finishes.
If keep_alive is true, the session stays idle after the task, ready for follow-ups.



## OpenAPI

````yaml /cloud/openapi/v3.json post /sessions
openapi: 3.1.0
info:
  title: Browser Use Public API v3
  summary: Browser Use session-based agent API (v3)
  version: 3.0.0
servers:
  - url: https://api.browser-use.com/api/v3
    description: Production server
security: []
paths:
  /sessions:
    post:
      tags:
        - Sessions
      summary: Create Session
      description: >-
        Create a session and/or dispatch a task.


        - Without session_id, without task: creates a new idle session (e.g. for
        file uploads).

        - Without session_id, with task: creates a new session and dispatches
        the task.

        - With session_id, with task: dispatches the task to an existing idle
        session.

        - With session_id, without task: 422 — task is required when targeting
        an existing session.


        If keep_alive is false (default), the session auto-stops when the task
        finishes.

        If keep_alive is true, the session stays idle after the task, ready for
        follow-ups.
      operationId: create_session_sessions_post
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RunTaskRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SessionResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - APIKeyHeader: []
components:
  schemas:
    RunTaskRequest:
      properties:
        task:
          anyOf:
            - type: string
            - type: 'null'
          title: Task
          description: >-
            The natural-language instruction for the agent to execute (e.g. "Go
            to amazon.com and find the best-rated wireless mouse under $50").
            Required when dispatching to an existing session.
        model:
          $ref: '#/components/schemas/BuModel'
          description: >-
            The model to use. "gemini-3-flash" is fast and cheap,
            "claude-sonnet-5" is balanced, "claude-opus-4.7" is most capable
            (default), and "claude-opus-4.8" is the newest Opus-tier model.
            GPT-5.6 models are Browser Use native models when either direct
            OpenAI or Amazon Bedrock routing is configured; otherwise they
            require use_own_key=true. GPT-5.5 becomes native when Bedrock
            routing is enabled; otherwise it requires use_own_key=true. Other
            additional provider models (e.g. "gemini-3.5-flash" and "gpt-5.2")
            require use_own_key=true. See BuModel for details.
          default: claude-opus-4.7
        thinkingLevel:
          anyOf:
            - $ref: '#/components/schemas/ThinkingLevel'
            - type: 'null'
          description: >-
            Optional model reasoning depth. Omit this field to preserve the
            model provider default. Supported values depend on the selected
            model: most supported Claude models and GPT-5.1+ models support
            disabled/low/medium/high; Gemini Flash models support all four
            (disabled maps to Gemini's minimal level); Claude Fable 5, earlier
            GPT-5 models, Gemini 2.5 Pro, o3/o4, and Grok support
            low/medium/high; Gemini 3.1 Pro supports low/high; GLM supports
            disabled/high. Unsupported model/level combinations are rejected.
        sessionId:
          anyOf:
            - type: string
              format: uuid
            - type: 'null'
          title: Sessionid
          description: >-
            ID of an existing idle session to dispatch the task to. If omitted,
            a new session is created.
        keepAlive:
          type: boolean
          title: Keepalive
          description: >-
            If true, the session stays alive in idle state after the task
            completes instead of automatically stopping. This lets you dispatch
            follow-up tasks to the same session, preserving browser state and
            files.
          default: false
        maxCostUsd:
          anyOf:
            - type: number
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
            - type: 'null'
          title: Maxcostusd
          description: >-
            Maximum total cost in USD allowed for this session. The task will be
            stopped if this limit is reached. If omitted, a default limit
            applies (capped by your available balance). When dispatching a
            follow-up task to an existing session (`sessionId` is set),
            supplying this value overrides the session's budget for the upcoming
            dispatch; otherwise the budget is automatically refreshed to current
            spend + default.
        profileId:
          anyOf:
            - type: string
              format: uuid
            - type: 'null'
          title: Profileid
          description: >-
            ID of a browser profile to load into the session. Profiles persist
            cookies, local storage, and other browser state across sessions.
            Create profiles via the Profiles API.
        workspaceId:
          anyOf:
            - type: string
              format: uuid
            - type: 'null'
          title: Workspaceid
          description: >-
            ID of a workspace to attach to the session. Workspaces provide
            persistent file storage that carries across sessions. Create
            workspaces via the Workspaces API.
        proxyCountryCode:
          anyOf:
            - $ref: '#/components/schemas/ProxyCountryCode'
            - type: 'null'
          description: >-
            Country code for the browser proxy (e.g. "US", "DE", "JP"). Set to
            null to disable the proxy. The proxy routes browser traffic through
            the specified country, useful for accessing geo-restricted content.
          default: us
        browserScreenWidth:
          anyOf:
            - type: integer
              maximum: 6144
              minimum: 320
            - type: 'null'
          title: Browserscreenwidth
          description: >-
            Custom browser screen width in pixels. Must be set together with
            browserScreenHeight. When omitted, the browser keeps its own default
            resolution.
        browserScreenHeight:
          anyOf:
            - type: integer
              maximum: 3456
              minimum: 320
            - type: 'null'
          title: Browserscreenheight
          description: >-
            Custom browser screen height in pixels. Must be set together with
            browserScreenWidth. When omitted, the browser keeps its own default
            resolution.
        outputSchema:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Outputschema
          description: >-
            A JSON Schema that the agent's final output must conform to. When
            set, the agent will return structured data matching this schema in
            the `output` field of the response. Example: {"type": "object",
            "properties": {"price": {"type": "number"}, "title": {"type":
            "string"}}}.
        enableScheduledTasks:
          type: boolean
          title: Enablescheduledtasks
          description: >-
            If true, the agent can create scheduled tasks that run on a
            recurring basis (e.g. "every Monday morning, check my inbox and
            summarize new emails"). Scheduled tasks are tied to your project and
            persist beyond the session. Note: all scheduled tasks are visible
            project-wide, so avoid enabling this in multi-user setups where task
            isolation is needed.
          default: false
        sensitiveData:
          anyOf:
            - additionalProperties:
                type: string
              type: object
            - type: 'null'
          title: Sensitivedata
          description: >-
            Key-value pairs of sensitive data (e.g. passwords, API keys) that
            the agent can use via secure placeholders. Keys are exposed to the
            LLM; values are never shown. The agent uses `<secret>key</secret>`
            placeholders in browser_type_text to securely enter values.
        enableRecording:
          type: boolean
          title: Enablerecording
          description: >-
            If true, records a video of the browser session. The recording URLs
            will be available in the `recordingUrls` field of the session
            response after the task completes.
          default: false
        skills:
          type: boolean
          title: Skills
          description: >-
            If true, the agent generates and persists reusable skills from
            completed tasks (saved per-domain in the DB and auto-injected into
            future runs). Set to false to skip skill generation — useful for
            privacy-sensitive tasks or to avoid the extra LLM cost.
          default: true
        agentmail:
          type: boolean
          title: Agentmail
          description: >-
            If true, provisions a temporary email inbox (via AgentMail) for the
            session. The email address is available in the `agentmailEmail`
            field of the session response. Useful for tasks that require email
            verification or sign-ups.
          default: true
        codeMode:
          type: boolean
          title: Codemode
          description: >-
            When true, the agent returns structured output with `text` (summary)
            and `code` (validated Python source) fields instead of free-form
            text.
          default: false
        cacheScript:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Cachescript
          description: >-
            Controls deterministic script caching. `null` (default):
            auto-detected — enabled when the task contains `@{{value}}` brackets
            and a workspace is attached. `true`: force-enable script caching
            even without brackets (caches the exact task). `false`:
            force-disable, even if brackets are present. When active, the first
            call runs the full agent and saves a reusable script. Subsequent
            calls with the same task template execute the cached script with $0
            LLM cost. Requires workspace_id when enabled. Example: "Get prices
            from @{{https://example.com}} for @{{electronics}}".
        useOwnKey:
          type: boolean
          title: Useownkey
          description: >-
            If true, uses your own LLM API key (configured in project settings)
            instead of Browser Use managed keys. You pay your provider directly
            for inference; Browser Use charges a reduced orchestration fee (0.2×
            of provider list prices). If no key is configured for the model's
            provider, the request is rejected.
          default: false
        autoHeal:
          type: boolean
          title: Autoheal
          description: >-
            When cache_script is active, controls whether a lightweight LLM
            validates the cached script output. If the output looks incorrect
            (empty, error, wrong structure), the system automatically
            re-triggers the full agent to generate a new version of the script.
            Set to false to disable validation and always return the raw script
            output.
          default: true
      type: object
      title: RunTaskRequest
      description: >-
        Create a new session, dispatch a task, or both.


        - **No `sessionId` + no `task`**: creates an idle session (useful for
        uploading files before running a task).

        - **No `sessionId` + `task`**: creates a new session and immediately
        runs the task.

        - **`sessionId` + `task`**: dispatches the task to an existing idle
        session.

        - **`sessionId` + no `task`**: returns 422 — a task is required when
        targeting an existing session.
    SessionResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: Unique session identifier.
        status:
          $ref: '#/components/schemas/BuAgentSessionStatus'
          description: >-
            Current session lifecycle status. Progresses through: `created`
            (sandbox starting) → `idle` (ready, waiting for task) → `running`
            (task executing) → `stopped` / `timed_out` / `error`. Poll this
            field to track progress.
        model:
          $ref: '#/components/schemas/BuModel'
          description: The model tier used for this session.
        thinkingLevel:
          anyOf:
            - $ref: '#/components/schemas/ThinkingLevel'
            - type: 'null'
          description: >-
            Configured model reasoning depth for this session, or null when
            provider defaults are used.
        title:
          anyOf:
            - type: string
            - type: 'null'
          title: Title
          description: >-
            Auto-generated short title summarizing the task. Available after the
            task starts running.
        output:
          anyOf:
            - {}
            - type: 'null'
          title: Output
          description: >-
            The agent's final output. If `codeMode` was true, this will be an
            object with `text` (summary), `code` (Python source), and optionally
            `output` (execution result). If `outputSchema` was provided, this
            will be structured data conforming to that schema. Otherwise it may
            be a free-form string or null.
        outputSchema:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Outputschema
          description: The JSON Schema that was requested for structured output, if any.
        stepCount:
          type: integer
          title: Stepcount
          description: Number of steps the agent has executed so far.
          default: 0
        lastStepSummary:
          anyOf:
            - type: string
            - type: 'null'
          title: Laststepsummary
          description: >-
            Human-readable summary of the most recent agent step (e.g. "Clicking
            the Submit button"). Useful for showing real-time progress.
        isTaskSuccessful:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Istasksuccessful
          description: >-
            Whether the task completed successfully. `true` if the agent
            achieved the goal, `false` if it failed or gave up, `null` if the
            task is still running or no task was dispatched.
        liveUrl:
          anyOf:
            - type: string
            - type: 'null'
          title: Liveurl
          description: >-
            URL to view the live browser session. Available immediately on
            session creation — can be embedded in an iframe to show the browser
            in real time.
        recordingUrls:
          items:
            type: string
          type: array
          title: Recordingurls
          description: >-
            URLs to download session recordings. Only populated on `GET
            /api/v3/sessions/{id}`; always `[]` in list responses.
          default: []
        profileId:
          anyOf:
            - type: string
              format: uuid
            - type: 'null'
          title: Profileid
          description: ID of the browser profile loaded in this session, if any.
        workspaceId:
          anyOf:
            - type: string
              format: uuid
            - type: 'null'
          title: Workspaceid
          description: ID of the workspace attached to this session, if any.
        proxyCountryCode:
          anyOf:
            - $ref: '#/components/schemas/ProxyCountryCode'
            - type: 'null'
          description: >-
            Country code of the proxy used for this session, or null if no
            proxy.
        browserScreenWidth:
          anyOf:
            - type: integer
            - type: 'null'
          title: Browserscreenwidth
          description: >-
            Custom browser screen width set for this session, or null for the
            default.
        browserScreenHeight:
          anyOf:
            - type: integer
            - type: 'null'
          title: Browserscreenheight
          description: >-
            Custom browser screen height set for this session, or null for the
            default.
        maxCostUsd:
          anyOf:
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
            - type: 'null'
          title: Maxcostusd
          description: Maximum cost limit in USD set for this session.
        totalInputTokens:
          type: integer
          title: Totalinputtokens
          description: Total LLM input tokens consumed by this session.
          default: 0
        totalOutputTokens:
          type: integer
          title: Totaloutputtokens
          description: Total LLM output tokens consumed by this session.
          default: 0
        proxyUsedMb:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Proxyusedmb
          description: Proxy bandwidth used in megabytes.
          default: '0'
        llmCostUsd:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Llmcostusd
          description: Cost of LLM usage in USD.
          default: '0'
        proxyCostUsd:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Proxycostusd
          description: Cost of proxy bandwidth in USD.
          default: '0'
        browserCostUsd:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Browsercostusd
          description: Cost of browser compute time in USD.
          default: '0'
        totalCostUsd:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Totalcostusd
          description: Total session cost in USD (LLM + proxy + browser).
          default: '0'
        screenshotUrl:
          anyOf:
            - type: string
            - type: 'null'
          title: Screenshoturl
          description: >-
            Presigned URL of the latest screenshot (expires after 5 minutes).
            Only populated on `GET /api/v3/sessions/{id}`; always `null` in list
            responses.
        agentmailEmail:
          anyOf:
            - type: string
            - type: 'null'
          title: Agentmailemail
          description: >-
            Temporary email address provisioned for this session (via
            AgentMail). Only present if `agentmail` was enabled.
        integrationsUsed:
          items:
            type: string
          type: array
          title: Integrationsused
          description: >-
            List of integration providers used during this session (e.g.
            ["gmail", "slack", "agentmail"]).
        createdAt:
          type: string
          format: date-time
          title: Createdat
          description: When the session was created.
        updatedAt:
          type: string
          format: date-time
          title: Updatedat
          description: When the session was last updated.
      type: object
      required:
        - id
        - status
        - model
        - createdAt
        - updatedAt
      title: SessionResponse
      description: >-
        Represents a session and its current state.


        Poll this endpoint to track task progress. The `status` field indicates
        the session lifecycle stage,

        and `output` contains the agent's structured result once the task
        completes.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    BuModel:
      type: string
      enum:
        - bu-mini
        - bu-max
        - bu-ultra
        - gemini-3-flash
        - claude-opus-4.6
        - claude-opus-4.7
        - claude-sonnet-5
        - claude-opus-4.8
        - gpt-5.4-mini
        - glm-5.2
        - minimax-m3
        - grok-4.6
        - glm-5.3-flash
        - deepseek-v4-flash-vision
        - claude-haiku-4.5
        - gpt-5.2
        - gpt-5-mini
        - gpt-5.5
        - gpt-5.6-sol
        - gpt-5.6-terra
        - gpt-5.6-luna
        - gemini-3-pro
        - gemini-3.1-pro
        - gemini-3.5-flash
      title: BuModel
      description: >-
        The model to use for the agent. Each model has different capabilities
        and pricing.


        - `bu-mini` / `gemini-3-flash`: Gemini 3 Flash — fast and
        cost-effective. Best for simple, well-defined tasks like form filling or
        data extraction.

        - `bu-max` / `claude-sonnet-4.6` (legacy aliases) / `claude-sonnet-5`:
        Claude Sonnet 5 — balanced performance. Best for multi-step workflows
        that require reasoning and decision-making.

        - `bu-ultra` / `claude-opus-4.6`: Claude Opus 4.6 — capable
        general-purpose Opus tier.

        - `claude-opus-4.7`: Claude Opus 4.7 — most capable. Best for complex
        tasks that require advanced reasoning, long-horizon planning, or
        handling ambiguous instructions.

        - `claude-opus-4.8`: Claude Opus 4.8 — most capable Opus-tier model,
        state-of-the-art on long-horizon agentic work.

        - `gpt-5.4-mini`: GPT-5.4 mini — OpenAI's fast and efficient model. Best
        for tasks that benefit from OpenAI's capabilities.

        - `glm-5.2`: Z.ai GLM 5.2 — capable, low-cost open model. Best for
        cost-sensitive agentic tasks.

        - `minimax-m3`: MiniMax M3 — fast, very low-cost model. Best for simple,
        high-volume tasks.

        - `grok-4.6`: xAI Grok 4.6. Fast frontier model with a large context
        window.

        - `glm-5.3-flash`: Z.ai GLM 5.3 Flash. Multimodal, very low cost, served
        by Fireworks.

        - `deepseek-v4-flash-vision`: DeepSeek V4 Flash Vision. Experimental,
        very low cost.


        Additional provider models (e.g. `gemini-3.5-flash`, `gpt-5.2`, and
        `gpt-5-mini`)

        are selectable only with `use_own_key=true`, where your own provider key
        serves

        them. The GPT-5.6 family is native when either Browser Use's direct
        OpenAI key

        or Amazon Bedrock route is configured. GPT-5.5 becomes native only
        through the

        Bedrock rollout.
    ThinkingLevel:
      type: string
      enum:
        - disabled
        - low
        - medium
        - high
      title: ThinkingLevel
      description: Provider-neutral model reasoning depth.
    ProxyCountryCode:
      type: string
      enum:
        - ad
        - ae
        - af
        - ag
        - ai
        - al
        - am
        - an
        - ao
        - aq
        - ar
        - as
        - at
        - au
        - aw
        - az
        - ba
        - bb
        - bd
        - be
        - bf
        - bg
        - bh
        - bi
        - bj
        - bl
        - bm
        - bn
        - bo
        - bq
        - br
        - bs
        - bt
        - bv
        - bw
        - by
        - bz
        - ca
        - cc
        - cd
        - cf
        - cg
        - ch
        - ci
        - ck
        - cl
        - cm
        - co
        - cr
        - cs
        - cu
        - cv
        - cw
        - cx
        - cy
        - cz
        - de
        - dj
        - dk
        - dm
        - do
        - dz
        - ec
        - ee
        - eg
        - eh
        - er
        - es
        - et
        - fi
        - fj
        - fk
        - fm
        - fo
        - fr
        - ga
        - gd
        - ge
        - gf
        - gg
        - gh
        - gi
        - gl
        - gm
        - gn
        - gp
        - gq
        - gr
        - gs
        - gt
        - gu
        - gw
        - gy
        - hk
        - hm
        - hn
        - hr
        - ht
        - hu
        - id
        - ie
        - il
        - im
        - in
        - iq
        - ir
        - is
        - it
        - je
        - jm
        - jo
        - jp
        - ke
        - kg
        - kh
        - ki
        - km
        - kn
        - kp
        - kr
        - kw
        - ky
        - kz
        - la
        - lb
        - lc
        - li
        - lk
        - lr
        - ls
        - lt
        - lu
        - lv
        - ly
        - ma
        - mc
        - md
        - me
        - mf
        - mg
        - mh
        - mk
        - ml
        - mm
        - mn
        - mo
        - mp
        - mq
        - mr
        - ms
        - mt
        - mu
        - mv
        - mw
        - mx
        - my
        - mz
        - na
        - nc
        - ne
        - nf
        - ng
        - ni
        - nl
        - 'no'
        - np
        - nr
        - nu
        - nz
        - om
        - pa
        - pe
        - pf
        - pg
        - ph
        - pk
        - pl
        - pm
        - pn
        - pr
        - ps
        - pt
        - pw
        - py
        - qa
        - re
        - ro
        - rs
        - ru
        - rw
        - sa
        - sb
        - sc
        - sd
        - se
        - sg
        - sh
        - si
        - sj
        - sk
        - sl
        - sm
        - sn
        - so
        - sr
        - ss
        - st
        - sv
        - sx
        - sy
        - sz
        - tc
        - td
        - tf
        - tg
        - th
        - tj
        - tk
        - tl
        - tm
        - tn
        - to
        - tr
        - tt
        - tv
        - tw
        - tz
        - ua
        - ug
        - uk
        - us
        - uy
        - uz
        - va
        - vc
        - ve
        - vg
        - vi
        - vn
        - vu
        - wf
        - ws
        - xk
        - ye
        - yt
        - za
        - zm
        - zw
      title: ProxyCountryCode
    BuAgentSessionStatus:
      type: string
      enum:
        - created
        - idle
        - running
        - stopped
        - timed_out
        - error
      title: BuAgentSessionStatus
      description: >-
        Session lifecycle status. Progresses through: created → idle → running →
        idle → ... → stopped / timed_out / error.


        - `created`: Sandbox is starting up. The session is not yet ready to
        accept tasks.

        - `idle`: Sandbox is healthy and waiting for a task. You can dispatch a
        task or upload files.

        - `running`: A task is currently being executed by the agent.

        - `stopped`: Session was stopped — either explicitly via the stop
        endpoint, or automatically after task completion (when `keepAlive` is
        false).

        - `timed_out`: Session was cleaned up due to inactivity timeout.

        - `error`: Sandbox failed to start or encountered an unrecoverable
        error.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      in: header
      name: X-Browser-Use-API-Key

````