NodeOps
UK

REST API Overview

CreateOS Sandbox is in alpha. APIs may change, and it is not yet covered by an SLA. Benchmarks and certifications are in progress. Talk to us / share feedback.

The CreateOS Sandbox REST API lets you create, run, and manage microVMs programmatically.

At a glance

  • Base URL: https://api.sb.createos.sh
  • Auth: X-Api-Key: <token> header (get a token)
  • Response envelope: JSend: {"status": "...", "data": ...}

Base URL

https://api.sb.createos.sh

All paths are versioned under /v1.

Authentication

Every request must carry one of these headers:

HeaderDescription
X-Api-KeyPer-user API key. Sandbox ownership is scoped to the authenticated user; GET /v1/sandboxes returns only the caller's VMs.
X-Auth-TokenOpaque session token validated against the users service.
X-Access-TokenOAuth-style access token.

Get your API key at https://createos.nodeops.network/profile.

Bash
1curl https://api.sb.createos.sh/v1/whoami \
2 -H "X-Api-Key: $CREATEOS_API_KEY"

Response Envelope (JSend)

Every response wraps its payload in a JSend envelope.

Success (2xx)

JSON
1{
2 "status": "success",
3 "data": { ... }
4}

Fail (4xx): validation or not-found

JSON
1{
2 "status": "fail",
3 "data": {
4 "shape": "unknown shape: s-bad"
5 }
6}

Error (5xx): server fault

JSON
1{
2 "status": "error",
3 "message": "internal error",
4 "code": 500
5}

Pagination

All list endpoints accept limit and offset query parameters. Paginated responses nest items under data.data[] alongside a pagination block:

JSON
1{
2 "status": "success",
3 "data": {
4 "data": [ { ... }, { ... } ],
5 "pagination": {
6 "total": 42,
7 "limit": 50,
8 "offset": 0,
9 "count": 42
10 }
11 }
12}
FieldDescription
totalTotal rows matching the query, ignoring limit/offset
limitLimit applied by the server
offsetOffset applied by the server
countItems in this response (≤ limit)

Default limit is 50; maximum is 500.

ID Formats

ResourceFormatExample
Sandboxsb-<ulid>sb-01K…
Networknet-<ulid>net-01k2x…
Diskdisk_<ulid>disk_01KSHT…
Templatetpl_<ulid>tpl_01K…

Networks and disks can also be referenced by their user-facing name where the spec notes it.

Content Types

DirectionContent-Type
JSON request bodiesapplication/json
File upload bodyapplication/octet-stream
File download responseapplication/octet-stream
Streaming exec responseapplication/x-ndjson

Streaming (NDJSON)

The exec endpoint supports a streaming mode (?stream=true). The response is HTTP/1.1 chunked transfer with Content-Type: application/x-ndjson, one JSON object per line. The template-logs endpoint also streams NDJSON.

Each ExecStreamEvent line is one of:

FrameShape
stdout chunk{"stdout": "…"}
stderr chunk{"stderr": "…"}
heartbeat{"hb": true} (every 5 s; clients ignore)
terminal{"exit_code": N}, last frame
agent error{"error": "…"}

Standard HTTP Status Codes

CodeMeaning
200Success
202Accepted, async operation in progress (poll via GET)
400Bad request / validation error
401Missing or invalid auth
402Payment required / quota exceeded
404Resource not found
409Conflict (e.g. sandbox not in correct state)
429Rate limited
503Service unavailable / no host capacity

Async operations (pause, resume, fork) return 202 with an X-Poll-After header (suggested seconds before next poll). Poll GET /v1/sandboxes/{id} until status reaches the expected terminal value.

API Sections

100,000+ Builders. One Workspace.

Get product updates, builder stories, and early access to features that help you ship faster.

CreateOS is a unified intelligent workspace where ideas move seamlessly from concept to live deployment, eliminating context-switching across tools, infrastructure, and workflows with the opportunity to monetize ideas immediately on the CreateOS Marketplace.