Documentation

REST API overview

Authentication modes, error format, pagination and idempotency of the versioned v1 REST API.

Versioning

All routes live under /v1. The v1 contract evolves additively only; breaking changes would ship as /v2 side by side. The complete route table is generated from the shared contracts and published as the API reference.

Authentication modes

ModeUsed byCredential
userconsole, CLI, SDK, CI pipelinesuser session / access token, checked against role permissions
agentcustomer-resident agentsshort-lived access token obtained with a signed assertion
enrollmentfirst agent startone-time, short-lived enrollment token
publichealth check, website lead formnone

Tokens are sent in the Authorization header only. They never appear in URLs or message bodies and are never logged.

Errors

Every non-2xx response has the same shape: a machine code (for example VALIDATION_FAILED, FORBIDDEN, NOT_FOUND), a human-readable message, a correlation_id for support, and optional details listing the field path and a code for each problem. Error responses never echo the values you submitted.

Pagination

List endpoints return {"items": [...], "page": {"limit": n, "next_cursor": "..."}}. Pass the cursor back to fetch the next page; cursors are opaque.

Idempotency

Routes marked idempotent in the reference accept an Idempotency-Key header. Retrying with the same key returns the original result instead of creating a duplicate — use this from CI pipelines and scripts.

OpenAPI and SDKs

The OpenAPI 3.1 document, the typed Python and TypeScript SDKs, retry rules and code examples are described in SDKs and OpenAPI.

← All documentation