Skip to main content
The Everflow API uses conventional HTTP status codes. Codes in the 2xx range indicate success. Codes in the 4xx range indicate a client error. Codes in the 5xx range indicate a server-side issue.

Error response body

Error responses return a JSON object carrying a human-readable message:
The field name is not consistent — read both spellings. Errors raised by an endpoint itself (validation failures, “Can’t find entry in the database”) use the lowercase error shown above. Errors raised before the endpoint runs — 401, 403, 405, and router-level 404 — instead use a capitalised Error, with the same kind of message.A client that reads only one spelling will report “Unknown error” for a large share of real failures, including every authentication and permission problem. Until this is unified, read error and fall back to Error.

Status codes

Handling errors in code

Check the HTTP status code first, then read error (falling back to Error) for details.
Python
Node.js

Retry strategy

Only retry on 429 and 5xx errors. Client errors (400, 401, 403, 404) will not succeed on retry without changes to the request. When retrying, use exponential backoff with jitter to avoid overwhelming the API:
If you run multiple workers or scheduled jobs, stagger their start times to avoid bursts of concurrent requests hitting the rate limit simultaneously.
For 429 responses, you can also read the X-RateLimit-Remaining header proactively to throttle before hitting the limit. See Rate Limiting for details on quotas and headers.