Skip to main content
Every error response uses the envelope below. Match on error.code in your error-handling logic — never on error.message.
The Message column below shows the human-facing copy for each code. Treat it as display text only: the wording can change without notice, and many endpoints replace it with a more specific reason for the same code. dev is a stable 5-digit internal code whose first three digits mirror the HTTP status. See Response Format for the full envelope and the error.type table.

HTTP 400 - Bad Request

HTTP 401 - Unauthorized

HTTP 402 - Payment Required

HTTP 403 - Forbidden

HTTP 404 - Not Found

HTTP 422 - Unprocessable Content

HTTP 429 - Too Many Requests

The default rate limit is 20 requests per minute per user, sliding window. Back off and retry after 60 seconds.

HTTP 500 - Server Error

HTTP 502 - Bad Gateway

HTTP 503 - Service Unavailable

Returned by any authenticated endpoint when the authentication backend is unreachable. Retry with backoff.

HTTP 504 - Gateway Timeout