Skip to main content
POST
Create a sandbox

Authorizations

Authorization
string
header
required

API key

Query Parameters

wait
boolean
default:false

Hold the request for a completed sandbox lifecycle transition

Body

application/json
name
string

Sandbox name, unique within the account. A random word-list name is generated when omitted.

Required string length: 1 - 63
Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
vcpu_count
integer
default:1
Required range: 1 <= x <= 32
mem_size_mib
integer
default:2048
Required range: 256 <= x <= 65536
base_image
string
default:ubuntu:26.04

Public Linux OCI image reference. Docker shorthand and tags are accepted; the selected platform manifest is pinned at creation.

ports
integer[]

TCP ports to expose publicly when the sandbox is created.

Required range: 1 <= x <= 65535
enable_service_ingress
boolean
default:false

Allow services inside the sandbox to expose ingress. When false, services still run but their ports must be exposed explicitly through the API. Retained across starts, resumes, and forks.

env
object

Environment variables applied to every process

network
object

Sandbox network policy. New sandboxes on free plans receive deny-all egress with no allowlist exceptions. Start/resume and forks retain the stored policy. For paid accounts, egress is unrestricted when omitted.

max_ttl_seconds
integer
default:86400

Lifetime budget applied independently to each powered-on session. Expiry pauses the sandbox, preserving memory and processes for resume.

Required range: 60 <= x <= 86400
idle_ttl_seconds
integer

Pause after this many seconds without a direct process connection, preserving memory and processes for resume. Omit or set to zero to disable idle expiry.

Required range: 0 <= x <= 86400
max_concurrent_execs
integer

Maximum number of concurrently attached process sessions. Detached processes and one-shot process controls do not count.

Response

The sandbox was created

success
boolean
required
Example:

true

data
object
required