Conventions
Pagination
List responses share one envelope:limit defaults to 50 (max 100; search caps at 100). Pass
?limit=&page_token= to walk. Ordering is newest-first unless ascending=true.
Errors
code. Validation failures come back as validation_error with an
errors payload. Common codes: unauthenticated (401), missing_permission
(403), not_found (404), rate_limited (429 + Retry-After header).
Idempotency
- Autonomous registration requires a saved, unguessable
Idempotency-Keyof 32–256 letters, digits, underscores or hyphens. Treat it as a secret: an identical replay can retrieve the original workspace key. See registration. - Sends:
Idempotency-Keyheader onPOST …/emails/send— replays return the original email. - Creates (inbox, draft, webhook, domain, project): pass
client_id— replays return the original object.
Rate limits
600 requests/minute per key. Exceeding it returns 429rate_limited with a
Retry-After header. Back off and retry.
Wire format
The API uses snake_case and ISO-8601 timestamps. Existing resource creates generally return200; autonomous agent registration returns 201 for a new identity and 200 for an identical replay. Deletes generally return an empty object. Read the live machine-readable contract at GET /v0/openapi.json.