---
title: "Create a new sandbox"
method: POST
path: "/sandboxes"
tags: ["Sandboxes"]
---

# Create a new sandbox

`POST /sandboxes`

Creates a sandbox and returns immediately with `status: starting`.
The VM boots asynchronously. Poll `GET /sandboxes/{id}` until
`status` is `active` before running commands.

## Request body

- CreateSandboxRequest
  - `name` string, required — Human-readable name for the sandbox.
  - `from_snapshot` string, uuid — If provided, boot the sandbox from this snapshot instead of creating a fresh VM. The snapshot must belong to the same team.
  - `network` NetworkConfig — Egress network rules for a sandbox. `allow_out` accepts CIDRs (e.g. `8.8.8.8/32`) and domain names (e.g. `api.openai.com`, `*.github.com`). `deny_out` accepts CIDRs only. Private ranges (10/8, 172.16/12, 192.168/16, 127/8, 169.254/16) are always blocked regardless of rules.
    - `allow_out` string[] — CIDRs or domains to allow.
    - `deny_out` string[] — CIDRs to deny. Use `0.0.0.0/0` to block all traffic not in `allow_out`.

## Response `201`

Sandbox created

- SandboxResponse
  - `id` string, uuid
  - `name` string
  - `status` 'starting' | 'active' | 'pausing' | 'idle' | 'deleted'
  - `vcpu_count` integer
  - `memory_mib` integer
  - `ip_address` string — IP address of the running VM (present when status is active).
  - `snapshot_id` string, uuid — ID of the latest snapshot (present after a pause).
  - `created_at` string, date-time

## Other responses

- `400` — Invalid request
- `401` — Missing or invalid API key
- `500` — Internal server error

---

[API](https://skmtc.net/superserve-ai/apis/superserve-api.md) · [All operations](https://skmtc.net/superserve-ai/apis/superserve-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/superserve-ai/superserve-api/versions/304fe18155b8/schema)
