Limits.
Every hard cap a box or a workspace can hit, in one place. Counts, sizes, windows, and rates, with what the refusal looks like when you reach one.
Each table names the limit and links the page that explains the behaviour around it. Money is not here: the plan range, top-ups, the rollover cap, and the free credit are on Billing.
Boxes
| Limit | Value |
|---|---|
| Boxes per workspace | 100, counting every box that is not deleted (paused and deep sleep included). With an empty balance and no overage the count is 0: nothing new starts and nothing wakes (Running out) |
| Balance to create, wake, or resize | Enough to run the whole resulting fleet for 4 hours (Starting and resizing boxes) |
| Box name | 1 to 32 characters, lowercase letters, digits, and hyphens, starting and ending with a letter or digit; unique in the workspace (Several boxes) |
| Sizes | 7, Nano to Extra Large (Machines). A box cannot resize while it is provisioning, resizing, or moving, and its disk never shrinks (Resize) |
| Auto-pause window | 30 minutes to 7 days of idle time. The dashboard offers 30 minutes to 24 hours; the CLI and the API take the whole range (Auto-pause) |
| 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, and 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) |
| Fleet capacity | Not a per-workspace number. When Prized's fleet has no room for another machine, a new box waits in provisioning and the launch is retried every 5 minutes; the wait shows on the box page as one reconciler:fleet_cap event. When AWS is short of the size itself, the launch tries the fallback instance types in every zone of the region, three rounds about 30 seconds and then about 2 minutes apart, and then the box reads provision_failed and shows a reconciler:capacity_exhausted event: delete it and create again, or pick another size |
Snapshots
The behaviour behind each row is on Snapshots.
| Limit | Value |
|---|---|
| Manual and template snapshots per workspace | 20. A snapshot still being deleted counts until its storage is released; fork copies, automatic snapshots, and the Recently deleted copies never count |
| 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 belongs to the region its box was in and restores into that region |
| Balance | Taking any snapshot needs a funded balance or an active plan |
Environments
The behaviour behind each row is on Environments.
| Limit | Value |
|---|---|
| Environment name | 1 to 64 characters of letters, digits, ., _, and -, starting and ending with a letter or digit |
| Env vars per environment | 64, each value a single line of up to 4,096 characters |
| Per-box vars | 100 names and 64 KiB of names and values together, inside the launch budget together with the environment |
| Repos per environment | 16, each with an optional setup script of up to 8 KiB |
| Secret files per environment | 16, each up to 64 KiB, at a path of up to 256 characters |
| Setup script | 16 KiB |
| Launch budget | The whole launch, the environment plus the box's own vars as rendered for a snapshot restore (the larger launch shape), must fit EC2's 16 KiB gzipped user-data; a save or a create that would not is refused as environment_too_large |
| Versions kept | 50 per environment; older ones that no live box pins are pruned |
Commands and files
prized exec, prized cp, the edge API, and the dashboard's Files tab; the behaviour is on Run commands and files.
| Limit | Value |
|---|---|
| Synchronous run | 600 seconds through the API (default 30); prized exec has no limit unless you pass --timeout |
| Output kept per stream | 1 MiB, 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 on the box and the connection closed, 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, in bursts of 40, per token and per box; over it answers 429 rate_limited with a Retry-After header |
| Dashboard Files tab | 1 MiB in the inline editor; 100 MiB per upload or download; operations run one at a time per tab; a folder listing shows 2,000 entries and marks itself truncated past that |
Prompting an agent remotely
The behaviour behind each row is on Prompt an agent remotely.
| Limit | Value |
|---|---|
| Prompt | 512 KiB |
| Runs in progress per box | 1. A second start answers 409 prompt_in_progress unless it asks to be queued (One run at a time) |
| Runs listed | 50, newest first; older run directories stay on the box |
| Events per page | 200 by default, 1,000 at most, or 1 MiB, whichever comes first; one event of any size is always delivered |
| Event text | 8 KiB per event (the raw line is kept whole); a single event over 32 MiB cannot be delivered |
| Requests | As for commands and files above |
API requests
| Limit | Value |
|---|---|
| JSON request body | 64 KiB on most /api/v1 routes; 128 KiB on the secrets routes; 2 MiB on the environment routes |
Sync, sessions, and ports
| Limit | Value |
|---|---|
| File size in a synced project | 256 MB; larger files are skipped and named by prized sync ls (Sync) |
| First sync | Up to 3 minutes for the box to install the sync agent and move the first bytes before it is called broken (Sync) |
| Drag-and-drop upload | 512 MB per drop, one file or several; drops older than 7 days are cleaned out (Sessions) |
| Mirrored ports | 3000 through 9999 by default; never below 1024, never 22 or 7377; 5900 off by default; TCP only (Ports) |
Desktop
The behaviour behind each row is on Desktop.
| Limit | Value |
|---|---|
| Per box | One desktop and one browser window |
| Screen | 1920x1080, scaled to your window; VNC, no audio, no GPU |
| Browser profile name | Letters, digits, - and _, up to 64 characters |
Secrets and access
| Limit | Value |
|---|---|
| Secrets per workspace | 100 (Secrets for agents) |
| Secret name and value | The name is SCREAMING_SNAKE, a letter first, up to 128 characters; the value up to 16 KiB |
| Allowlisted hosts per secret | 32 |
| SSH certificates | Short-lived, 15 minutes each, minted for you as you connect |
| Phone access password | One per box. It does not expire; generating a new one, or revoking, replaces it everywhere (From your phone) |
| Phone access gateway | 8 connections per box at once; a connection with nothing running on it is closed after 15 idle minutes |
Workspace
| Limit | Value |
|---|---|
| CLI tokens | No cap; revoke any of them from Dashboard → Workspace → CLI tokens (CLI tokens) |
| Members | No cap |
| Invite link | Does not expire; it is replaced when you click New link or remove a member (Invite people) |
| Workspace icon | 1 MiB per upload |
| Startup deal link | 30 days (Custom plans) |
Retention
The windows and their zero data retention variants are on Data retention.
| Kept | For |
|---|---|
| Box metrics (CPU, memory, disk, network) | 30 days |
| CLI usage aggregates | 90 days |
Finished deletion operations (dop_…) | 30 days |
How limits fail
| Where | What you see |
|---|---|
| The API | The HTTP status and an error code, with a message that quotes the numbers: 409 box_limit, 409 insufficient_balance, 429 snapshot_limit, 402 secret_limit, 400 invalid_name, 400 invalid_auto_pause, 400 invalid_pause_at, 400 environment_too_large, 400 too_many_repos, 400 too_many_files, 409 prompt_in_progress, 413 payload_too_large, and 429 rate_limited with a Retry-After header |
| The CLI | The exit code table. A value outside a range is USAGE (2) before anything is sent (--auto-pause 8d, a --ttl under 5 minutes); 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 (the fifth region move, a resize while the box is busy) are CHECK_FAILED (5) with the control plane's sentence as the message. --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 is listed but cannot be picked, and the pause deadline is hidden on a paused box |
| The box page | A create waiting on fleet capacity shows a reconciler:fleet_cap event; a launch AWS could not place ends in provision_failed with a reconciler:capacity_exhausted event |
Something unclear or out of date?
Billing
Pick a monthly plan from $10 to $1,000, or one sized to your boxes past that. It lands as credit every cycle, boxes bill by the hour against it, and unused credit rolls over up to two months of your plan.
Data retention
What pausing, deleting, and closing keep and remove; the undo window for deleted boxes; zero data retention; and what is retained afterwards.