Skip to main content
Rate limits are shared across all 25+ sports APIs. Your daily quota applies to your combined usage of Football, Basketball, Tennis, and every other sport.

Plan Limits

All daily quotas reset at midnight UTC (00:00 UTC). The reset timestamp is included in every response via the X-RateLimit-Reset header.
Need more? Contact us for custom enterprise plans with higher limits, dedicated servers, and SLA guarantees.

Rate Limit Headers

Every API response includes rate limit headers:

Example Response Headers

Checking Your Usage

Use the /status endpoint on any sport’s API:

Rate Limit Exceeded

When you exceed your daily quota, the API returns 429 Too Many Requests:

Best Practices

Every API response includes a ttl field (seconds). Respect this value — the data won’t change before the TTL expires.
Check rate limit headers in every response:
For 429 errors, wait and retry:
During peak usage, prioritize live score updates over less time-sensitive data like standings or historical stats. Different sports have different update frequencies — NBA games have more scoring events than football matches.

What Counts as a Request?

  • Each API call counts as 1 request, regardless of sport
  • V2 image endpoint calls (/images/...) count as requests. V1 image endpoints are free and do not count
  • /status endpoint calls count as requests
  • WebSocket traffic is unmetered. Neither the connection handshake nor any frame you receive counts against your quota — subscriptions, snapshots, and all real-time updates are free. The internal NATS-triggered fetches behind match:{matchId}:odds, :incidents, and :stats run server-side and are never billed to your key. Only REST calls are metered

Upgrading Your Plan

View Plans

Compare plan features and pricing

Contact Sales

Discuss custom enterprise solutions
Last modified on August 28, 2026