Developer guide

Limits you can inspect.

Each plan has a short-window request rate and a billing-period quota. Both are enforced atomically before a football-data response is returned.

What counts

Every request admitted through the per-minute limit counts once toward the billing-period quota, including a Redis cache hit and an application-level error produced after authentication. Authentication failures and requests rejected by the per-minute limiter do not consume the billing-period quota.

Provider refresh traffic is internal ingestion work and is never billed to a customer.

Response headers

Header Meaning
X-RateLimit-Limit Maximum requests in the current minute.
X-RateLimit-Remaining Requests left in that minute.
X-RateLimit-Reset Unix timestamp for the next minute window.
X-Quota-Limit Maximum requests in the current billing period.
X-Quota-Remaining Requests left in the billing period.
X-Quota-Reset Unix timestamp when the billing-period counter resets.
Retry-After Seconds until the applicable reset on an HTTP 429 response.
X-StatsAPI-Cache HIT or MISS for the versioned response cache.

Handle HTTP 429

Stop sending requests when a 429 response arrives. Retry after the next minute boundary for a rate-limit error; a depleted monthly quota requires the billing period to reset or the account plan to change.

Use Retry-After for delay duration and the matching X-RateLimit-Reset or X-Quota-Reset timestamp for scheduling. Add jitter for unexpected bursts and cache stable responses in your own application when appropriate.