{"name":"Cerver API","base_url":"https://gateway.cerver.ai","auth":{"method":"Bearer token","header":"Authorization: Bearer ck_your_key","get_key":"POST /v2/auth/login with {email} — returns api_key"},"quick_start":["1. POST /v2/auth/login {email} → get api_key","2. POST /v2/sessions {task, session_name, requirements?} → get session_id","3. POST /v2/sessions/:id/run {code} → get result","4. POST /v2/sessions/:id/pause → save session, release compute","5. POST /v2/sessions/:id/resume → re-provision compute, continue","6. POST /v2/sessions/:id/spawn {task} → create child session"],"endpoints":{"auth":{"POST /v2/auth/login":{"body":{"email":"string"},"returns":"account_id, api_key"},"GET /v2/auth/account":{"auth":true,"returns":"id, name, email, created_at"},"GET /v2/auth/keys":{"auth":true,"returns":"keys[]"},"POST /v2/auth/keys":{"auth":true,"body":{"label":"string?"},"returns":"key (full, show once)"},"DELETE /v2/auth/keys/:prefix":{"auth":true}},"sessions":{"POST /v2/sessions":{"auth":true,"body":{"task":"string?","session_name":"string?","target_compute_id":"string?","requirements":{"runtime":"shell|node|python","persistence_level":"low|medium|high","timeout_minutes":"number"}},"returns":"session_id, status, provider, compute_id"},"GET /v2/sessions":{"auth":true,"query":{"status":"string?","limit":"number?"},"returns":"sessions[]"},"GET /v2/sessions/:id":{"auth":true,"query":{"since":"number? cursor reads","tail":"number? last N messages","full":"1? expensive full transcript"},"returns":"summary by default; transcript only with since, tail, or full=1"},"POST /v2/sessions/:id/run":{"body":{"code":"string"},"returns":"result: {stdout, stderr, exit_code}, duration_ms"},"POST /v2/sessions/:id/run/stream":{"body":{"code":"string"},"returns":"SSE stream"},"POST /v2/sessions/:id/input":{"body":{"content":"string","role":"user|system"},"returns":"session with updated transcript"},"POST /v2/sessions/:id/switch-tool":{"body":{"cli_tool":"claude|codex","harness":"string?","compute":{"compute_id":"string?"},"content":"string?"},"returns":"same session_id, new sandbox_id, transcript preserved"},"POST /v2/sessions/:id/share":{"auth":true,"returns":"public_url for a read-only compare page"},"DELETE /v2/sessions/:id/share":{"auth":true,"returns":"public share disabled"},"GET /v2/public/sessions/:id":{"returns":"sanitized public session if sharing is enabled"},"POST /v2/sessions/:id/pause":{"returns":"status: paused"},"POST /v2/sessions/:id/resume":{"body":{"target_compute_id":"string?"},"returns":"new session_id linked to paused one"},"POST /v2/sessions/:id/spawn":{"body":{"task":"string?","session_name":"string?","target_compute_id":"string?"},"returns":"child session_id with parent_session_id"},"DELETE /v2/sessions/:id":{"returns":"success (soft delete — record preserved)"}},"diagnostics":{"GET /v2/selftest":{"auth":true,"query":{"llm":"1?"},"returns":"{ ok, steps[] } — exercises auth + sessions end-to-end via the public API"}},"computes":{"GET /v2/computes":{"auth":true,"returns":"private computes + shared providers"},"POST /v2/computes/register":{"auth":true,"body":{"label":"string","kind":"local","provider":"cerver_local_provider"},"returns":"compute_id"},"POST /v2/computes/:id/heartbeat":{"auth":true},"DELETE /v2/computes/:id":{"auth":true}}}}