Skip to main content
Run one command in an isolated runtime, keep its execution result, and stop the runtime when finished. This walkthrough uses the controller’s HTTP contract directly.
A provisioned deployment is required. Check the dated host report and obtain your workspace URL and API key before starting. A published reference does not establish that the hosted service is available or that your workspace has runtime capacity.

Prerequisites

Use Bash, curl 7.76+, and jq. Obtain an API key with permission to create, inspect, execute in, and stop a sandbox. Confirm the deployment’s supported isolation modes and resource limits. This example requests a Linux container for five minutes; runtime and quota policies can reject the request. Set these in the same terminal, replacing the deployment URL with the one supplied to you:
API keys use Authorization: ApiKey. The controller also accepts Bearer for a JWT; putting an API key after Bearer does not turn it into a JWT. The source-backed correction is recorded in this repository’s Sandbox overlay. Registration returns no usable API key before email verification. Preserve the create key with the exact body before the first request; reuse it only for that original operation, never a different test run. Use a unique 1–200 character ASCII key without spaces, leaving room for the execution-key suffix below.

Create, execute, and stop

Save this as sandbox-smoke.sh. It captures the returned ID, polls with a finite budget, verifies the command result, and attempts cleanup on exit once an ID is known.
Success: the script prints a real sandbox ID, observes running, verifies exit code 0 and output sandbox-ok, and receives a successful stop response. It saves the responses locally for inspection. These are observed criteria, not guarantees of provisioning speed. The create request has a separate 210-second client wait; the sandbox’s 300-second lifetime still includes startup. Neither the example nor a warm success establishes cold-start capacity. If create times out before returning an ID, preserve the saved key/body and inspect the original request and workspace list. Recover through the compatible idempotency contract before choosing another operation. The trap cannot stop an identity it never received. A 200 execute response can retain an unknown outcome; it is not permission to rerun the command. Use original receipt recovery for lost streams, record_pending, or unconfirmed result storage. This script contacts no other service and does not automatically retry mutations.

Verify teardown

After the script exits, read the status with the saved ID:
A terminal terminated state or 404 with the same workspace credentials shows API retirement at that identity; physical pod/resource cleanup and billing reconciliation need their own observations. terminating is still in progress; recheck within your operational deadline. A 401, 403, network error, or 5xx does not prove teardown. Confirm with the workspace operator if the result remains uncertain.

Troubleshooting

Next steps

Last modified on October 20, 2026