REST API
Rate limits
Daily quotas, burst limits and the headers that report them.
Each plan has a daily quota and a per-minute burst limit. See Plans and limits.
Headers
Every response reports your daily quota:
| Header | Meaning |
|---|---|
X-RateLimit-Limit | Requests allowed today. |
X-RateLimit-Remaining | Requests left today. |
X-RateLimit-Reset | Unix time when the quota resets (midnight Riyadh). |
When you hit a limit
You get 429 RATE_LIMITED with a Retry-After header in seconds:
{
"error": {
"code": "RATE_LIMITED",
"message": "Daily request limit reached. Resets at 2026-11-04T21:00:00Z."
}
}Wait for Retry-After, then retry. For bursts, back off exponentially with jitter.
Using fewer requests
- Fetch up to 50 quotes in one call with List quotes.
- Use
limit=500when paging. - Sync with
updated_afterinstead of re-reading everything. - Use the WebSocket for live prices instead of polling. Messages don't count as requests.
