100, counting every box that is not deleted (paused and deep sleep included); 1 on the free credit. With an empty balance and no overage nothing starts or wakes (Running out)
1 to 32 characters, lowercase letters, digits, and hyphens, starting and ending with a letter or digit; unique in the workspace
Sizes
7, Nano to Extra Large (Machines); on the free credit, Nano to Small. No resize while provisioning, resizing, or moving; the disk never shrinks (Resize)
Auto-pause window
30 minutes to 7 days idle; the dashboard offers 30 minutes to 24 hours, the CLI and API the whole range (Auto-pause). An auto-pause floor caps members' boxes
Pause deadline
5 minutes to 30 days ahead, on a running box only (Pause deadline)
Deep sleep
After 14 days paused the disk is parked as a snapshot; waking takes a few minutes (States)
Region moves
4 per box in any rolling 24 hours, one at a time, running boxes only; 2 regions (Regions)
Undo after delete
7 days, as a final snapshot under Recently deleted (Data retention)
Capacity
Not a per-workspace number. When no machine of that size is available, a new box waits in provisioning and is retried, or ends in provision_failed with the reason in its events; delete it and create again, or pick another size
20. A snapshot still being deleted counts until its storage is released; fork copies, automatic snapshots, and Recently deleted copies never count (Snapshots)
Snapshot or template name
1 to 64 characters of letters, digits, ., _, and -, starting and ending with a letter or digit
Automatic snapshots per box
keep of 1 to 10 (default 5), every 1 to 168 whole hours; each expires after keep x interval
Snapshots in flight per box
1
Fork disk copy
30 minutes, then the new box is marked failed
Restore target
Any size whose disk holds the snapshot; a smaller disk is refused with the numbers
Region
A snapshot restores into the region its box was in
Balance
Any snapshot needs a funded balance or an active plan
prizedexec, prizedcp, the edge API, and the dashboard's Files tab (Run commands and files).
Limit
Value
Synchronous run
600 seconds through the API (default 30); prizedexec has no limit unless you pass --timeout
Output kept per stream
The last 1 MiB, flagged as truncated
Exec request document
1 MiB
Environment variables per run
32
Inline file read or write
1 MiB
Upload or download
1 GiB, and 30 minutes per request. A directory download that reaches the cap is cut off, so a truncated archive never looks complete
Detached process log tail
16 KiB by default, 1 MiB at most. The process itself has no time limit, and its logs are never deleted for you
Concurrent requests
8 per token and 8 per box
Request rate
20 per second sustained, bursts of 40, per token and per box; over it answers 429rate_limited with Retry-After
JSON request body
64 KiB on most /api/v1 routes; 128 KiB on the secrets routes; 2 MiB on the environment routes
Dashboard Files tab
1 MiB in the inline editor; 100 MiB per upload or download; one operation at a time per tab; a folder listing shows 2,000 entries and marks itself truncated past that
100 rows a page by default, 1,000 at most per request; the CSV carries up to 50,000 rows
Audit export
An https URL of up to 2,048 characters on a public host, and a secret of 16 to 256 characters; 500 events a delivery, 20 deliveries an hourly pass, 10 seconds a request (Scheduled export)
Reported audit detail
16 keys of up to 40 characters, strings up to 512 characters, a body up to 64 KiB
Box metrics 30 days, CLI usage aggregates 90 days, audit rows 90 days by default (7 to 365 by policy), finished deletion operations 30 days. The windows and their zero data retention variants are on Data retention.
The HTTP status and an error code, with a message that quotes the numbers: 409box_limit, 409insufficient_balance, 429snapshot_limit, 402secret_limit, 400invalid_name, 400invalid_auto_pause, 400invalid_pause_at, 400environment_too_large, 400too_many_repos, 400too_many_files, 409prompt_in_progress, 413payload_too_large, 403policy_denied (with rule and message), 403secret_not_granted, 429rate_limited with Retry-After
The CLI
The exit code table: a value outside a range is USAGE (2) before anything is sent; the box count, a taken name, or a balance that cannot run the box is CONFLICT (6); the snapshot limit and a refused lifecycle change are CHECK_FAILED (5) with the control plane's sentence. --json carries the same code and message in error
The dashboard
The same sentence next to the control that asked, or the control is not offered: a size the balance cannot run cannot be picked, and the pause deadline is hidden on a paused box