Limits#

Default limits during the private beta. Contact support to raise account-level limits. Values marked target are service objectives, not guarantees.

Account#

Limit Free Starter Team Enterprise
Concurrent sandboxes (not paused or deleted) 2 10 1,000+ Custom
Bulk fork (count per call) 2 10 50 100
Included usage 20 h default, one-time $19 credit / month (expires) $199 credit / month (expires) Contract

Paused sandboxes do not count toward the concurrency limit. Exceeding it returns 409 concurrency_limit_reached. Check GET /limits (concurrent_sandboxes.used, bulk_fork.max_count, can_create) before large batches.

Admission is atomic: parallel requests of one account cannot together go over the limit, and a bulk fork either creates all count sandboxes or none.

New accounts. A Free account that is not verified yet (no card, no GitHub verification) gets stricter defaults for its first 7 days: no bulk fork (count 1) and 30 starts per minute. GET /limits shows new_account.active and new_account.until.

Account restrictions. If an account breaks the acceptable use policy, its sandboxes can be throttled or have outbound ports blocked; new sandboxes and forks of that account get the same restrictions from the start. A suspended account gets 403 with details.reason = "account_suspended" (and details.suspended_at, details.contact) on every call except reads; its sandboxes are paused and the data is kept.

API rate limits#

Policy Limit Applies to
default 6,000 requests / 60 s per API key (requests without a valid key: per client IP) All endpoints
starts 300 / 60 s per account (30 for new unverified Free accounts) POST /sandboxes, POST /sandboxes/{id}/resume, POST /sandboxes/{id}/fork

Every response carries the current state in IETF draft headers:

RateLimit-Policy: "default";q=6000;w=60, "starts";q=300;w=60
RateLimit: "default";r=5987;t=42

When you exceed a limit you get 429 with "code": "rate_limited", "retryable": true and a Retry-After header (seconds). An open SSE stream or WebSocket counts as one request. Implicit resumes caused by wake on request do not count toward starts.

Sandboxes#

Resource Limit
Sizes small 2 vCPU / 4 GB / 20 GB, default 4 vCPU / 8 GB / 50 GB, large 8 vCPU / 16 GB / 100 GB
disk_gb 20–1,000 GB (above the included disk is billed)
auto_pause.idle_timeout_seconds 60–86,400 s, default 300
ttl_seconds ≥ 60 s, or null (no expiry, default)
Labels 32 per sandbox; key up to 63 chars, value up to 255
env at create 100 variables, 64 KiB total
metadata 16 KiB
Name 120 characters
Create from template, p95 < 500 ms (target)
Resume from pause, p95 < 800 ms (target)
Fork with memory, p95 < 2 s (target)
Bulk fork (count per call) up to the account's limit (Free 2, Starter 10, Team 50, Enterprise 100; up to 500 on request), all or nothing; above it 403 with details.reason = "fork_count_limit"
Nested virtualization (/dev/kvm), GPU Not available (roadmap)

Exec#

Resource Limit
Concurrent commands per sandbox at least 10
Sync timeout_seconds default 60, max 600
Background commands no time limit
Captured output in a sync response 8 MiB per stream (truncated: true beyond)
SSE stream output unlimited
Replay when attaching to a command last 8 MiB per stream
Command history 7 days
PTY idle timeout default 1,800 s, max 86,400 s
PTY connect URL validity 60 s until first connect

Files#

Resource Limit
Read / write through the API (/files/content) 1 GiB per request
Multipart upload 1 GiB per request
Signed upload / download URLs 10 GiB per file; valid 60–3,600 s (default 900)
Directory listing page size 100 entries per page

Networking#

Resource Limit
Exposed ports per sandbox 20
Protocols HTTP/1.1, HTTP/2, WebSocket over HTTPS. Raw TCP/UDP: Coming soon
Access token TTL (private ports) 60–86,400 s, default 3,600
SSH access TTL 60 s – 7 days, default 3,600 s
Egress allowlist Coming soon
Region EU only (eu-de, eu-fi)

Desktop#

Resource Limit
Templates desktop or a template built with desktop: true
Minimum size default
Resolution 1920x1080
Stream URL TTL 60–86,400 s, default 600
Screenshot latency, p95 < 300 ms (target)
Input actions per request 100
GPU / WebRTC 60 fps Not available (roadmap)

Snapshots, templates, webhooks, keys#

Resource Limit
Free snapshot storage 30 days per snapshot
Webhook endpoints 10 per account, HTTPS on port 443
Webhook delivery respond within 10 s; up to 8 attempts over 24 h
Webhook delivery history 30 days
API key lifetime default 90 days, max 365 days, or no expiry
Idempotency keys 255 characters, kept 24 h