Error envelope
All non-2xx REST responses return a consistent JSON envelope:
Error codes
Validation errors
When a request fails validation, the details object contains per-field errors:
Non-field validation errors appear under non_field_errors:
Rate limiting
When rate limited, the response includes a Retry-After header and timing in details:
See Authentication: Rate limits for per-client limits.
Request tracing
Every API response includes an X-Request-Id header:
- If you send an
X-Request-Id header in your request, the same value is echoed back. This lets you correlate requests across your own systems.
- If you don’t send one, the API generates a UUID for you.
- The same ID appears in the error envelope as
requestId.
When reporting issues, include the X-Request-Id from the failing response. This lets us trace your request through server logs instantly.
GraphQL errors
GraphQL responses follow the standard GraphQL error format within the errors array. They are not wrapped in the REST error envelope:
The X-Request-Id header is still present on all GraphQL responses.