Skip to main content
The API uses standard HTTP status codes. Errors come back as JSON in this shape:
When validation fails (invalid request body), detail is an array of field-level errors:

Status codes

Common error codes

Idempotency

Safe-by-design endpoints (any GET, DELETE) are naturally idempotent. For POST endpoints, pass an Idempotency-Key header with a unique value (e.g., a UUID) to make retries safe:
The same key replayed within 24 hours returns the original response without creating a duplicate.

Rate limits

Rate limits apply per workspace, not per key. Limits are returned in headers on every response: