Skip to main content
First complete the HTTP quickstart. It supplies a provisioned URL, the right authentication, retained create identity, bounded readiness, command-result checks, and cleanup. The examples here need a currently running sandbox with authorized access; do not reuse an already stopped smoke-test ID.

Write and read a file

Under the API-prefixed SANDBOX_URL, use the current canonical file route:
Content is base64 for the bytes sandbox-ok. Decode the returned content and compare actual bytes. A successful file response is separate from whether an agent produced a correct answer. /files/list lists directory entries; GET /files reads the requested file.

Execute and retain evidence

Use argv, save the original supported request key and returned execution ID, inspect the confirmed exit/outcome, and verify output. A lost stream or execution_result_unconfirmed requires original receipt recovery, not a new command. For long workers use supervised processes and prepared tasks.

Lifetime and sharing

Startup wait, command timeout and resource lifetime use different units/budgets. Check returned expiry/headroom before extending; plan and durable-mode limits apply. Pause/recovery preserves supported disk state, not a Python kernel or running process memory. For files beyond sandbox termination, export artifacts and verify size/hash/expiry. For a live port, create an authorized private tunnel with retained identity and supported store configuration. See artifacts and tunnels. Finish with the teardown check for the actual runtime you created. Accepted stop, API retirement, physical pod cleanup, and billing reconciliation are separate observations.
Last modified on October 20, 2026