Skip to main content

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.