Hyperbrowser Sessions API

Manage cloud Chromium browser sessions: create, list, inspect, update, and stop sessions; retrieve recording, video, and downloads URLs; and run manual CAPTCHA evaluation. Sessions expose a WebSocket CDP endpoint and an optional live-view URL.

Hyperbrowser Sessions API is one of 8 APIs that Hyperbrowser publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 2 machine-runnable capabilities that can be deployed as REST, MCP, or Agent Skill surfaces via Naftiko and 2 JSON Schema definitions.

Tagged areas include Sessions, Browser Infrastructure, Stealth, and Proxies. The published artifact set on APIs.io includes API documentation, an API reference, an OpenAPI specification, sample payloads, 2 Naftiko capability specs, and 2 JSON Schemas.

OpenAPI Specification

hyperbrowser-sessions-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Hyperbrowser Sessions API
  version: 1.0.0
  description: 'Manage cloud Chromium browser sessions: create, list, inspect, update, stop, plus recording, video, and downloads
    URLs and CAPTCHA evaluation.'
  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: []
paths:
  /api/session:
    post:
      operationId: post-api-session
      summary: Create New Session
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateSessionParams'
      responses:
        '200':
          description: Session created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SessionDetail'
      security:
      - ApiKeyAuth: []
      tags:
      - Sessions
  /api/session/{id}:
    get:
      operationId: get-api-session-id
      summary: Get Session by 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'
      security:
      - ApiKeyAuth: []
      tags:
      - Sessions
  /api/session/{id}/stop:
    put:
      operationId: put-api-session-id-stop
      summary: Stop a Session
      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'
      security:
      - ApiKeyAuth: []
      tags:
      - Sessions
  /api/session/{id}/update:
    put:
      operationId: put-api-session-id-update
      summary: Update a Running Session
      description: Update supported settings on an active browser session. Supported update types are profile, proxy, screen,
        and solveCaptchas.
      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'
      security:
      - ApiKeyAuth: []
      tags:
      - Sessions
  /api/session/{id}/captcha/evaluate:
    post:
      operationId: post-api-session-id-captcha-evaluate
      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.
      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'
      security:
      - ApiKeyAuth: []
      tags:
      - Sessions
  /api/sessions:
    get:
      operationId: get-api-sessions
      summary: Get List of Sessions
      parameters:
      - name: page
        in: query
        schema:
          type: number
          required:
          - 'false'
          default: 1
      - name: status
        in: query
        schema:
          type: string
          enum:
          - active
          - closed
          - error
          required:
          - 'false'
      responses:
        '200':
          description: List of sessions
          content:
            application/json:
              schema:
                type: object
                properties:
                  sessions:
                    type: array
                    items:
                      $ref: '#/components/schemas/Session'
                  totalCount:
                    type: number
                    example: 100
                  page:
                    type: number
                    example: 1
                  pageSize:
                    type: number
                    example: 10
        '400':
          description: Invalid query parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - ApiKeyAuth: []
      tags:
      - Sessions
  /api/session/{id}/recording-url:
    get:
      operationId: get-api-session-id-recording-url
      summary: Get Session Recording URL
      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'
      security:
      - ApiKeyAuth: []
      tags:
      - Sessions
  /api/session/{id}/video-recording-url:
    get:
      operationId: get-api-session-id-video-recording-url
      summary: Get Session Video Recording URL
      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'
      security:
      - ApiKeyAuth: []
      tags:
      - Sessions
  /api/session/{id}/downloads-url:
    get:
      operationId: get-api-session-id-downloads-url
      summary: Get Session Downloads URL
      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'
      security:
      - ApiKeyAuth: []
      tags:
      - Sessions
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: Account API key from app.hyperbrowser.ai
  schemas:
    BasicResponse:
      type: object
      properties:
        success:
          type: boolean
    CaptchaEvaluationPageResult:
      type: object
      properties:
        url:
          type: string
        targetId:
          type: string
          nullable: true
        iterationsRun:
          type: integer
        solved:
          type: boolean
        solvedCaptchas:
          type: array
          items:
            $ref: '#/components/schemas/CaptchaEvaluationType'
        checkedCaptchas:
          type: array
          items:
            $ref: '#/components/schemas/CaptchaEvaluationType'
        captchaSolvedCounts:
          type: object
          additionalProperties:
            type: number
        lastSolveTime:
          type: object
          additionalProperties:
            type: number
    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
    CaptchaEvaluationResponse:
      type: object
      properties:
        success:
          type: boolean
        captcha:
          allOf:
          - $ref: '#/components/schemas/CaptchaEvaluationType'
          nullable: true
        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'
    CaptchaEvaluationType:
      type: string
      enum:
      - turnstile
      - cloudflare-challenge
      - aliexpress
      - recaptcha
      - amazon
      description: CAPTCHA target to evaluate manually.
    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
          example: new york
          nullable: true
          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
            nullable: false
          default: []
        urlBlocklist:
          type: array
          items:
            type: string
            nullable: false
          default: []
        browserArgs:
          type: array
          items:
            type: string
            nullable: false
          default: []
        imageCaptchaParams:
          type: array
          items:
            type: object
            properties:
              imageSelector:
                type: string
              inputSelector:
                type: string
          nullable: true
        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
    CreateSessionProfile:
      type: object
      properties:
        id:
          type: string
        persistChanges:
          type: boolean
        persistNetworkCache:
          type: boolean
          description: When persisting profile changes, also persist the browser's network cache (HTTP cache).
    Device:
      type: string
      enum:
      - desktop
      - mobile
    DownloadsStatus:
      type: string
      enum:
      - not_enabled
      - pending
      - in_progress
      - completed
      - failed
    ErrorResponse:
      type: object
      properties:
        message:
          type: string
    GetSessionDownloadsUrlResponse:
      type: object
      properties:
        status:
          $ref: '#/components/schemas/DownloadsStatus'
        downloadsUrl:
          type: string
          nullable: true
        error:
          type: string
          nullable: true
      required:
      - status
    GetSessionRecordingUrlResponse:
      type: object
      properties:
        status:
          $ref: '#/components/schemas/RecordingStatus'
        recordingUrl:
          type: string
          nullable: true
        error:
          type: string
          nullable: true
      required:
      - status
    GetSessionVideoRecordingUrlResponse:
      type: object
      properties:
        status:
          $ref: '#/components/schemas/RecordingStatus'
        recordingUrl:
          type: string
          nullable: true
        error:
          type: string
          nullable: true
      required:
      - status
    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
      - ia
      - id
      - ie
      - ig
      - ii
      - ik
      - io
      - is
      - it
      - iu
      - ja
      - jv
      - ka
      - kg
      - ki
      - kj
      - kk
      - kl
      - km
      - kn
      - ko
      - kr
      - ks
      - ku
      - kv
      - kw
      - ky
      - la
      - lb
      - lg
      - li
      - ln
      - lo
      - lt
      - lu
      - lv
      - mg
      - mh
      - mi
      - mk
      - ml
      - mn
      - mo
      - mr
      - ms
      - mt
      - my
      - na
      - nb
      - nd
      - ne
      - ng
      - nl
      - nn
      - 'no'
      - nr
      - nv
      - ny
      - oc
      - oj
      - om
      - or
      - os
      - pa
      - pi
      - pl
      - ps
      - pt
      - qu
      - rm
      - rn
      - ro
      - ru
      - rw
      - sa
      - sc
      - sd
      - se
      - sg
      - si
      - sk
      - sl
      - sm
      - sn
      - so
      - sq
      - sr
      - ss
      - st
      - su
      - sv
      - sw
      - ta
      - te
      - tg
      - th
      - ti
      - tk
      - tl
      - tn
      - to
      - tr
      - ts
      - tt
      - tw
      - ty
      - ug
      - uk
      - ur
      - uz
      - ve
      - vi
      - vo
      - wa
      - wo
      - xh
      - yi
      - yo
      - za
      - zh
      - zu
    ImageCaptchaParam:
      type: object
      properties:
        imageSelector:
          type: string
        inputSelector:
          type: string
    OperatingSystem:
      type: string
      enum:
      - windows
      - android
      - macos
      - linux
      - ios
    Platform:
      type: string
      enum:
      - chrome
      - firefox
      - safari
      - edge
    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
    ProxyState:
      type: string
      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
      nullable: true
      description: Optional state code for proxies to US states. Is mutually exclusive with proxyCity. Takes in two letter
        state code.
    RecordingStatus:
      type: string
      enum:
      - not_enabled
      - pending
      - in_progress
      - completed
      - failed
    ScreenConfig:
      type: object
      properties:
        width:
          type: number
          default: 1280
        height:
          type: number
          default: 720
    Session:
      type: object
      properties:
        id:
          type: string
          format: uuid
        teamId:
          type: string
          format: uuid
        status:
          type: string
          enum:
          - active
          - closed
          - error
        startTime:
          type: string
          format: timestamp-milliseconds
          nullable: true
        endTime:
          type: string
          format: timestamp-milliseconds
          nullable: true
        createdAt:
          type: string
          format: iso8601
        updatedAt:
          type: string
          format: iso8601
        launchState:
          $ref: '#/components/schemas/SessionLaunchState'
        creditsUsed:
          type: number
          nullable: true
    SessionDetail:
      allOf:
      - $ref: '#/components/schemas/Session'
      - type: object
        properties:
          sessionUrl:
            type: string
          liveUrl:
            type: string
          token:
            type: string
          wsEndpoint:
            type: string
          webdriverEndpoint:
            type: string
          computerActionEndpoint:
            type: string
    SessionLaunchState:
      type: object
      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
      nullable: true
    SessionRegion:
      type: string
      enum:
      - us-central
      - us-west
      - us-east
      - asia-south
      - europe-west
    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.
    UpdateSessionProfileRequest:
      type: object
      required:
      - type
      - params
      properties:
        type:
          type: string
          enum:
          - profile
        params:
          $ref: '#/components/schemas/UpdateSessionProfileParams'
    UpdateSessionProxyLocationParams:
      type: object
      properties:
        country:
          $ref: '#/components/schemas/ProxyCountry'
        state:
          $ref: '#/components/schemas/ProxyState'
        city:
          type: string
          description: City for managed proxy geolocation.
    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'
    UpdateSessionProxyRequest:
      type: object
      required:
      - type
      - params
      properties:
        type:
          type: string
          enum:
          - proxy
        params:
          $ref: '#/components/schemas/UpdateSessionProxyParams'
    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'
    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.
    UpdateSessionScreenParams:
      type: object
      required:
      - width
      - height
      properties:
        width:
          type: integer
          minimum: 500
          maximum: 3840
        height:
          type: integer
          minimum: 360
          maximum: 2160
    UpdateSessionScreenRequest:
      type: object
      required:
      - type
      -

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