Skip to main content

Rate limits

The public API is rate limited to 60 requests per minute per client IP.

When you exceed it, the API responds with:

HTTP/1.1 429 Too Many Requests

Too many requests

Handling 429s

  • Back off and retry. Wait, then retry — ideally with exponential backoff and jitter. If a Retry-After header is present, honor it.
  • Cache reads. Event lists, blog posts, standings, and membership plans change infrequently; cache them client-side rather than polling.
  • Use streams for live data. For leaderboards and odds, open a single SSE stream instead of polling the JSON endpoints — one connection receives every update and doesn't burn your request budget.

Limits are per IP

The budget is keyed on the caller's IP address. If you're calling from a shared backend, all your requests share one bucket — consider caching upstream so a spike in your own traffic doesn't exhaust it.