v1

latestOpenAPI 3.1.0MIT2026-08-0481194343.8 KB
machines

Provision a new VM

Managed VM provisioning. Managed machines debit the Developer API wallet by runtime state, not agent-minute execution: published defaults are 5 credits/hour running Linux, 9 running Windows, and 1 stopped/suspended, with per-minute granularity. Read effective deployed rates from GET /v1/machines/pricing. Test keys (sk-coasty-test-*) return mock VMs with no cloud calls.

post/v1/machines

Headers

Idempotency-Keystring

Optional client-supplied key (≤128 chars, [A-Za-z0-9_-:]) for safe retries. Keys are global within one concrete API-key credential plus live/test mode; never reuse one on another endpoint. 'Same request' = a SHA-256 of an explicit operation discriminator plus the canonical (sorted-key) JSON body (session_id is folded in for /sessions/{id}/predict). LLM-capable operations also bind the non-secret effective provider, role models, and one-way provider-key fingerprint; plaintext provider keys never enter the hash or replay record. Replays the response for 24 h when operation, body, and effective execution identity match (X-Coasty-Idempotent-Replay: true and X-Credits-Charged: 0). Action screenshot pixels are response-only and deliberately omitted from replay storage; a replay retains frame_id but returns screenshot=null and observation_available=false. Inference replays also set body usage.credits_charged=0 and usage.billed=false; machine-snapshot bodies retain the original gross charge for auditability. A retry while the original is still running waits up to ~25 s then returns the result, otherwise 409 IDEMPOTENCY_IN_FLIGHT (retry with the SAME key). Returns 422 IDEMPOTENCY_KEY_REUSED if any bound input differs. Rotating the API key starts a new replay namespace. Collect a lost result via GET /v1/idempotency/{key} using the original credential.

Request body

display_namestring required
os_type'linux' | 'windows'
desktop_enabledboolean
cpu_coresinteger nullable
memory_gbinteger nullable
storage_gbinteger nullable
restore_from_snapshotboolean nullable
ttl_minutesinteger nullable

Optional auto-destroy lease, measured from creation (5 minutes to 7 days).

metadataobject

Max 16 entries; keys ≤64 chars, values ≤256 chars.

Response

Machine provisioned (or in-progress).

request_idstring required