Errors

RFC 9457 problem+json with stable machine-readable codes — the complete catalog.

All failures return application/problem+json (RFC 9457) with a stable code your programs can branch on. Message texts may improve over time; codes never change meaning.

429 · application/problem+json
{
  "type": "https://endpointry.com/docs/errors#rate-limit-exceeded",
  "title": "Rate limit exceeded",
  "status": 429,
  "code": "RATE_LIMIT_EXCEEDED",
  "detail": "Too many requests. Slow down and honor the Retry-After header.",
  "request_id": "req_926e84c25986fb884ae6fae2"
}

Anatomy

FieldMeaning
typeDeep link to the code's documentation (an anchor in this page)
titleHuman-readable summary (stable per code)
statusHTTP status, duplicated for convenience
codeThe field to branch on — stable, machine-readable
detailHuman-readable specifics for this occurrence
request_idCorrelation id — include it in support requests

Complete code catalog

This table is generated from the platform's error definitions — it is always in sync with the gateway. Each code below is an anchor target: a problem response's type links straight to it.

CodeHTTPRetry?Meaning
VALIDATION_ERROR400NoA parameter failed validation, or a cursor was malformed. Fix the request; do not retry as-is.
UNAUTHORIZED401NoThe API key is missing, malformed or revoked. Check the Authorization header.
FORBIDDEN403NoThe key is valid but not allowed to perform this operation.
NOT_FOUND404NoThe requested resource does not exist. Deterministic — retrying will not change the outcome.
ENDPOINT_NOT_FOUND404NoNo such endpoint. Check the path against the API reference.
RATE_LIMIT_EXCEEDED429YesRequests per second exceeded. Honor Retry-After, then retry.
QUOTA_EXCEEDED429NoThe monthly quota is exhausted. Upgrade the plan or wait for the reset.
TIMEOUT504YesThe operation did not complete within the time budget. Safe to retry.
TEMPORARILY_UNAVAILABLE502YesThe service could not complete this request just now. Retry with backoff.
SERVICE_UNAVAILABLE503NoThe requested capability is not available on this deployment.
INTERNAL_ERROR500NoUnexpected platform error. Contact support with the request_id if it persists.

Code reference

VALIDATION_ERRORHTTP 400not retryable

A parameter failed validation, or a cursor was malformed. Fix the request; do not retry as-is.

UNAUTHORIZEDHTTP 401not retryable

The API key is missing, malformed or revoked. Check the Authorization header.

FORBIDDENHTTP 403not retryable

The key is valid but not allowed to perform this operation.

NOT_FOUNDHTTP 404not retryable

The requested resource does not exist. Deterministic — retrying will not change the outcome.

ENDPOINT_NOT_FOUNDHTTP 404not retryable

No such endpoint. Check the path against the API reference.

RATE_LIMIT_EXCEEDEDHTTP 429retryable

Requests per second exceeded. Honor Retry-After, then retry.

QUOTA_EXCEEDEDHTTP 429not retryable

The monthly quota is exhausted. Upgrade the plan or wait for the reset.

TIMEOUTHTTP 504retryable

The operation did not complete within the time budget. Safe to retry.

TEMPORARILY_UNAVAILABLEHTTP 502retryable

The service could not complete this request just now. Retry with backoff.

SERVICE_UNAVAILABLEHTTP 503not retryable

The requested capability is not available on this deployment.

INTERNAL_ERRORHTTP 500not retryable

Unexpected platform error. Contact support with the request_id if it persists.

Retry guidance

  • Retry only the codes marked retryable, with exponential backoff and jitter.
  • On 429, honor the Retry-After header instead of guessing.
  • Never retry NOT_FOUND or VALIDATION_ERROR — the result is deterministic.
  • Treat unknown codes as non-retryable and surface them; new codes may be added (that is not a breaking change — see Versioning).