Hyperbrowser Session API

The Session API from Hyperbrowser — 8 operation(s) for session.

Operations 8

POST /api/session Create new session
GET /api/session/{id} Get session by ID
PUT /api/session/{id}/stop Stop a session
PUT /api/session/{id}/update Update a running session
POST /api/session/{id}/captcha/evaluate Run manual CAPTCHA evaluation
GET /api/session/{id}/recording-url Get session recording URL
GET /api/session/{id}/video-recording-url Get session video recording URL
GET /api/session/{id}/downloads-url Get session downloads URL

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/hyperbrowser-session-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

hyperbrowser-session-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Hyperbrowser Agents Session API
  version: 1.0.0
  description: Start, stop, and monitor agentic browser tasks across HyperAgent, Browser-Use, Claude Computer Use, Gemini Computer Use, and OpenAI CUA.
  contact:
    name: Hyperbrowser
    url: https://hyperbrowser.ai
  license:
    name: Hyperbrowser Terms
    url: https://hyperbrowser.ai/terms
servers:
- url: https://api.hyperbrowser.ai
  description: Production server
security:
- ApiKeyAuth: []
tags:
- name: Session
paths:
  /api/session:
    post:
      summary: Create new session
      security:
      - ApiKeyAuth: []
      x-codeSamples:
      - lang: javascript
        label: Create a session
        source: "import { Hyperbrowser } from '@hyperbrowser/sdk';\n\nconst client = new Hyperbrowser({ apiKey: 'your-api-key' });\n\nawait client.sessions.create({\n  useStealth: true\n});"
      - lang: python
        label: Create a session
        source: "from hyperbrowser import Hyperbrowser\nfrom hyperbrowser.models import CreateSessionParams\n\nclient = Hyperbrowser(api_key='your-api-key')\n\nclient.sessions.create(CreateSessionParams(\n  use_stealth=True\n))"
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateSessionParams'
      responses:
        '200':
          description: Session created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SessionDetail'
      tags:
      - Session
  /api/session/{id}:
    get:
      summary: Get session by ID
      security:
      - ApiKeyAuth: []
      x-codeSamples:
      - lang: javascript
        label: Get a session
        source: 'import { Hyperbrowser } from ''@hyperbrowser/sdk'';


          const client = new Hyperbrowser({ apiKey: ''your-api-key'' });


          await client.sessions.get(''session-id'');'
      - lang: python
        label: Get a session
        source: 'from hyperbrowser import Hyperbrowser


          client = Hyperbrowser(api_key=''your-api-key'')


          client.sessions.get(''session-id'')'
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Session details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SessionDetail'
        '404':
          description: Session not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      tags:
      - Session
  /api/session/{id}/stop:
    put:
      summary: Stop a session
      security:
      - ApiKeyAuth: []
      x-codeSamples:
      - lang: javascript
        label: Stop a session
        source: 'import { Hyperbrowser } from ''@hyperbrowser/sdk'';


          const client = new Hyperbrowser({ apiKey: ''your-api-key'' });


          await client.sessions.stop(''session-id'');'
      - lang: python
        label: Stop a session
        source: 'from hyperbrowser import Hyperbrowser


          client = Hyperbrowser(api_key=''your-api-key'')


          client.sessions.stop(''session-id'')'
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Session stopped successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicResponse'
        '404':
          description: Session not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      tags:
      - Session
  /api/session/{id}/update:
    put:
      summary: Update a running session
      description: Update supported settings on an active browser session. Supported update types are profile, proxy, screen, and solveCaptchas.
      security:
      - ApiKeyAuth: []
      x-codeSamples:
      - lang: javascript
        label: Start CAPTCHA solving
        source: "import { Hyperbrowser } from '@hyperbrowser/sdk';\n\nconst client = new Hyperbrowser({ apiKey: 'your-api-key' });\n\nawait client.sessions.startCaptchaSolving('session-id', {\n  solverType: 'visual'\n});\n\nawait client.sessions.stopCaptchaSolving('session-id');"
      - lang: python
        label: Start CAPTCHA solving
        source: "from hyperbrowser import Hyperbrowser\nfrom hyperbrowser.models import UpdateSessionSolveCaptchasParams\n\nclient = Hyperbrowser(api_key='your-api-key')\n\nclient.sessions.start_captcha_solving(\n  'session-id',\n  UpdateSessionSolveCaptchasParams(solver_type='visual')\n)\n\nclient.sessions.stop_captcha_solving('session-id')"
      - lang: bash
        label: Start CAPTCHA solving
        source: "curl -X PUT \"https://api.hyperbrowser.ai/api/session/$SESSION_ID/update\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"x-api-key: $HYPERBROWSER_API_KEY\" \\\n  -d '{\"type\":\"solveCaptchas\",\"params\":{\"enabled\":true,\"solverType\":\"visual\"}}'"
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateSessionRequest'
            examples:
              profilePersistence:
                summary: Update profile persistence
                value:
                  type: profile
                  params:
                    persistChanges: true
                    persistNetworkCache: true
              managedProxy:
                summary: Enable managed proxy
                value:
                  type: proxy
                  params:
                    enabled: true
                    location:
                      country: US
                      state: CA
                      city: San Francisco
              screenSize:
                summary: Resize screen
                value:
                  type: screen
                  params:
                    width: 1280
                    height: 720
              startCaptchaSolving:
                summary: Start CAPTCHA solving
                value:
                  type: solveCaptchas
                  params:
                    enabled: true
                    solverType: visual
              stopCaptchaSolving:
                summary: Stop CAPTCHA solving
                value:
                  type: solveCaptchas
                  params:
                    enabled: false
      responses:
        '200':
          description: Session updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateSessionResponse'
        '400':
          description: Invalid update request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Session not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: CAPTCHA evaluation is already running
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      tags:
      - Session
  /api/session/{id}/captcha/evaluate:
    post:
      summary: Run manual CAPTCHA evaluation
      description: Trigger a bounded CAPTCHA evaluation on an active browser session. Supported CAPTCHA targets are turnstile, cloudflare-challenge, aliexpress, recaptcha, and amazon.
      security:
      - ApiKeyAuth: []
      x-codeSamples:
      - lang: javascript
        label: Run manual CAPTCHA evaluation
        source: "import { Hyperbrowser } from '@hyperbrowser/sdk';\n\nconst client = new Hyperbrowser({ apiKey: 'your-api-key' });\n\nconst result = await client.sessions.evaluateCaptcha('session-id', {\n  captchaType: 'recaptcha',\n  iterations: 2\n});"
      - lang: python
        label: Run manual CAPTCHA evaluation
        source: "from hyperbrowser import Hyperbrowser\nfrom hyperbrowser.models import CaptchaEvaluationParams\n\nclient = Hyperbrowser(api_key='your-api-key')\n\nresult = client.sessions.evaluate_captcha(\n  'session-id',\n  CaptchaEvaluationParams(\n    captcha_type='recaptcha',\n    iterations=2\n  )\n)"
      - lang: bash
        label: Run manual CAPTCHA evaluation
        source: "curl -X POST \"https://api.hyperbrowser.ai/api/session/$SESSION_ID/captcha/evaluate\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"x-api-key: $HYPERBROWSER_API_KEY\" \\\n  -d '{\"captchaType\":\"recaptcha\",\"iterations\":2}'"
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CaptchaEvaluationParams'
            examples:
              recaptchaVisual:
                summary: Evaluate visual reCAPTCHA
                value:
                  captchaType: recaptcha
                  iterations: 2
              turnstile:
                summary: Evaluate Turnstile
                value:
                  captcha: turnstile
                  maxIterations: 3
      responses:
        '200':
          description: CAPTCHA evaluation completed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CaptchaEvaluationResponse'
        '400':
          description: Invalid evaluation request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Session not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: CAPTCHA evaluation is already running
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      tags:
      - Session
  /api/session/{id}/recording-url:
    get:
      summary: Get session recording URL
      security:
      - ApiKeyAuth: []
      x-codeSamples:
      - lang: javascript
        label: Get recording URL
        source: 'import { Hyperbrowser } from ''@hyperbrowser/sdk'';


          const client = new Hyperbrowser({ apiKey: ''your-api-key'' });


          await client.sessions.getRecordingURL(''session-id'');'
      - lang: python
        label: Get recording URL
        source: 'from hyperbrowser import Hyperbrowser


          client = Hyperbrowser(api_key=''your-api-key'')


          client.sessions.get_recording_url(''session-id'')'
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Session recording URL
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSessionRecordingUrlResponse'
        '404':
          description: Session not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      tags:
      - Session
  /api/session/{id}/video-recording-url:
    get:
      summary: Get session video recording URL
      security:
      - ApiKeyAuth: []
      x-codeSamples:
      - lang: javascript
        label: Get video recording URL
        source: 'import { Hyperbrowser } from ''@hyperbrowser/sdk'';


          const client = new Hyperbrowser({ apiKey: ''your-api-key'' });


          await client.sessions.getVideoRecordingURL(''session-id'');'
      - lang: python
        label: Get video recording URL
        source: 'from hyperbrowser import Hyperbrowser


          client = Hyperbrowser(api_key=''your-api-key'')


          client.sessions.get_video_recording_url(''session-id'')'
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Session video recording URL
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSessionVideoRecordingUrlResponse'
        '404':
          description: Session not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      tags:
      - Session
  /api/session/{id}/downloads-url:
    get:
      summary: Get session downloads URL
      security:
      - ApiKeyAuth: []
      x-codeSamples:
      - lang: javascript
        label: Get downloads URL
        source: 'import { Hyperbrowser } from ''@hyperbrowser/sdk'';


          const client = new Hyperbrowser({ apiKey: ''your-api-key'' });


          await client.sessions.getDownloadsURL(''session-id'');'
      - lang: python
        label: Get downloads URL
        source: 'from hyperbrowser import Hyperbrowser


          client = Hyperbrowser(api_key=''your-api-key'')


          client.sessions.get_downloads_url(''session-id'')'
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Session downloads URL
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSessionDownloadsUrlResponse'
        '404':
          description: Session not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      tags:
      - Session
components:
  schemas:
    UpdateSessionRequest:
      oneOf:
      - $ref: '#/components/schemas/UpdateSessionProfileRequest'
      - $ref: '#/components/schemas/UpdateSessionProxyRequest'
      - $ref: '#/components/schemas/UpdateSessionScreenRequest'
      - $ref: '#/components/schemas/UpdateSessionSolveCaptchasRequest'
      discriminator:
        propertyName: type
        mapping:
          profile: '#/components/schemas/UpdateSessionProfileRequest'
          proxy: '#/components/schemas/UpdateSessionProxyRequest'
          screen: '#/components/schemas/UpdateSessionScreenRequest'
          solveCaptchas: '#/components/schemas/UpdateSessionSolveCaptchasRequest'
    CaptchaEvaluationParams:
      type: object
      properties:
        captcha:
          $ref: '#/components/schemas/CaptchaEvaluationType'
        captchaType:
          $ref: '#/components/schemas/CaptchaEvaluationType'
        text:
          $ref: '#/components/schemas/CaptchaEvaluationType'
        iterations:
          type: integer
          minimum: 1
          maximum: 20
        maxIterations:
          type: integer
          minimum: 1
          maximum: 20
        solverType:
          type: string
          enum:
          - visual
          description: Optional CAPTCHA solver mode. Set to visual to use the visual reCAPTCHA solver.
        imageCaptchaParams:
          type: array
          items:
            $ref: '#/components/schemas/ImageCaptchaParam'
        useUltraStealth:
          type: boolean
    UpdateSessionResponse:
      allOf:
      - $ref: '#/components/schemas/BasicResponse'
      - type: object
        properties:
          solveCaptchas:
            type: boolean
            description: Returned for solveCaptchas updates.
          sessionId:
            type: string
            description: Returned for solveCaptchas updates.
          telemetryReady:
            type: boolean
            description: Returned for solveCaptchas updates.
    CaptchaEvaluationResponse:
      type: object
      properties:
        success:
          type: boolean
        captcha:
          allOf:
          - $ref: '#/components/schemas/CaptchaEvaluationType'
        iterationsRequested:
          type: integer
        iterationsRun:
          type: integer
        solved:
          type: boolean
        solvedCaptchas:
          type: array
          items:
            $ref: '#/components/schemas/CaptchaEvaluationType'
        pages:
          type: array
          items:
            $ref: '#/components/schemas/CaptchaEvaluationPageResult'
    Device:
      type: string
      enum:
      - desktop
      - mobile
    UpdateSessionSolveCaptchasRequest:
      type: object
      required:
      - type
      - params
      properties:
        type:
          type: string
          enum:
          - solveCaptchas
        params:
          $ref: '#/components/schemas/UpdateSessionSolveCaptchasParams'
    UpdateSessionScreenParams:
      type: object
      required:
      - width
      - height
      properties:
        width:
          type: integer
          minimum: 500
          maximum: 3840
        height:
          type: integer
          minimum: 360
          maximum: 2160
    OperatingSystem:
      type: string
      enum:
      - windows
      - android
      - macos
      - linux
      - ios
    SessionLaunchState:
      type:
      - object
      - 'null'
      properties:
        useUltraStealth:
          type: boolean
        useStealth:
          type: boolean
        useProxy:
          type: boolean
        solveCaptchas:
          type: boolean
        solverType:
          type: string
          enum:
          - visual
          description: Optional CAPTCHA solver mode. Set to visual to use the visual reCAPTCHA solver.
        adblock:
          type: boolean
        trackers:
          type: boolean
        annoyances:
          type: boolean
        screen:
          $ref: '#/components/schemas/ScreenConfig'
        enableWebRecording:
          type: boolean
        enableVideoWebRecording:
          type: boolean
        enableLogCapture:
          type: boolean
        acceptCookies:
          type: boolean
        profile:
          $ref: '#/components/schemas/CreateSessionProfile'
        staticIpId:
          type: string
        saveDownloads:
          type: boolean
        enableWindowManager:
          type: boolean
        enableWindowManagerTaskbar:
          type: boolean
        viewOnlyLiveView:
          type: boolean
        disablePasswordManager:
          type: boolean
        enableAlwaysOpenPdfExternally:
          type: boolean
        disablePostQuantumKeyAgreement:
          type: boolean
    ProxyState:
      type:
      - string
      - 'null'
      enum:
      - AL
      - AK
      - AZ
      - AR
      - CA
      - CO
      - CT
      - DE
      - FL
      - GA
      - HI
      - ID
      - IL
      - IN
      - IA
      - KS
      - KY
      - LA
      - ME
      - MD
      - MA
      - MI
      - MN
      - MS
      - MO
      - MT
      - NE
      - NV
      - NH
      - NJ
      - NM
      - NY
      - NC
      - ND
      - OH
      - OK
      - OR
      - PA
      - RI
      - SC
      - SD
      - TN
      - TX
      - UT
      - VT
      - VA
      - WA
      - WV
      - WI
      - WY
      - al
      - ak
      - az
      - ar
      - ca
      - co
      - ct
      - de
      - fl
      - ga
      - hi
      - id
      - il
      - in
      - ia
      - ks
      - ky
      - la
      - me
      - md
      - ma
      - mi
      - mn
      - ms
      - mo
      - mt
      - ne
      - nv
      - nh
      - nj
      - nm
      - ny
      - nc
      - nd
      - oh
      - ok
      - or
      - pa
      - ri
      - sc
      - sd
      - tn
      - tx
      - ut
      - vt
      - va
      - wa
      - wv
      - wi
      - wy
      description: Optional state code for proxies to US states. Is mutually exclusive with proxyCity. Takes in two letter state code.
    GetSessionVideoRecordingUrlResponse:
      type: object
      properties:
        status:
          $ref: '#/components/schemas/RecordingStatus'
        recordingUrl:
          type:
          - string
          - 'null'
        error:
          type:
          - string
          - 'null'
      required:
      - status
    UpdateSessionProfileRequest:
      type: object
      required:
      - type
      - params
      properties:
        type:
          type: string
          enum:
          - profile
        params:
          $ref: '#/components/schemas/UpdateSessionProfileParams'
    CaptchaEvaluationType:
      type: string
      enum:
      - turnstile
      - cloudflare-challenge
      - aliexpress
      - recaptcha
      - amazon
      description: CAPTCHA target to evaluate manually.
    UpdateSessionSolveCaptchasParams:
      type: object
      required:
      - enabled
      properties:
        enabled:
          type: boolean
          description: Whether automatic CAPTCHA solving should be enabled for this running session.
        solverType:
          type: string
          enum:
          - visual
          description: Optional CAPTCHA solver mode. Set to visual to use the visual reCAPTCHA solver.
    ProxyCountry:
      type: string
      enum:
      - AD
      - AE
      - AF
      - AL
      - AM
      - AO
      - AR
      - AT
      - AU
      - AW
      - AZ
      - BA
      - BD
      - BE
      - BG
      - BH
      - BJ
      - BO
      - BR
      - BS
      - BT
      - BY
      - BZ
      - CA
      - CF
      - CH
      - CI
      - CL
      - CM
      - CN
      - CO
      - CR
      - CU
      - CY
      - CZ
      - DE
      - DJ
      - DK
      - DM
      - EC
      - EE
      - EG
      - ES
      - ET
      - EU
      - FI
      - FJ
      - FR
      - GB
      - GE
      - GH
      - GM
      - GR
      - HK
      - HN
      - HR
      - HT
      - HU
      - ID
      - IE
      - IL
      - IN
      - IQ
      - IR
      - IS
      - IT
      - JM
      - JO
      - JP
      - KE
      - KH
      - KR
      - KW
      - KZ
      - LB
      - LI
      - LR
      - LT
      - LU
      - LV
      - MA
      - MC
      - MD
      - ME
      - MG
      - MK
      - ML
      - MM
      - MN
      - MR
      - MT
      - MU
      - MV
      - MX
      - MY
      - MZ
      - NG
      - NL
      - 'NO'
      - NZ
      - OM
      - PA
      - PE
      - PH
      - PK
      - PL
      - PR
      - PT
      - PY
      - QA
      - RANDOM_COUNTRY
      - RO
      - RS
      - RU
      - SA
      - SC
      - SD
      - SE
      - SG
      - SI
      - SK
      - SN
      - SS
      - TD
      - TG
      - TH
      - TM
      - TN
      - TR
      - TT
      - TW
      - UA
      - UG
      - US
      - UY
      - UZ
      - VE
      - VG
      - VN
      - YE
      - ZA
      - ZM
      - ZW
      - ad
      - ae
      - af
      - al
      - am
      - ao
      - ar
      - at
      - au
      - aw
      - az
      - ba
      - bd
      - be
      - bg
      - bh
      - bj
      - bo
      - br
      - bs
      - bt
      - by
      - bz
      - ca
      - cf
      - ch
      - ci
      - cl
      - cm
      - cn
      - co
      - cr
      - cu
      - cy
      - cz
      - de
      - dj
      - dk
      - dm
      - ec
      - ee
      - eg
      - es
      - et
      - eu
      - fi
      - fj
      - fr
      - gb
      - ge
      - gh
      - gm
      - gr
      - hk
      - hn
      - hr
      - ht
      - hu
      - id
      - ie
      - il
      - in
      - iq
      - ir
      - is
      - it
      - jm
      - jo
      - jp
      - ke
      - kh
      - kr
      - kw
      - kz
      - lb
      - li
      - lr
      - lt
      - lu
      - lv
      - ma
      - mc
      - md
      - me
      - mg
      - mk
      - ml
      - mm
      - mn
      - mr
      - mt
      - mu
      - mv
      - mx
      - my
      - mz
      - ng
      - nl
      - 'no'
      - nz
      - om
      - pa
      - pe
      - ph
      - pk
      - pl
      - pr
      - pt
      - py
      - qa
      - ro
      - rs
      - ru
      - sa
      - sc
      - sd
      - se
      - sg
      - si
      - sk
      - sn
      - ss
      - td
      - tg
      - th
      - tm
      - tn
      - tr
      - tt
      - tw
      - ua
      - ug
      - us
      - uy
      - uz
      - ve
      - vg
      - vn
      - ye
      - za
      - zm
      - zw
    ImageCaptchaParam:
      type: object
      properties:
        imageSelector:
          type: string
        inputSelector:
          type: string
    UpdateSessionProxyParams:
      type: object
      required:
      - enabled
      properties:
        enabled:
          type: boolean
          description: Whether proxying should be active for the running session.
        staticIpId:
          type: string
          format: uuid
          description: Static IP allocation to use when enabling a static IP proxy.
        location:
          $ref: '#/components/schemas/UpdateSessionProxyLocationParams'
    UpdateSessionScreenRequest:
      type: object
      required:
      - type
      - params
      properties:
        type:
          type: string
          enum:
          - screen
        params:
          $ref: '#/components/schemas/UpdateSessionScreenParams'
    GetSessionRecordingUrlResponse:
      type: object
      properties:
        status:
          $ref: '#/components/schemas/RecordingStatus'
        recordingUrl:
          type:
          - string
          - 'null'
        error:
          type:
          - string
          - 'null'
      required:
      - status
    UpdateSessionProxyRequest:
      type: object
      required:
      - type
      - params
      properties:
        type:
          type: string
          enum:
          - proxy
        params:
          $ref: '#/components/schemas/UpdateSessionProxyParams'
    UpdateSessionProfileParams:
      type: object
      properties:
        persistChanges:
          type: boolean
          description: Whether profile changes should be persisted after the session ends.
        persistNetworkCache:
          type: boolean
          description: Whether network cache should be persisted into the profile.
    DownloadsStatus:
      type: string
      enum:
      - not_enabled
      - pending
      - in_progress
      - completed
      - failed
    ErrorResponse:
      type: object
      properties:
        message:
          type: string
    CreateSessionParams:
      type: object
      properties:
        useUltraStealth:
          type: boolean
          default: false
        useStealth:
          type: boolean
          default: false
        useProxy:
          type: boolean
          default: false
        proxyServer:
          type: string
        proxyServerPassword:
          type: string
        proxyServerUsername:
          type: string
        proxyCountry:
          $ref: '#/components/schemas/ProxyCountry'
        proxyState:
          $ref: '#/components/schemas/ProxyState'
        proxyCity:
          type:
          - string
          - 'null'
          example: new york
          description: Desired Country. Is mutually exclusive with proxyState. Some cities might not be supported, so before using a new city, we recommend trying it out
        region:
          $ref: '#/components/schemas/SessionRegion'
        operatingSystems:
          type: array
          items:
            $ref: '#/components/schemas/OperatingSystem'
        device:
          type: array
          items:
            $ref: '#/components/schemas/Device'
        platform:
          type: array
          items:
            $ref: '#/components/schemas/Platform'
        locales:
          type: array
          items:
            $ref: '#/components/schemas/ISO639_1'
          default:
          - en
        screen:
          $ref: '#/components/schemas/ScreenConfig'
        solveCaptchas:
          type: boolean
          default: false
        solverType:
          type: string
          enum:
          - visual
          description: Optional CAPTCHA solver mode. Set to visual to use the visual reCAPTCHA solver.
        adblock:
          type: boolean
          default: false
        trackers:
          type: boolean
          default: false
        annoyances:
          type: boolean
          default: false
        enableWebRecording:
          type: boolean
        enableVideoWebRecording:
          type: boolean
          default: false
          description: enableWebRecording must also be true for this to work
        profile:
          $ref: '#/components/schemas/CreateSessionProfile'
        acceptCookies:
          type: boolean
        staticIpId:
          type: string
          format: uuid
        saveDownloads:
          type: boolean
          default: false
        extensionIds:
          type: array
          items:
            type: string
            format: uuid
          default: []
        urlBlocklist:
          type: array
          items:
            type: string
          default: []
        browserArgs:
          type: array
          items:
            type: string
          default: []
        imageCaptchaParams:
          type:
          - array
          - 'null'
          items:
            type: object
            properties:
              imageSelector:
                type: string
              inputSelector:
                type: string
        timeoutMinutes:
          type: number
          minimum: 1
          maximum: 720
        enableWindowManager:
          type: boolean
          default: false
        enableWindowManagerTaskbar:
          type: boolean
          default: false
        viewOnlyLiveView:
          type: boolean
          default: false
        disablePasswordManager:
          type: boolean
          default: false
        enableAlwaysOpenPdfExternally:
          type: boolean
          default: false
        disablePostQuantumKeyAgreement:
          type: boolean
          default: false
      default:
        useStealth: false
        useProxy: false
        acceptCookies: false
    Session:
      type: object
      properties:
        id:
          type: string
          format: uuid
        teamId:
          type: string
          format: uuid
        status:
          type: string
          enum:
          - active
          - closed
          - error
        startTime:
          type:
          - string
          - 'null'
          format: timestamp-milliseconds
        endTime:
          type:
          - string
          - 'null'
          format: timestamp-milliseconds
        createdAt:
          type: string
          format: iso8601
        updatedAt:
          type: string
          format: iso8601
        launchState:
          $ref: '#/components/schemas/SessionLaunchState'
        creditsUsed:
          type:
          - number
          - 'null'
    ISO639_1:
      type: string
      enum:
      - aa
      - ab
      - ae
      - af
      - ak
      - am
      - an
      - ar
      - as
      - av
      - ay
      - az
      - ba
      - be
      - bg
      - bh
      - bi
      - bm
      - bn
      - bo
      - br
      - bs
      - ca
      - ce
      - ch
      - co
      - cr
      - cs
      - cu
      - cv
      - cy
      - da
      - de
      - dv
      - dz
      - ee
      - el
      - en
      - eo
      - es
      - et
      - eu
      - fa
      - ff
      - fi
      - fj
      - fo
      - fr
      - fy
      - ga
      - gd
      - gl
      - gn
      - gu
      - gv
      - ha
      - he
      - hi
      - ho
      - hr
      - ht
      - hu
      - hy
      - hz
      - i

# --- truncated at 32 KB (36 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/hyperbrowser/refs/heads/main/openapi/hyperbrowser-session-api-openapi.yml