https://sk.nanovm.dev.lithosai.cloud, Authorization: Bearer <key>.
JSON bodies; times are *_unix_ns. (The archive/unarchive verbs travel as the
original /stop and /start routes.)
Sandboxes
Sandbox object:
vm_id, tenant, state (creating, running,
paused — you called pause, only resume undoes it; slept — the idle
policy paused it, the next call wakes it; archived — parked to object
storage: after your archive() only unarchive() undoes it
(SandboxStoppedError otherwise); when the idle policy parked it, the next
call wakes it in seconds; interrupted — its host died, contact support to
recover from a durable checkpoint; migrating, deleting, failed), image,
cpus, memory_mb, guest_ip, runtime, created_unix_ns, parent_vm_id
(set on a fork child), node, shard, disable_internet. While archived,
node/guest_ip/mgmtd_addr are last-known values, not a live placement.
Snapshots and exports
Templates
Template object:
template_id, name, version, source_image, status
(building → ready | failed), status_detail, runtime, base_snapshot_id,
created_unix_ns, last_used_unix_ns.
Registries
Usage
GET /usage?start=<RFC3339>&end=<RFC3339> (default last 24 h) →
{"start", "end", "states": [{"state", "vm_seconds", "cpu_seconds", "memory_mb_seconds"}, …], "snapshot_byte_seconds"} — per-state rows;
whole-minute samples (short-lived sandboxes round up); window capped at 32 days;
empty states is a valid no-usage answer. snapshot_byte_seconds integrates
held snapshots’ logical bytes (deleted ones stop counting).
GET /usage/series?hours= (or start=&end=) is the activity-graph time series
behind the console’s Usage charts. GET /usage-export is operator-only
(USAGE_EXPORT_SUBJECTS; normal keys get 403).