Resume a sandbox
Start a stopped sandbox again with its disk as it was. Billed like a create: $0.01, then machine time, and it passes the same checks. Not available with test-mode keys.
Authorization
AuthorizationheaderrequiredBearer YOUR_API_KEY. Create a key in the dashboard.
Path parameters
sandboxIdstringrequiredSandbox ID.
Body
application/json · optional
timeoutSecondsintegerA new timeout for this run.
nullturns auto-stop off for this and later runs. Omit to keep the sandbox's.Limitsmin 60 · max 86400
Responses
202Accepted. The sandbox is starting.
sandboxobjectrequiredAn isolated Linux machine. It is billed per second while
startingorrunning(with a one-minute minimum per run), plus $0.01 each time it is created or resumed. A stopped sandbox costs nothing.17 properties
idstringrequirednamestringYour label for it, set with
nameon create. Copies keep their source's name.statusstringrequiredstarting: accepted, the machine is being prepared. Commands and file calls wait for it.running: the machine is up. Machine time is billed.stopping: a stop was requested; billing already ended.stopped: the disk is kept untilexpiresAt, andPOST /resumestarts it again. Not billed.failed: the machine could not start or failed on its host. SeefailureReason. A sandbox that fails before it ever runs gets its start fee back.
One ofstartingrunningstoppingstoppedfailedsizestringrequiredMachine size, and its price per hour of machine time: -
small: 2 vCPU, 4 GB RAM. $0.0225/h. -default: 4 vCPU, 8 GB RAM. $0.045/h. -large: 8 vCPU, 16 GB RAM. $0.09/h.One ofsmalldefaultlargetimeoutSecondsintegerrequiredThe sandbox is stopped automatically this many seconds after it started (or was last resumed). Checked every minute.
nullwhen auto-stop is off: it runs until you stop it, or until the balance, the spend cap or leaving the paid plan stops it.ephemeralbooleanrequiredCreated with
ephemeral: true. Its disk is never saved: a stop erases it,expiresAtis the moment it stopped, and resume answers409 sandbox_expired.metadataobjectrequiredWhat you attached when creating it. Kept by Zavu only; never visible inside the machine.
1 properties
{key}string
startedAtstring<date-time>When the current or last run was accepted.
stoppedAtstring<date-time>When the last run ended. Null while starting or running.
expiresAtstring<date-time>Present while
stopped: when the disk is deleted, 14 days after the stop, or the stop itself for an ephemeral sandbox. After it, resume answers409 sandbox_expired.stopReasonstringrequiredWhy the last run ended, while
stoppingorstopped; null otherwise.requested: you stopped it, from the API or the dashboard.timeout: itstimeoutSecondspassed.insufficient_balanceandspend_cap_reached: the balance or the monthly spend cap no longer covered 15 more minutes.plan: the team left its paid plan.provider: it ended on its host. Thesandbox.stoppedproject webhook carries the same value.One ofrequestedtimeoutinsufficient_balancespend_cap_reachedplanprovidernullcostTotalnumberrequiredUSD charged for this sandbox so far: start fees plus machine time. Machine time of a running sandbox is settled every five minutes, so this lags by up to five minutes until it stops.
failureReasonstringWhy it failed. Present only when
statusisfailed.forkedFromSandboxIdstringThe sandbox this one is a copy of, when it was made with
POST /v1/sandboxes/{sandboxId}/fork.fromSnapshotIdstringThe project's saved snapshot it started from. Null when it started blank, as a copy, or from another team's shared snapshot.
createdAtstring<date-time>requiredupdatedAtstring<date-time>required
400Invalid body, or the key is a test-mode key: sandboxes need a live key.
codestringrequiredmessagestringrequireddetailsobject
401Unauthorized.
codestringrequiredmessagestringrequireddetailsobject
402`paid_plan_required`: sandboxes need a paid plan, and Free cannot start one (`details.dashboardUrl` is `/upgrade`). `insufficient_balance`: the balance does not cover the $0.01 start fee plus 15 minutes of machine time at the sandbox's size. `spend_cap_reached`: the monthly spend cap does not leave that much room.
codestringrequiredmessagestringrequireddetailsobject
403`plan_limit_reached`: the team already has 10 sandboxes starting or running. `details.limit` and `details.running` say so.
codestringrequiredmessagestringrequireddetailsobject
404Sandbox not found, or it belongs to another project.
codestringrequiredmessagestringrequireddetailsobject
409`sandbox_not_stopped`: only a `stopped` sandbox can be resumed. `sandbox_expired`: its disk was deleted, 14 days after it stopped or, for an ephemeral sandbox, at the stop itself; create a new one. Nothing is charged.
codestringrequiredmessagestringrequireddetailsobject
429`daily_limit_exceeded`: the team started 200 sandboxes today (creates and resumes both count). Resets at 00:00 UTC.
codestringrequiredmessagestringrequireddetailsobject
503`sandbox_unavailable`: no machine capacity right now. Nothing was charged for machine time; retry shortly.
codestringrequiredmessagestringrequireddetailsobject