Base URL
POST requests also accept Idempotency-Key. Use a unique, stable value for each intended mutation so a network retry resolves to the original mutation instead of creating another Session or driving another turn. Most routes replay the first response; erasure-safe routes retain only opaque IDs and rehydrate current live authority, so deletion returns 404 and a mutable resource may reflect a later status. API-key creation and rotation require this header because their one-time secrets cannot be regenerated after a committed write.
Identifiers
Resources use typed, prefixed IDs with 32 lowercase hexadecimal characters after the prefix. The prefix is part of the type: an endpoint expecting asess_ will reject an agent_ rather than looking it up.
The ones you meet first:
Every resource carries a prefix in this shape. The API reference section names the exact prefix each endpoint expects in its request and response shapes.
Pagination
List responses use cursor pagination:next_page value back in the next request’s page query parameter. Cursors are opaque unless an endpoint explicitly says otherwise.
Where a list endpoint accepts order=asc|desc, it defaults to asc, and desc walks newest-first. The cursor does not encode direction, so resend order on every page; a follow-up that omits it silently reads ascending from that position.
Three read paths use a different cursor. Transcript discovery and Memory search return results with next_cursor. The SIEM pull POST /v1/audit/export returns a numeric next_after you resend as after; the ordinary GET /v1/audit ledger read pages like everything else. Each generated endpoint page shows the exact response shape.
Streaming
Session streams use SSE. The current alpha replays every stored event after the supplied cursor in internal pages and then stays live. Resume a disconnected or stalled stream withLast-Event-ID; see Events.
Generated API reference
The API reference section in the sidebar is generated from the same OpenAPI document the platform serves at/api/openapi.json: one page per endpoint, for every resource group. A repository gate re-fetches the document from the real worker and fails when the committed snapshot no longer matches. It runs on the check:heavy cadence rather than on every landing, so these pages can briefly trail a freshly landed contract change. The handwritten pages in this section explain the conventions the generated pages assume.
Next steps
Authentication and versions
Scope API keys to a Workspace, pin a dated wire version, and read the auth headers.
Sessions
Open a Session, drive a Run, and stream its events over SSE.