Developers · v1
Rate limits & errors
What to expect when you hit a limit, and how every error is shaped so your client can handle it without guessing.
Limits
Reads are capped at 120 requests per minute per key. Go over that and you get a 429 with a Retry-After: 60 header.
Export creation is capped separately at 4 per hour. Go over that and you get a 429 with a Retry-After: 900 header. Polling and downloading an export are not counted against this limit.
Reads never consume your article quota - that only meters articles the pipeline produces, not API calls.
The error envelope
Every error response is JSON, shaped the same way regardless of status code:
{
"error": {
"code": "rate_limited",
"message": "Too many requests. Try again in 60 seconds."
}
}Status codes
| Status | Meaning |
|---|---|
| 401 | Invalid key |
| 403 | Subscription ended |
| 404 | Not found |
| 409 | Export already running |
| 410 | Export expired |
| 422 | Invalid params |
| 429 | Rate limited |