Developer & tech
API Error Explainer
Half of debugging an integration is knowing whether the problem is yours, theirs, or the browser's. Start with the status code.
Or pick one
429
Too Many Requests
You exceeded a rate limit or quota.
Most likely causes
- Bursting past requests-per-second
- A loop firing per row instead of batching
- Shared key hit by another service
- Monthly quota exhausted
Try these in order
- 1. Honour the Retry-After header exactly
- 2. Add exponential backoff with jitter
- 3. Batch requests or add a queue with a fixed concurrency
Should you retry?
Retry with backoff — Retry-After if present, otherwise 1s, 2s, 4s, 8s.
A quick way to narrow it down
A 4xx is a statement about your request; a 5xx is a statement about their server. That one split decides whether you should be editing your code or reading a status page, and it saves more time than any other debugging habit.
Always read the response body. Providers put the useful detail — the offending field, a request ID, the reset time on a rate limit — in the body, and client libraries routinely throw it away in favour of a generic message. Log the body and the request ID from the headers before you log anything else.
A CORS message is the odd one out. It comes from the browser, not the API, and it usually means the request succeeded but the response was withheld from your JavaScript. Reproduce the same call with curl: if that works, the problem is entirely in headers.