Sports coverage
One row per supported sport. Coverage level reflects what the surface looks like today, not what is planned. Every endpoint listed below is on the free tier (1,000 req/day, 2,000 with GitHub); the handful of paid endpoints (Match Predictions, from the Solo plan up) are documented on /pricing and the per-sport landing pages. Signed webhook delivery is available on Edge and higher plans.
- Real-time scores plus active endpoint surface.
- Archive loaded, live updates resume next season.
- Some endpoints active, others pending; see the per-sport page.
- Loaded and served, but the competition is between seasons — no new rows today.
- Live and served, on a small share of matches — check the per-league counts.
- Routes not yet wired; documented for forward planning.
| Sport | Coverage | Key endpoints | Landing |
|---|---|---|---|
| Soccer Premier League, La Liga, Serie A, Bundesliga, Ligue 1, UEFA Champions League, MLS, FIFA World Cup 2026 Corrected 2026-09-11 (previously undersold by 11 seasons): match and /v1/stored/matches coverage reach back to the 2014-15 season, not 2023-24: twelve full, complete prior seasons (380 finished matches each; 306-308 for the Bundesliga's 18-team format; Ligue 1 drops from 380 to 308 when it shrank to 18 clubs in 2023-24) before the 2026-27 season now in progress. Expected-goals leaderboards (/v1/leagues/{id}/xg-leaders) reach the same 2014-15 start and are dense throughout (500+ players/season every league every season). xG is league-level only, keyed by player name rather than player_id. Player-level box-score season stats (appearances, minutes, goals, tackles, etc., via soccer_player_season_stats) are a narrower population: dense only from 2023-24 onward, with zero rows for any earlier season even though match and xG data exist there. /v1/standings itself holds only the current and immediately preceding season (2025-26, 2026-27) regardless of match history depth; a season-scoped standings request for an earlier year returns nothing. Corrected 2026-09-11 (previously undersold by 11 seasons): match and /v1/stored/matches coverage reach back to the 2014-15 season, not 2023-24: twelve full, complete prior seasons (380 finished matches each; 306-308 for the Bundesliga's 18-team format; Ligue 1 drops from 380 to 308 when it shrank to 18 clubs in 2023-24) before the 2026-27 season now in progress. Expected-goals leaderboards (/v1/leagues/{id}/xg-leaders) reach the same 2014-15 start and are dense throughout (500+ players/season every league every season). xG is league-level only, keyed by player name rather than player_id. Player-level box-score season stats (appearances, minutes, goals, tackles, etc., via soccer_player_season_stats) are a narrower population: dense only from 2023-24 onward, with zero rows for any earlier season even though match and xG data exist there. /v1/standings itself holds only the current and immediately preceding season (2025-26, 2026-27) regardless of match history depth; a season-scoped standings request for an earlier year returns nothing. Corrected 2026-09-11 (previously undersold by 11 seasons): match and /v1/stored/matches coverage reach back to the 2014-15 season, not 2023-24: twelve full, complete prior seasons (380 finished matches each; 306-308 for the Bundesliga's 18-team format; Ligue 1 drops from 380 to 308 when it shrank to 18 clubs in 2023-24) before the 2026-27 season now in progress. Expected-goals leaderboards (/v1/leagues/{id}/xg-leaders) reach the same 2014-15 start and are dense throughout (500+ players/season every league every season). xG is league-level only, keyed by player name rather than player_id. Player-level box-score season stats (appearances, minutes, goals, tackles, etc., via soccer_player_season_stats) are a narrower population: dense only from 2023-24 onward, with zero rows for any earlier season even though match and xG data exist there. /v1/standings itself holds only the current and immediately preceding season (2025-26, 2026-27) regardless of match history depth; a season-scoped standings request for an earlier year returns nothing. Corrected 2026-09-11 (previously undersold by 11 seasons): match and /v1/stored/matches coverage reach back to the 2014-15 season, not 2023-24: twelve full, complete prior seasons (380 finished matches each; 306-308 for the Bundesliga's 18-team format; Ligue 1 drops from 380 to 308 when it shrank to 18 clubs in 2023-24) before the 2026-27 season now in progress. Expected-goals leaderboards (/v1/leagues/{id}/xg-leaders) reach the same 2014-15 start and are dense throughout (500+ players/season every league every season). xG is league-level only, keyed by player name rather than player_id. Player-level box-score season stats (appearances, minutes, goals, tackles, etc., via soccer_player_season_stats) are a narrower population: dense only from 2023-24 onward, with zero rows for any earlier season even though match and xG data exist there. /v1/standings itself holds only the current and immediately preceding season (2025-26, 2026-27) regardless of match history depth; a season-scoped standings request for an earlier year returns nothing. Corrected 2026-09-11 (previously undersold by 11 seasons): match and /v1/stored/matches coverage reach back to the 2014-15 season, not 2023-24: twelve full, complete prior seasons (380 finished matches each; 306-308 for the Bundesliga's 18-team format; Ligue 1 drops from 380 to 308 when it shrank to 18 clubs in 2023-24) before the 2026-27 season now in progress. Expected-goals leaderboards (/v1/leagues/{id}/xg-leaders) reach the same 2014-15 start and are dense throughout (500+ players/season every league every season). xG is league-level only, keyed by player name rather than player_id. Player-level box-score season stats (appearances, minutes, goals, tackles, etc., via soccer_player_season_stats) are a narrower population: dense only from 2023-24 onward, with zero rows for any earlier season even though match and xG data exist there. /v1/standings itself holds only the current and immediately preceding season (2025-26, 2026-27) regardless of match history depth; a season-scoped standings request for an earlier year returns nothing. Corrected 2026-09-11: the previously-listed 2024-25 season has no matches in production at all. Real coverage is the complete 2025-26 season (189 finished matches) plus the 2026-27 group stage now under way (20 finished so far). Corrected 2026-09-11: the previously-listed 2025 season has no matches in production: every loaded match is from the 2026 season (247 finished, April-September). | Live |
| /soccer-api |
| Basketball NBA, WNBA Corrected 2026-09-11 (previously undersold by 4 seasons): match coverage reaches back to 2019-20 (979-1,363 finished games per season through 2025-26), not 2023-24. /v1/standings holds only the current season (2025-26) regardless of match history depth. Starting lineups are a closed off-season archive: 1,300 games carry lineup rows, but the newest was written 2026-06-06 and ZERO have landed in the last 30 days (the NBA season is over, and the upstream feed that wrote them is not currently subscribed). Historical lineups and anything derived from them remain valid; new lineups resume with the season. This is off_season, not live. 208 games loaded for the single 2026 season, 203 finished. Team box-score stats are recorded for 100% of finished games. Moneyline odds are retrievable via /v1/matches/:id/odds for 105 of 203 finished games (52%), and lines are posting for the upcoming slate, and the season is in progress. 196 finished games carry a raw price row internally, but only the latest-per-book snapshot is served, so 52% is the number a caller actually gets. No opening/closing snapshots, so /v1/odds/historical returns nothing for the WNBA. Spreads and totals are not loaded. No standings adapter, no player-level stats or props, no lineups, no injuries data yet. | Live |
| /nba-api |
| Ice Hockey NHL Corrected 2026-09-11 (previously OVERstated by 10 seasons, the opposite direction from most fixes in this file): match-level game data, which backs /v1/nhl/games/{id}/matchup and /v1/nhl/players/{id}/props, covers only the 2025-26 season (1,391 finished games, Oct 2025-Jun 2026) plus the 2026-27 season now starting. The previously-listed 2014-15 through 2024-25 seasons have zero matches in production. /v1/nhl/leaders is a genuinely different, season-grain population: a separate xG archive keyed by player and season with no match_id at all, and it really does reach back to 2014-15 (its own `season` query param accepts 2014 onward); that depth was correct for /v1/nhl/leaders but was wrongly applied to this whole league entry, including the two endpoints that need an actual match row and do not have one before 2025-26. | Live |
| /nhl-api |
| Baseball MLB Corrected 2026-09-11 (previously undersold by 35 seasons): Game logs cover 1990 through 2026 (85,617 finished matches), not just 2025-2026. Per-game player batting/pitching lines are a narrower, separately-loaded population: a 60-game random sample per season measured 100% coverage for every season 2015 through 2026 and 0% for every sampled season 1990 through 2014: a sharp cliff, not a gradual falloff, matching where the per-player-game backfill has reached so far. /v1/standings holds only the current season (2026) regardless of match history depth. | Live |
| /mlb-api |
| American Football NFL, NCAAF, NCAAF FCS Six complete seasons, 2020 through 2025, each loaded through the playoffs and Super Bowl: 1,693 games with final scores, 294,989 plays (291,603 carrying EPA), and 112,316 weekly player-stat rows. The 2026 schedule is loaded (272 games) and kicks off 9 September 2026; scores populate as it is played. NCAA FBS, a decade of history: 9,204 games from 2016 through the 2026 schedule (2016-08-27 to 2026-11-28), every one resolving to one of 138 FBS programs. That total now includes 1,024 FBS-vs-FCS 'buy games', excluded entirely as of last sweep because FCS opponents had no resolvable roster; now carried since the NCAAF FCS league (see below) went live. Per-game player stats are live for 2016–2025: 93% of finished games (8,188 of 8,798) carry real box-score-level stats via /v1/players/:id/stats: 4,092,224 player_stats rows across those 8,188 games. The 2025 season alone: 1,121 finished games, 1,119 with a final linescore, real multi-book odds archived for 716 of them (64%) via /v1/odds/historical: opening and closing snapshots, the backtesting surface. Note that /v1/matches/:id/odds serves CURRENT pricing only and returns nothing for these finished games; the archive is reachable through /v1/odds/historical alone. A closed, off-season archive today; 2026 pricing resumes closer to kickoff, same as NFL. Standings (274 rows) are complete. There is no play-by-play for college football. Elo ratings are live for 134 teams. The 2026 season is scheduled (406 games) and kicks off 29 August 2026. NCAA FCS (Football Championship Subdivision), a SEPARATE league from NCAAF (FBS), sharing the same american_football sport_id as a sibling division, not a merged one. 139 teams. A decade of regular-season history, 2016–2025 (weeks 1–15 only; the 24-team FCS postseason playoff is not loaded, a real gap, not implied coverage). 7,113 games touch an FCS team: 6,089 FCS-vs-FCS games filed under this league, plus 1,024 FBS-vs-FCS 'buy games' filed under NCAAF (FBS) since they're part of the FBS team's own schedule too. Both kinds show up on either team's own record via /v1/teams/:id/form and /v1/teams/:id/h2h-intelligence (team-scoped, not league-scoped), but a league-scoped browse (?league=ncaaf-fcs) surfaces the 6,089 FCS-vs-FCS games only; the shared buy games live under NCAAF's own league listing. Per-game player stats are strong for 2021-2025 (88-99% of games); the upstream source's own historical FCS box-score collection only reaches back to 2021, so coverage before that is sparse at the source (0% for 2016-2020 pure FCS-vs-FCS games, confirmed directly against that source, not a gap on our end). The 1,024 shared FBS-vs-FCS buy games are covered back to 2016 (~99%) since they're captured via the FBS ingest. End-to-end across all 7,113 games that touch an FCS team, that's about 58% (4,141 games, 1,087,323 player_stats rows across 42,761 players), a real structural ceiling at the upstream source, not a partial rollout in progress. No standings, no Elo ratings, and no odds are loaded for FCS today. Corrected 2026-09-11: added the 2026 season, now under way (89 finished FCS-vs-FCS games so far); it was previously omitted from this list even though NCAAF (FBS) already listed its own 2026 season. | Live |
| /nfl-api |
| Cricket Test Cricket, ODI Cricket, T20I Cricket, IPL, Big Bash League, Women's Big Bash League, Bangladesh Premier League, Caribbean Premier League, Pakistan Super League, The Hundred Men's Competition, The Hundred Women's Competition, Women's Super Smash, SA20 915 of 920 finished Tests (99.5%) carry full batting and bowling scorecards. 185 fixtures are scheduled ahead, through 2027-04-08. 3,173 of 3,210 finished ODIs (98.8%) carry full batting and bowling scorecards. 47 fixtures are scheduled ahead, through 2027-04-03. Seasons held are NOT contiguous: the years listed are the years we hold, and 2011-2012, 2019-2023 and 2025 are absent. Scorecard coverage is the weakest of any cricket competition we hold: 320 of 760 finished matches (42.1%), against ~100% everywhere else, because the international-T20 scorecard archive is only partly loaded (#877). Also the only cricket competition with retrievable odds, and they are thin: 26 finished matches return moneyline prices via /v1/matches/:id/odds and 78 carry a raw price row internally. Cricket pricing is written only when a match reaches a book: 2 days out of the last 21 carried any cricket price at all. 19 seasons, 2008-2026: 1,243 of 1,258 finished matches (98.8%) carry full batting and bowling scorecards. No IPL odds are retrievable: 8 finished matches carry a raw price row internally and none is reachable through a public endpoint, so the honest label is coming_soon. No fixtures scheduled ahead; the archive runs through the 2026 final. 16 seasons, 2011-2026. All 662 finished matches carry full batting and bowling scorecards at /v1/cricket/matches/{id}/scorecard. No fixtures scheduled ahead; this is a complete archive, not a live feed. 11 seasons, 2015-2025. All 519 finished matches carry full batting and bowling scorecards at /v1/cricket/matches/{id}/scorecard. No fixtures scheduled ahead; this is a complete archive, not a live feed. 12 seasons, 2012-2026. All 469 finished matches carry full batting and bowling scorecards at /v1/cricket/matches/{id}/scorecard. No fixtures scheduled ahead; this is a complete archive, not a live feed. Seasons held are not contiguous. 14 seasons, 2013-2026. All 419 finished matches carry full batting and bowling scorecards at /v1/cricket/matches/{id}/scorecard. No fixtures scheduled ahead; this is a complete archive, not a live feed. 11 seasons, 2016-2026. All 357 finished matches carry full batting and bowling scorecards at /v1/cricket/matches/{id}/scorecard. No fixtures scheduled ahead; this is a complete archive, not a live feed. 6 seasons, 2021-2026. All 194 finished matches carry full batting and bowling scorecards at /v1/cricket/matches/{id}/scorecard. No fixtures scheduled ahead; this is a complete archive, not a live feed. 6 seasons, 2021-2026. All 181 finished matches carry full batting and bowling scorecards at /v1/cricket/matches/{id}/scorecard. No fixtures scheduled ahead; this is a complete archive, not a live feed. 6 seasons, 2021-2026. All 148 finished matches carry full batting and bowling scorecards at /v1/cricket/matches/{id}/scorecard. No fixtures scheduled ahead; this is a complete archive, not a live feed. 4 seasons, 2023-2026. All 130 finished matches carry full batting and bowling scorecards at /v1/cricket/matches/{id}/scorecard. No fixtures scheduled ahead; this is a complete archive, not a live feed. | Live |
| /cricket-api |
| MMA UFC Fight cards and bout matchups (the two fighters, event date, and status) are served across the loaded UFC event archive, plus MMA moneyline odds. Bout RESULTS (winner/method/round), fighter profiles, and win–loss records are not available yet, because our combat odds feed carries no usable MMA result, so finished bouts return the matchup and status without a score. Real results are coming via a dedicated combat-results source. | Partial |
| /mma-api |
| Boxing Professional Boxing Live now: 12,213 fighter profiles (name, nationality, physicals, weight class, external cross-reference ids) at /v1/athletes?sport=boxing and /v1/athletes/{id}?sport=boxing. Win–loss records are not loaded yet and return as null, never a fabricated 0-0-0-0. Bout results SHIPPED 2026-08-14: 219 bouts across 29 Nevada-sanctioned cards, served at /v1/fight-cards, /v1/fight-cards/{id} and /v1/bouts/{id}, carrying the official winner, method, round and the judges' scorecards structured rather than summed. Coverage is Nevada-only: cards staged outside the US, including the UK and Saudi Arabia events that host many marquee title fights, are not covered, and no single US commission covers the whole country. New cards are loaded manually rather than on a cron, so a recent event can lag until the next run. | Partial |
| /boxing-api |
| Formula 1 F1 World Championship The 2026 race calendar is served today: 60 scheduled sessions via /v1/matches?sport=formula1. Corrected 2026-09-11: the season has moved on since this was last written: 36 sessions now carry status 'finished' (not 0), but RESULTS are still not retrievable through any endpoint a caller can reach; none of those finished rows carries a linescore. /v1/f1/sessions/{id}/results is a live route and now holds 73 sessions of 2026 per-driver classifications (not 24), but still no endpoint returns the session_canonical_id it requires, so a caller cannot reach them. No pre-2026 data of any kind. scores/stats/historical are therefore coming_soon. | Partial |
| /formula-1-api |
For the full endpoint surface across every sport see /openapi.json or the interactive explorer on each per-sport landing page. The homepage coverage matrix breaks the same surface down by data type (scores, odds, lineups, ...).