Introduction
Sandbox Platform provides isolated Linux environments for AI agents to execute code, run commands, and interact with systems autonomously.
Start with our Quickstart Guide to create your first sandbox in minutes.
Quickstart
Get up and running with Sandbox Platform in just a few steps.
1. Get your API Key
Navigate to the Dashboard and copy your API key from the settings page.
2. Create a Sandbox
Use the API to create a new sandbox environment:
curl -X POST https://sandbox.dev.ab0t.com/api/sandboxes \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "my-first-sandbox", "instance_type": "ab0t.medium", "docker_image": "ubuntu:latest" }'
3. Execute Commands
Once your sandbox is running, execute commands via the API:
curl -X POST https://sandbox.dev.ab0t.com/api/sandboxes/{sandbox_id}/execute \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"command": "echo Hello, World!"}'
Your sandbox is now running. Explore the API reference below for more operations.
Authentication
All API requests require authentication using a Bearer token. Include your API key in the Authorization header:
Authorization: Bearer YOUR_API_KEY
Never expose your API key in client-side code or public repositories.
API Reference
The Sandbox Platform API is organized around REST. Our API accepts JSON-encoded request bodies and returns JSON-encoded responses. Sandbox create requests accept either branded tiers like ab0t.medium or canonical runtime types like t3.medium. Responses return both instance_type (canonical runtime value) and instance_tier (branded product value).
Base URL
https://sandbox.dev.ab0t.com
Sandbox Endpoints
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/sandboxes | Create a new sandbox |
| GET | /api/sandboxes | List all sandboxes |
| GET | /api/sandboxes/{id} | Get sandbox details |
| POST | /api/sandboxes/{id}/start | Start a stopped sandbox |
| POST | /api/sandboxes/{id}/stop | Stop a running sandbox |
| POST | /api/sandboxes/{id}/reboot | Reboot a running sandbox |
| DELETE | /api/sandboxes/{id} | Delete a sandbox permanently |
POST /api/sandboxes — Request Body
Response (201)
t3.micro)ab0t.micro)Command Execution
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/sandboxes/{id}/execute | Execute a command in sandbox |
| GET | /api/sandboxes/{id}/metrics | Get sandbox metrics (CPU, memory) |
POST /api/sandboxes/{id}/execute — Request
Response
File Operations
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/sandboxes/{id}/files | Save a file to sandbox |
| POST | /api/sandboxes/{id}/upload | Upload file to sandbox |
| GET | /api/sandboxes/{id}/download | Download workspace archive |
POST /api/sandboxes/{id}/files — Request
POST /api/sandboxes/{id}/upload
Cost Management
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/costs/user/{id} | Get user cost report |
| GET | /api/costs/organization | Get organization cost report |
| POST | /api/costs/limits/user/{id} | Set user cost limit |
POST /api/costs/limits/user/{id} — Request
GET /api/costs/user/{id} — Response
Sandboxes
A sandbox is a persistent Linux environment running on dedicated cloud compute. Unlike ephemeral containers, sandboxes survive reboots and have full root access, persistent storage, and dedicated networking.
Lifecycle
Sandboxes move through these states:
| State | Description | Billing |
|---|---|---|
pending | Sandbox provisioning | Starts on launch |
running | Ready for commands | Active |
stopped | Instance stopped, storage preserved | Storage only |
terminated | Permanently deleted | None |
Auto-stop
Sandboxes with auto_stop_minutes set will automatically stop after the specified idle time. Idle = no API calls or SSH sessions. Set to 0 to disable.
Instance Types
Choose the right instance type based on your workload:
| Type | vCPU | RAM | Use Case | Cost/hr |
|---|---|---|---|---|
ab0t.micro | 2 | 1 GB | Light scripts, testing | $0.02 |
ab0t.small | 2 | 2 GB | Web scraping, agents | $0.04 |
ab0t.medium | 2 | 4 GB | General development | $0.08 |
ab0t.large | 2 | 8 GB | Data processing | $0.16 |
ab0t.xlarge | 4 | 16 GB | ML inference, builds | $0.34 |
ab0t.gpu | 4 | 16 GB + GPU | GPU workloads | $1.06 |
Networking
Each sandbox gets a public IP and a DNS entry under your org's domain. Access is controlled via:
- SSH — Direct SSH access using your uploaded keys or short-lived certificates
- Manager API — HTTP API on port 1337 for command execution, file operations, and status
- Proxy — Web-accessible ports routed through the platform proxy with auth
Persistent Storage
Sandbox storage persists across stop/start cycles. The root EBS volume is preserved when you stop a sandbox. Files are only deleted when the sandbox is terminated.
Use POST /api/sandboxes/{id}/upload to upload files and GET /api/sandboxes/{id}/download to download the workspace as an archive.
Containers
Containers are lightweight, ephemeral environments running in the cloud. They start in seconds and are ideal for short-lived tasks. Three types are available:
Browsers
Headless or visible browsers for web automation, scraping, and testing.
curl -X POST https://sandbox.dev.ab0t.com/api/browsers \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"browser_type": "chrome"}'
Available types: firefox, chrome, chromium-headless, selenium-chrome, headless-shell, lightpanda
Desktops
Full Linux desktops with GUI access via the browser. Useful for visual tasks, testing, and demonstrations.
curl -X POST https://sandbox.dev.ab0t.com/api/desktops \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"desktop_type": "alpine-xfce"}'
Available types: alpine-xfce, alpine-kde, ubuntu-xfce, windows
Ephemeral
Lightweight containers for code execution, scripts, and AI agent workloads. The fastest option for short-lived compute.
curl -X POST https://sandbox.dev.ab0t.com/api/ephemeral \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"type": "python", "command": "python -c \"print(42)\""}'
Available types: ubuntu, python, node, go, rust, agent-python, agent-node, alpine, debian, custom
Container Endpoints
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/browsers | Launch a browser container |
| POST | /api/desktops | Launch a desktop container |
| POST | /api/ephemeral | Launch an ephemeral container |
| GET | /api/containers | List all your containers |
| GET | /api/containers/{id} | Get container details |
| DELETE | /api/containers/{id} | Terminate a container |
POST /api/browsers — Request
Browser Response
POST /api/desktops — Request
POST /api/ephemeral — Request
SSH Access
New to this? Read SSH Into Your Sandbox — a step-by-step walkthrough from Generate Key in the dashboard to landing in a shell, plus the security model, cert path, and troubleshooting.
Each user manages their own SSH keys, scoped to their current organization. When you create a sandbox, your active public keys are provisioned to ~/.ssh/authorized_keys at first boot. Connect with ssh -i your.pem sandbox@<sandbox-ip>. The full lifecycle (generate, list, rename, delete, plus short-lived certs for power users) is below.
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/ssh-keys | List your SSH keys |
| POST | /api/ssh-keys | Upload an SSH public key |
| POST | /api/ssh-keys/generate | Generate a new SSH key pair |
| POST | /api/ssh/certificates | Issue a short-lived SSH certificate |
POST /api/ssh-keys — Request
POST /api/ssh/certificates — Request
AI Agent Integration
Sandbox Platform is designed for AI agents that need to execute code, browse the web, or interact with desktop applications autonomously.
Recommended Pattern
- Create a sandbox or ephemeral container at the start of an agent session
- Use
/executefor shell commands and/filesfor reading/writing files - Use browser containers for web research and data extraction
- Set
auto_stop_minutesto prevent runaway costs - Terminate the environment when the agent session ends
Cost Control
Use POST /api/costs/limits/user/{id} to set per-user spend limits. When billing enforcement is enabled, the platform returns 402 Payment Required when limits are exceeded.
Custom Docker Images
Sandboxes support any Docker image via the docker_image parameter. The image must be publicly accessible or from an authorized registry.
{
"name": "ml-workspace",
"instance_type": "ab0t.gpu",
"docker_image": "pytorch/pytorch:2.1.0-cuda12.1-cudnn8-runtime"
}
Ephemeral containers also accept a custom type with your own image URL.
GPU Workloads
For GPU workloads, use ab0t.gpu or ab0t.gpu-pro instance types. These include NVIDIA Tesla T4 GPUs with CUDA drivers pre-installed.
GPU instances cost $0.53–$0.75/hr. Always set auto_stop_minutes and monitor costs via the dashboard.
Changelog
See the full changelog for version history and release notes.
System Status
Check live platform status at status.ab0t.com. Subscribe to updates for maintenance windows and incident notifications.