omg/docs
Sandbox API

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.dev

Every /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

ActionEndpoint
Create a sandboxPOST /v1/sandboxes
List your sandboxesGET /v1/sandboxes
Get one sandboxGET /v1/sandboxes/{id}
Hibernate (pause)POST /v1/sandboxes/{id}/hibernate
Wake (resume)POST /v1/sandboxes/{id}/wake
SnapshotPOST /v1/sandboxes/{id}/snapshot
Fork from a snapshotPOST /v1/sandboxes/fork
Fork from a sandboxPOST /v1/sandboxes/{id}/fork
Stop and deleteDELETE /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 resume in ~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 curl and JavaScript examples.