> ## Documentation Index
> Fetch the complete documentation index at: https://hyperbrowser.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Create new sandbox



## OpenAPI

````yaml openapi.json POST /api/sandbox
openapi: 3.0.1
info:
  title: Hyperbrowser API
  version: 1.0.0
servers:
  - url: https://api.hyperbrowser.ai
    description: Production server
security: []
paths:
  /api/sandbox:
    post:
      tags:
        - Sandboxes
      summary: Create new sandbox
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateSandboxParams'
      responses:
        '200':
          description: Sandbox created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SandboxDetail'
      security:
        - ApiKeyAuth: []
components:
  schemas:
    CreateSandboxParams:
      type: object
      description: >-
        Provide exactly one start source: `imageName` (with optional `imageId`)
        or `snapshotName` (with optional `snapshotId`). `vcpus`, `memMiB`, and
        `diskSizeMiB` are only supported for image launches; snapshot launches
        always restore the snapshot's resources.
      properties:
        imageName:
          type: string
          description: >-
            Image name to launch from (base image such as `node`, `python`,
            `default`, or a custom image).
        imageId:
          type: string
          format: uuid
          description: Pin a specific image revision. Requires imageName.
        snapshotName:
          type: string
          description: Memory snapshot name to restore from.
        snapshotId:
          type: string
          format: uuid
          description: Pin a specific snapshot revision. Requires snapshotName.
        region:
          $ref: '#/components/schemas/SessionRegion'
        enableRecording:
          type: boolean
          default: false
        exposedPorts:
          type: array
          items:
            $ref: '#/components/schemas/SandboxExposePortParams'
          description: Ports to expose at launch.
        mounts:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/SandboxVolumeMount'
          description: Volume mounts, keyed by absolute mount path inside the sandbox.
        vcpus:
          type: integer
          minimum: 1
          maximum: 32
          description: vCPU count (image launches only).
        memMiB:
          type: integer
          minimum: 512
          maximum: 262144
          description: Memory in MiB (image launches only).
        diskSizeMiB:
          type: integer
          minimum: 2048
          maximum: 32768
          description: Disk size in MiB (image launches only).
        timeoutMinutes:
          type: integer
          maximum: 1440
          description: Maximum sandbox lifetime in minutes, measured from VM start.
        allowInternetAccess:
          type: boolean
          default: true
          description: Outbound internet access policy.
        allowOut:
          type: array
          items:
            type: string
          description: Outbound allow rules (IPv4 address, CIDR range, or domain).
        denyOut:
          type: array
          items:
            type: string
          description: Outbound deny rules (IPv4 address or CIDR range).
      oneOf:
        - title: Image launch
          required:
            - imageName
          not:
            anyOf:
              - required:
                  - snapshotName
              - required:
                  - snapshotId
        - title: Snapshot restore
          required:
            - snapshotName
          not:
            anyOf:
              - required:
                  - imageName
              - required:
                  - imageId
              - required:
                  - vcpus
              - required:
                  - memMiB
              - required:
                  - diskSizeMiB
    SandboxDetail:
      type: object
      properties:
        id:
          type: string
          format: uuid
        teamId:
          type: string
        status:
          $ref: '#/components/schemas/SandboxStatus'
        startTime:
          type: number
          nullable: true
          description: Start timestamp in epoch milliseconds.
        endTime:
          type: number
          nullable: true
          description: End timestamp in epoch milliseconds.
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        closeReason:
          type: string
          nullable: true
        creditsUsed:
          type: number
          nullable: true
        region:
          $ref: '#/components/schemas/SessionRegion'
        vcpus:
          type: integer
          nullable: true
        memMiB:
          type: integer
          nullable: true
        diskSizeMiB:
          type: integer
          nullable: true
        timeoutMinutes:
          type: integer
          nullable: true
        network:
          $ref: '#/components/schemas/SandboxNetworkPolicy'
        sessionUrl:
          type: string
          description: Dashboard URL for this sandbox.
        duration:
          type: number
          description: Total runtime in milliseconds (0 while running).
        proxyBytesUsed:
          type: number
        runtime:
          $ref: '#/components/schemas/SandboxRuntimeTarget'
        exposedPorts:
          type: array
          items:
            $ref: '#/components/schemas/SandboxExposedPort'
        token:
          type: string
          nullable: true
          description: >-
            Sandbox runtime session token (24h TTL). Null when the sandbox is
            unavailable.
        tokenExpiresAt:
          type: string
          format: date-time
          nullable: true
      required:
        - id
        - status
        - region
        - runtime
        - exposedPorts
    SessionRegion:
      type: string
      enum:
        - us
        - us-central
        - us-west
        - us-east
        - asia-south
        - europe-west
    SandboxExposePortParams:
      type: object
      properties:
        port:
          type: integer
          minimum: 1
          maximum: 65535
          description: Port inside the sandbox to expose.
        auth:
          type: boolean
          default: false
          description: Require authentication for requests to the exposed URL.
      required:
        - port
    SandboxVolumeMount:
      type: object
      description: >-
        A volume mount attached at sandbox launch. Keys of the `mounts` map are
        absolute mount paths inside the sandbox.
      properties:
        id:
          type: string
          format: uuid
          description: Volume ID.
        type:
          type: string
          enum:
            - rw
            - ro
          default: rw
          description: Mount access mode.
        shared:
          type: boolean
          description: Allow the volume to be mounted by multiple sandboxes at once.
      required:
        - id
    SandboxStatus:
      type: string
      enum:
        - active
        - closed
        - close-error
        - error
      description: Current sandbox lifecycle status.
    SandboxNetworkPolicy:
      type: object
      description: Effective outbound network policy for a sandbox.
      properties:
        allowInternetAccess:
          type: boolean
          default: true
          description: Whether general outbound internet access is allowed.
        allowOut:
          type: array
          items:
            type: string
          description: >-
            Outbound allow rules. Each entry is an IPv4 address, CIDR range, or
            domain.
        denyOut:
          type: array
          items:
            type: string
          description: Outbound deny rules. Each entry is an IPv4 address or CIDR range.
      required:
        - allowInternetAccess
        - allowOut
        - denyOut
    SandboxRuntimeTarget:
      type: object
      description: >-
        Connection details for the sandbox runtime API (process execution,
        files, terminals).
      properties:
        transport:
          type: string
          enum:
            - regional_proxy
        host:
          type: string
          description: Regional runtime origin.
        baseUrl:
          type: string
          description: Base URL for runtime API requests for this sandbox.
      required:
        - transport
        - host
        - baseUrl
    SandboxExposedPort:
      type: object
      properties:
        port:
          type: integer
          minimum: 1
          maximum: 65535
        auth:
          type: boolean
          description: Whether requests to the exposed URL require authentication.
        url:
          type: string
          description: Public URL that routes to the exposed port.
        browserUrl:
          type: string
          description: >-
            URL that bootstraps browser access. For authenticated ports this
            includes a short-lived grant token.
        browserUrlExpiresAt:
          type: string
          format: date-time
          nullable: true
          description: Expiry of the browser bootstrap grant, if auth is enabled.
      required:
        - port
        - auth
        - url
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key

````