Football data API
Football data, live through one keyFootball results and fixtures across leagues worldwide, with live scores, half-time and full-time scores, line-ups with formations and substitutions, match timelines, league tables by season, teams, players and head to head.
Endpoints
Everything football answers
Each one opens in the docs with a live console, your key already filled in.
| Method | Address | What it gives | Free key | |
|---|---|---|---|---|
| GET | /v1/football/live | Every match in play now, with the score and the clock | Plan | Try it |
| GET | /v1/football/fixtures | Upcoming matches by date | Plan | Try it |
| GET | /v1/football/results | Finished matches by date, with the final score | Yesterday | Try it |
| GET | /v1/football/events/{id} | One match in full: both sides, the score, the venue and the officials | Yesterday | Try it |
| GET | /v1/football/events/{id}/lineups | Starters, substitutes and formations for both sides | Yesterday | Try it |
| GET | /v1/football/events/{id}/periods | The score by half, and every scoring event in order | Yesterday | Try it |
| GET | /v1/football/competitions | Every competition held, with its seasons | Yesterday | Try it |
| GET | /v1/football/standings | A league table for a competition and season | Yesterday | Try it |
| GET | /v1/football/teams/{id} | A team and its record | Yesterday | Try it |
| GET | /v1/football/players/{id} | A player and their figures | Yesterday | Try it |
| GET | /v1/football/head-to-head | Every meeting between two teams | Yesterday | Try it |
| GET | /v1/football/search | Teams, players and competitions by name | Yesterday | Try it |
A real answer
What comes back
Kept from the API each night, exactly as a caller receives it, lists cut to a few rows.
{
"data": [
{
"match_id": "fb_3npnahqb09",
"league_id": "fb_9vq1mbqrgz",
"country_name": "Brazil",
"league_name": "Serie B",
"season_start_year": 2026,
"kickoff_utc": "2026-11-02T23:30:00Z",
"kickoff_date": "2026-11-02",
"kickoff_local_date": "2026-11-02",
"kickoff_local_time": "23:30",
"match_status": "finished",
"home_team_id": "fb_mw96mceske",
"home_team_name": "Goias",
"away_team_id": "fb_1cycjasdqh",
"away_team_name": "CRB",
"home_goals": 2,
"away_goals": 1,
"full_time_result": null,
"half_time_home_goals": 1,
"half_time_away_goals": 0,
"half_time_result": null,
"stoppage_minutes": null,
"is_kickoff_rescheduled": false,
"elapsed_minutes": null,
"home_league_position": 17,
"away_league_position": 18,
"away_travel_km": 1662,
"venue_name": "Estádio da Serrinha",
"city_name": "Goiânia",
"latitude": -16.635209,
"longitude": -49.265904,
"location_precision": "ground",
"daylight_minutes": 763,
"sun_elevation_deg": -29.3,
"public_holiday": null,
"kickoff_temperature_c": null,
"kickoff_rain_mm": null,
"kickoff_wind_ms": null,
"attendance": null,
"referee_name": "Felipe Fernandes de Lima",
"kickoff_book_pct": 1.0138,
"regular_time_home_goals": null,
"regular_time_away_goals": null,
"regular_time_result": null,
"extra_time_home_goals": null,
"extra_time_away_goals": null,
"shootout_home_goals": null,
"shootout_away_goals": null,
"statistics_status": null,
"best_odds": {
"home": 2.16,
"draw": 3.8,
"away": 3.55,
"book_pct": 1.0078,
"taken_utc": "2026-11-02T23:25:02Z"
},
"team_figures": null,
"statistics_reason": null
},
{
"match_id": "fb_3mg42m9pyn",
"league_id": "fb_wma271b54d",
"country_name": "Chile",
"league_name": "Primera División",
"season_start_year": 2026,
"kickoff_utc": "2026-11-02T23:30:00Z",
"kickoff_date": "2026-11-02",
"kickoff_local_date": "2026-11-02",
"kickoff_local_time": "23:30",
"match_status": "finished",
"home_team_id": "fb_hny9rc1tkt",
"home_team_name": "Concepción",
"away_team_id": "fb_ws0bbvakw5",
"away_team_name": "Palestino",
"home_goals": 1,
"away_goals": 0,
"full_time_result": null,
"half_time_home_goals": 1,
"half_time_away_goals": 0,
"half_time_result": null,
"stoppage_minutes": null,
"is_kickoff_rescheduled": false,
"elapsed_minutes": null,
"home_league_position": 11,
"away_league_position": 4,
"away_travel_km": 433,
"venue_name": "Estadio Municipal Ester Roa Concepcion",
"city_name": "Concepcion",
"latitude": -36.826944444444,
"longitude": -73.050277777778,
"location_precision": "city",
"daylight_minutes": 819,
"sun_elevation_deg": -1.7,
"public_holiday": null,
"kickoff_temperature_c": null,
"kickoff_rain_mm": null,
"kickoff_wind_ms": null,
"attendance": null,
"referee_name": null,
"kickoff_book_pct": 1.0148,
"regular_time_home_goals": null,
"regular_time_away_goals": null,
"regular_time_result": null,
"extra_time_home_goals": null,
"extra_time_away_goals": null,
"shootout_home_goals": null,
"shootout_away_goals": null,
"statistics_status": null,
"best_odds": {
"home": 2.76,
"draw": 3.5,
"away": 2.74,
"book_pct": 1.013,
"taken_utc": "2026-11-02T23:25:02Z"
},
"team_figures": null,
"statistics_reason": null
}
],
"meta": {
"sport": "football",
"endpoint": "/results",
"count": 100,
"page": 1,
"per_page": 100,
"total": 229,
"total_pages": 3,
"next_cursor": "MTc5MzYzODgwMDoxNTU1MjAw",
"next_page": 2,
"prev_page": null,
"as_of": "2026-11-02T05:16:53Z",
"cached": false,
"age_seconds": 0
}
}{
"data": {
"league_id": "fb_3ecv7ykzb0",
"country_name": "Japan",
"league_name": "J2 League",
"season_start_year": 2026,
"as_of": null,
"venue": null,
"table": [
{
"position": 1,
"team_id": "fb_j7mf17ccb0",
"team_name": "Tegevajaro Miyazaki",
"played": 30,
"won": 21,
"drawn": 5,
"lost": 4,
"goals_for": 53,
"goals_against": 24,
"goal_difference": 29,
"points": 68
},
{
"position": 2,
"team_id": "fb_nb55pjkdzs",
"team_name": "Vegalta Sendai",
"played": 27,
"won": 19,
"drawn": 3,
"lost": 5,
"goals_for": 51,
"goals_against": 24,
"goal_difference": 27,
"points": 60
},
{
"position": 3,
"team_id": "fb_3y29vg3tte",
"team_name": "Kataller Toyama",
"played": 27,
"won": 17,
"drawn": 4,
"lost": 6,
"goals_for": 57,
"goals_against": 32,
"goal_difference": 25,
"points": 55
}
]
},
"meta": {
"sport": "football",
"endpoint": "/standings",
"count": 40,
"as_of": "2026-11-02T05:16:53Z",
"cached": false,
"age_seconds": 0
}
}{
"data": [
{
"league_id": "fb_dpr4vz6359",
"country_name": "World",
"league_name": "Friendlies Clubs",
"match_count": 45509,
"priced_count": 13262,
"season_first": 2020,
"season_last": 2026,
"coverage": {
"held": {
"kickoff_price_pct": 29.1
},
"available": {
"season": 2026,
"events": true,
"lineups": true,
"match_statistics": false,
"player_statistics": false,
"standings": false,
"injuries": false,
"odds": false
}
}
},
{
"league_id": "fb_cwnvrptbn9",
"country_name": "England",
"league_name": "Championship",
"match_count": 18972,
"priced_count": 14546,
"season_first": 1892,
"season_last": 2026,
"coverage": {
"held": {
"kickoff_price_pct": 76.7
},
"available": {
"season": 2026,
"events": true,
"lineups": true,
"match_statistics": true,
"player_statistics": true,
"standings": true,
"injuries": true,
"odds": true
}
}
}
],
"meta": {
"sport": "football",
"endpoint": "/competitions",
"count": 100,
"page": 1,
"per_page": 100,
"total": 1381,
"total_pages": 14,
"next_cursor": null,
"next_page": 2,
"prev_page": null,
"as_of": "2026-11-02T05:16:53Z",
"cached": false,
"age_seconds": 0
}
}Goes well with
Sports often taken with football
Can I try football before I pay?
Yes. The free key reads yesterday's football data on every endpoint except live and fixtures, 50 calls a day, no card.
What does the Football plan include?
Every football endpoint, live and upcoming included, the full history we hold, 120 calls a minute and 250,000 a month, for $79 a month or $790 a year.
Does it answer like the other sports?
Yes. Football answers in the same shape as every other sport, through the same key, so code written for one reads the rest.
Can I use it with Claude?
Yes. The MCP server turns each football endpoint into a tool, on the same key.