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:

HeaderMeaning
X-RateLimit-LimitRequests allowed today.
X-RateLimit-RemainingRequests left today.
X-RateLimit-ResetUnix 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=500 when paging.
  • Sync with updated_after instead of re-reading everything.
  • Use the WebSocket for live prices instead of polling. Messages don't count as requests.