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

# Get Session

> Get session details. Use this to poll for task completion and output.



## OpenAPI

````yaml /cloud/openapi/v3.json get /sessions/{session_id}
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/{session_id}:
    get:
      tags:
        - Sessions
      summary: Get Session
      description: Get session details. Use this to poll for task completion and output.
      operationId: get_session_sessions__session_id__get
      parameters:
        - name: session_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            title: Session Id
      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:
    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
    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.
    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
    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

````