Rate limits
Per-IP and per-key request limits for the public API.
The public API is rate limited per fixed 60 second window.
| Tier | Limit | Tracked by |
|---|---|---|
| Keyless | 30 requests / minute | client IP |
| Keyed | 600 requests / minute | API key |
A key raises your limit twentyfold and is tracked by key rather than IP, so traffic behind shared IPs is not penalised.
When you exceed the limit
You receive a 429 response with the standard error envelope:
{ "ok": false, "error": { "code": "RATE_LIMITED", "message": "Too many requests. Please try again later.", "ref": "err_..." } }Back off and retry after the current minute. A simple exponential backoff is plenty.
Page size
List endpoints accept limit up to 50 (default 20). Use page to paginate.
Requesting a larger limit is rejected with a validation error. This keeps the
keyless tier from pulling the entire data set in a few calls.
curl "https://api.ardent.africa/public/v1/campaigns?page=2&limit=50"Be a good citizen
Cache responses where you can. Campaign and petition data does not change by the second, and the embed widgets already cache for a minute.
Last updated: 18 June 2026
