Coverage you can
verify before buying.
Check whether your competition and season include the data your app needs. An available endpoint does not mean every match has statistics, lineups, or player data.
Inspect coverage
competition by competition.
These guides describe specific historical fixtures-and-results datasets. For current seasons and richer fields, query /api/v1/coverage/leagues, then check the coverage flags returned for your chosen match.
Premier League API
2025/26 · 20 teams · 380 matches
View dataset → SpainLa Liga API
2025/26 · 20 teams · 380 matches
View dataset → GermanyBundesliga API
2025/26 · 18 teams · 306 matches
View dataset → ItalySerie A API
2025/26 · 20 teams · 380 matches
View dataset → FranceLigue 1 API
2025/26 · 18 teams · 306 matches
View dataset → InternationalWorld Cup API
2026 · 48 teams · 104 matches
View dataset →Swap the feed, keep the contract.
Coverage is not uniform, and we publish that rather than hide it. Fixtures and results reach far more competitions than match statistics do: a competition can carry results while carrying no corners, shots or possession. Every statistics response therefore states coverage.statistics_available for the match you asked about, so an uncovered competition returns an explicit answer instead of an error. Every match also carries details_available, which says whether Stats API holds a timeline, lineups, team statistics and player statistics for that exact match, so you can check before you ask. OpenFootball’s community-maintained CC0 data remains a historical bootstrap, not a live feed. The API serves each dataset as Stats API observed it at the latest successful ingestion, with no promised maximum age or refresh interval. GET /api/v1/coverage/summary reports that ingestion and artifact-retrieval time, while source_updated_at stays null and freshness_guaranteed stays false.
Source mappings support reviewed provider migrations. Unique reschedules and corrections can keep a stable ID; ambiguous matches are never guessed. If a fixture disappears from a complete snapshot, it is hidden as an inactive tombstone rather than mislabeled as canceled, and the same ID is restored if it reappears.
See the available endpoint contract →