- Save a working environment before risky changes.
- Hand off a configured environment to a teammate (within your account; snapshots are per-user).
- Spin up identical sandboxes from a known-good baseline instead of re-running setup every time.
Creating a snapshot
You create snapshots in two modes: manually whenever you want, or on a schedule.Manual
From the dashboard, click Snapshot on a sandbox’s detail page and name it. From the SDK, callsnapshots.create on the handle:
status: "creating". The snapshot transitions to ready once the image is built, typically within a couple of minutes for typical sandbox sizes. If the build fails, the snapshot moves to failed and stays there; failed snapshots don’t auto-retry.

ready sandbox. Sandboxes that are paused, starting, or anything else reject the snapshot call. Only one snapshot per sandbox can be in-flight at a time; back-to-back requests serialize.
Automatic
To snapshot on a schedule, setsnapshotMode: "automatic" and snapshotFrequency (a five-field cron expression) at sandbox creation:
ready and no snapshot is already in flight; if the sandbox is paused or busy, the tick is skipped (it doesn’t queue up missed runs).
snapshotMode defaults to manual. snapshotFrequency is required when mode is automatic and forbidden otherwise.
Restoring from a snapshot
Restoring doesn’t modify the snapshot; it creates a new sandbox whose initial filesystem is the snapshot’s image. PassfromSnapshot to any create call:
- Only
readysnapshots are restorable.creatingrejects with a clear error;failedis unusable. - The new sandbox’s
templateis inherited from the snapshot’s source template. - The new sandbox gets a fresh ID and is otherwise independent; pause, exec, destroy, all behave normally.
- You can restore the same snapshot any number of times. Each restore is a separate sandbox.
Restores boot a few seconds slower than a fresh template sandbox. Snapshots aren’t pre-warmed, the image has to be pulled and unpacked before the container can start. Expect a small extra delay on the
starting → ready transition compared to a regular create. createReady / getReady waits for you; if you’re driving the create manually, give waitUntilReady a slightly longer timeout.
Listing snapshots
Two views, depending on scope:id, name, source_template, status, created_at, and sandbox_id. The image bytes themselves aren’t downloadable; snapshots are restore-only.
Deleting snapshots
Retention and expiry
Each snapshot has anexpires_at timestamp set at creation. A background reaper runs hourly and deletes snapshots whose expires_at has passed. The retention window depends on your plan and account configuration; check Billing → Limits to see your current snapshot retention.
Restoring from a snapshot does not extend its expiry. If you want to keep a baseline indefinitely, take a fresh snapshot from the restored sandbox before the original expires.
Billing
Snapshots count against your account’s compute-storage usage for the time they’re held. Storage charges are visible under Billing → Usage. Deletion stops the billing immediately. Restoring isn’t free either: the new sandbox bills from the moment it goesready, like any other sandbox. The snapshot itself stays billable separately.
Failure modes
| Failure | What happens | What to do |
|---|---|---|
| Snapshot build fails | Status flips to failed; no auto-retry | Delete the failed snapshot, take a fresh one from a ready sandbox. |
| Snapshot expired before you restored | Restore call returns not found | Take snapshots more frequently, or extend retention via plan upgrade. |
| Snapshot deleted while you were restoring | Restore fails partway with a clear error | Don’t delete snapshots in flight; deletion is final but waits for in-flight restores to complete first. |
| Concurrent snapshots requested | Second request is rejected | Wait for the in-flight snapshot to finish (ready or failed), then retry. |
Next steps
- SDKs, the full reference, including snapshot helpers on the handle and at the client level.
- Sandboxes overview, lifecycle and operations.
- Sandbox internals, how snapshot images are stored and restored.