Skip to content

API Reference

Full spec: openapi.yaml (OpenAPI 3.1)

Base URL: https://api.isorun.ai

All /v1/* endpoints require Authorization: Bearer <api-key>.

Create a sandbox

Terminal window
curl -X POST https://api.isorun.ai/v1/runs \\
-H "Authorization: Bearer $ISORUN_API_KEY" \\
-H "Content-Type: application/json" \\
-d '{"image": "python", "vcpus": 1, "mem_mib": 1024}'
{
"id": "run78cbccbab85efc28",
"status": "running",
"image": "python",
"vcpus": 1,
"mem_mib": 1024,
"disk_mib": 10240,
"create_ms": 9,
"created_at": "2026-04-05T12:00:00Z"
}

Execute a command

Terminal window
curl -X POST https://api.isorun.ai/v1/runs/run78cbccbab85efc28/exec \\
-H "Authorization: Bearer $ISORUN_API_KEY" \\
-H "Content-Type: application/json" \\
-d '{"command": "python3 -c \\\"print(1+1)\\\"", "timeout": 30}'
{
"exit_code": 0,
"stdout": "2\n",
"stderr": ""
}

Destroy a sandbox

Terminal window
curl -X DELETE https://api.isorun.ai/v1/runs/run78cbccbab85efc28 \\
-H "Authorization: Bearer $ISORUN_API_KEY"
{
"status": "destroyed",
"cpu_ms": 48,
"mem_peak_bytes": 48926720,
"disk_used_bytes": 339968,
"uptime_ms": 59000
}

All endpoints

MethodPathDescription
GET/healthzHealth check (no auth)
POST/v1/runsCreate a sandbox
GET/v1/runsList active sandboxes
GET/v1/runs/{id}Get sandbox status
DELETE/v1/runs/{id}Destroy a sandbox
POST/v1/runs/{id}/execExecute command (JSON response)
POST/v1/runs/{id}/exec/streamExecute command (SSE stream)
GET/v1/runs/{id}/terminal?token=KEYWebSocket PTY terminal
POST/v1/runs/{id}/snapshotSnapshot a running sandbox
POST/v1/runs/restoreRestore from snapshot
POST/v1/runs/{id}/files/upload?path=PATHUpload file
GET/v1/runs/{id}/files/download?path=PATHDownload file
GET/v1/runs/{id}/files?path=PATHList directory
POST/v1/images/buildBuild image from Docker Hub

See the OpenAPI spec for request/response schemas, error codes, and parameter constraints.