Class Methods
await Sandbox.create(...)
Create a new sandbox. HTTP API →
str
default:"base"
Template name
int
default:"300"
Idle timeout in seconds
str
API key (falls back to
OPENCOMPUTER_API_KEY env var)str
API URL (falls back to
OPENCOMPUTER_API_URL env var)dict[str, str]
Environment variables
dict[str, str]
Arbitrary metadata
bool
Create a Burst Sandbox. Disk is preserved across infrastructure restarts; processes may restart.
str
Name of a pre-built snapshot
Callable[[str], None]
Build log callback (when using
image)Sandbox
Burst Sandboxes are alpha. They preserve filesystem state across
infrastructure restarts, may restart running processes, and are priced roughly
2x cheaper than on-demand sandboxes.
await Sandbox.connect(sandbox_id, ...)
Connect to an existing sandbox. HTTP API →
str
required
Sandbox ID
Sandbox
await Sandbox.create_from_checkpoint(checkpoint_id, ...)
Create a new sandbox from a checkpoint. HTTP API →
str
required
Checkpoint ID
int
default:"300"
Idle timeout
Sandbox
await Sandbox.create_checkpoint_patch(checkpoint_id, script, ...)
HTTP API →
str
required
Target checkpoint
str
required
Bash script
str
Description
dict
await Sandbox.list_checkpoint_patches(checkpoint_id, ...)
HTTP API → — Returns: list[dict]
await Sandbox.delete_checkpoint_patch(checkpoint_id, patch_id, ...)
HTTP API → — Returns: None
Context Manager
Auto-kills the sandbox on exit:Instance Methods
await sandbox.kill()
Terminate the sandbox. HTTP API →
Returns: None
await sandbox.is_running()
Check if the sandbox is running.
Returns: bool
await sandbox.set_timeout(timeout)
Update idle timeout. HTTP API →
int
required
New timeout in seconds
None
await sandbox.create_checkpoint(name, kind=None, retention_policy=None)
Create a named checkpoint. HTTP API →
dict
Optional retention policy. Use
{"mode": "delete_oldest", "maxCount": 10}
for full checkpoints or {"mode": "delete_oldest", "maxCount": 100} with
kind="disk_only" to delete the oldest eligible checkpoint of the same type
before creating a new one.dict
await sandbox.list_checkpoints()
HTTP API → — Returns: list[dict]
await sandbox.restore_checkpoint(checkpoint_id)
Revert in-place to a checkpoint. HTTP API →
Returns: None
await sandbox.delete_checkpoint(checkpoint_id)
HTTP API → — Returns: None
await sandbox.download_url(path, *, expires_in=3600)
Generate a signed download URL. HTTP API → · Guide →
str
required
Absolute path to the file
int
default:"3600"
URL lifetime in seconds (max: 86400)
str
await sandbox.upload_url(path, *, expires_in=3600)
Generate a signed upload URL. HTTP API → · Guide →
str
required
Absolute path for the destination file
int
default:"3600"
URL lifetime in seconds (max: 86400)
str
await sandbox.create_preview_url(port, domain?, auth_config?)
HTTP API →
int
required
Container port (1–65535)
str
Custom domain
dict
Auth configuration
dict
await sandbox.list_preview_urls()
HTTP API → — Returns: list[dict]
await sandbox.delete_preview_url(port)
HTTP API → — Returns: None
await sandbox.get_allowed_hosts()
Return the egress allowlist + per-secret allowed hosts the sandbox’s secrets proxy enforces. Useful for debugging “why is my outbound HTTP call being blocked” without having to cross-reference the secret store config separately.
Sandboxes created without a secret_store option return an empty allowlist with secretStore omitted — the sandbox has no per-store egress restriction.
Returns: dict with the shape:
secret_store on top of an inherited one, egressAllowlist is the union of both stores’ allowlists (matches what the runtime proxy enforces) and baseSecretStore is populated with the inherited parent’s name. For sandboxes with a single store (or none), baseSecretStore is omitted.
await sandbox.close()
Close HTTP clients. Called automatically by the context manager.
Not Available in Python
These features are TypeScript-only. Use the HTTP API directly:hibernate()/wake()cpuCount/memoryMBon create
Properties
str
Sandbox ID
str
Current status
Agent
Filesystem
Exec
Deprecated — alias for
exec