Sandbox API
Create and control isolated Firecracker sandboxes over HTTP with an API key or user session token.
The Sandbox API lets you create and control omg sandboxes from your own code — no dashboard, no browser. Each sandbox is a fully isolated Firecracker microVM with its own filesystem, network, and lifecycle. Server integrations normally authenticate with an API key; signed-in omg clients can use their short-lived user JWT. Both drive the same owner-scoped routes over plain HTTP.
Use it to spin up throwaway build environments, run untrusted code, give your own app a "create a sandbox" button, or automate anything you'd otherwise do by hand in the dashboard.
Base URL
All endpoints live under a single host:
https://infra.omg.devEvery /v1/sandboxes* route accepts a Bearer API key (omg_sk_…) or an
omg user JWT with aud=vibes; see
Authentication.
Everything is owner-scoped — you only ever see your own sandboxes — and
sandboxes you create with a key are raw programmatic sandboxes that list with
kind: "api".
What you can do
| Action | Endpoint |
|---|---|
| Create a sandbox | POST /v1/sandboxes |
| List your sandboxes | GET /v1/sandboxes |
| Get one sandbox | GET /v1/sandboxes/{id} |
| Hibernate (pause) | POST /v1/sandboxes/{id}/hibernate |
| Wake (resume) | POST /v1/sandboxes/{id}/wake |
| Snapshot | POST /v1/sandboxes/{id}/snapshot |
| Fork from a snapshot | POST /v1/sandboxes/fork |
| Fork from a sandbox | POST /v1/sandboxes/{id}/fork |
| Stop and delete | DELETE /v1/sandboxes/{id} |
| Interactive shell (WebSocket) | wss://ssh-ws.omg.dev/<id> |
Full request and response shapes are in the Reference.
The shape of a sandbox
A sandbox moves through a small set of states:
- provisioning — booting; not yet reachable.
- running — live and serving.
- hibernated — paused to a snapshot; wakes on
resumein ~0.3s. - stopped — torn down; the id is gone.
Creating a sandbox returns its id and connection details immediately.
The microVM boots asynchronously, so poll GET /v1/sandboxes/{id} (or
GET /v1/sandboxes) until status is running before you connect.
Next steps
- Authentication — create a key and use it as a Bearer token.
- Quickstart — key → create → poll → connect, end to end.
- Templates — baked snapshots, coding-agent presets, and baking your own with snapshot + fork.
- Webhooks — signed lifecycle events and what's self-serve today.
- Reference — every endpoint, with
curland JavaScript examples.