| Requests | Limit |
|---|---|
| With an API key or access token | 60 per minute, per key (or per user for an access token) |
| Without credentials (login, token refresh) | 20 per minute, per IP address |
| Login attempts | 10 per minute, per account |
| Failed credential checks | after 30 per minute from one IP address, unknown credentials from it get 429 |
Over a limit the API returns 429 with retryability: "quota". Wait for the next minute and retry with backoff. The limits are the same on every plan.
Staying under them
- Don't poll in a tight loop. Back off from a few seconds to about 30 seconds while a job runs, or better, long-poll completion events: one request covers all your jobs and runs.
- List instead of fetching one by one. List jobs returns status, cost, and timestamps for up to 100 jobs per page.
- Batch submits. Submit several jobs queues many in one request.
- Download single records of a result rather than whole zips when you need only part of it (Artifacts).