chronondocs
ErrorsMenu

Errors

Every error is JSON with the same shape, a stable code you can switch on, and a human-readable message.
{
  "error": {
    "code": "invalid_request",
    "message": "Invalid `diet`: Invalid option: expected one of \"vegan\"|…",
    "docs": "https://chronon.webrizen.com/docs/…"
  }
}

docs is included when there's a page that explains the fix. Messages may be reworded over time; codes won't change within /v1.

Codes

StatusCodeWhat happenedWhat to do
400invalid_requestA query parameter is missing, unknown or out of rangeFix the parameter named in message
401missing_api_keyNo key in Authorization or X-API-KeySend your key (how)
401invalid_api_keyThe key is malformed, unknown or revokedCheck for typos, or create a new key
403account_suspendedThe account broke the fair-use policyContact us via GitHub issues
404not_foundUnknown endpoint, region or dishCheck the slug, or list what exists
429rate_limitedOver your per-minute limitWait Retry-After seconds
429quota_exceededMonthly quota used upWait for the 1st (UTC), or ask for more
429too_many_failed_attemptsToo many unknown keys from your IPFix the key, wait a minute
500internal_errorSomething broke on our sideRetry with backoff; open an issue if it persists

Retrying

Retry 429 and 500 responses with exponential backoff, and always respect Retry-After. Don't retry 4xx errors other than 429: they'll fail the same way again.