The API uses standard HTTP status codes. Every error response shares a single
envelope — an error object describing the problem.
A note on 404
Requesting a record that belongs to a different organisation returns 404, not 403.
This is deliberate: it prevents callers from probing which IDs exist outside their own org.
From your key’s perspective, anything outside your organisation simply does not exist.
The error envelope
Every error — at any status — returns the same shape:
code is a stable machine-readable string, message is a human-readable
description, status mirrors the HTTP status, and details carries any extra
context (empty by default).
Error codes
Validation errors
A 422 validation_error carries the field-level failures in details.errors:
Rate limit errors
A 429 rate_limited sets details.retry_after_seconds, and the response still
carries a Retry-After header with the same value. See rate limits
for the headers on every response.
A 401 right after creating a key usually means the Authorization header is wrong.
It must be exactly Token token=ei_live_... — not Bearer ....