Limits
There are two limits. Both return 429 when reached, with a different code.
| Limit | Amount | Applies to | Code |
|---|---|---|---|
| Rate limit | 60 requests a minute | Each key | RATE_LIMITED |
| Monthly allowance | 50,000 requests a calendar month | All live keys of one organisation, or of one researcher | QUOTA_EXCEEDED |
The AI4M team can set a different rate limit for an independent researcher. Your own figure is shown in Settings → API access.
The rate limit
Section titled “The rate limit”When a key makes more requests in a minute than it is allowed, the response includes a Retry-After header with the number of seconds to wait.
HTTP/1.1 429 Too Many RequestsRetry-After: 23
{ "statusCode": 429, "code": "RATE_LIMITED", "message": "This key is limited to 60 requests a minute"}Wait that long, then try again.
The monthly allowance
Section titled “The monthly allowance”Only requests made with live keys count. Test keys do not. The count resets on the first day of each month, and your usage so far is shown in Settings → API access.
{ "statusCode": 429, "code": "QUOTA_EXCEEDED", "message": "Monthly request quota reached. Contact the AI4M team if you need more."}There is no Retry-After for this one: retrying will not help until the month ends. If you need a larger allowance, write to info@ai4mproject.com.
Staying well inside the limits
Section titled “Staying well inside the limits”- Call Periods to see
updated_at, and only fetch scores again when it changes. - Store what you fetch. One request returns every LGA in a state; 37 requests return the whole country.
- Fetch boundaries once. They do not change from month to month.