Football fixtures API
FixturesUpcoming matches by date.
This lists what is coming, with start times in UTC and the ids that carry on into results once played. It comes with the Football plan.
Try it
Your key stays in this browser and is filled in on every docs page.
{
"data": [
{
"match_id": "fb_p04h38sesj",
"league_id": "fb_3ecv7ykzb0",
"country_name": "Japan",
"league_name": "J2 League",
"season_start_year": 2026,
"kickoff_utc": "2026-11-03T04:55:00Z",
"kickoff_date": "2026-11-03",
"kickoff_local_date": "2026-11-03",
"kickoff_local_time": "04:55",
"match_status": "scheduled",
"home_team_id": "fb_3y29vg3tte",
"home_team_name": "Kataller Toyama",
"away_team_id": "fb_nb55pjkdzs",
"away_team_name": "Vegalta Sendai",
"home_goals": null,
"away_goals": null,
"full_time_result": null,
"half_time_home_goals": null,
"half_time_away_goals": null,
"half_time_result": null,
"stoppage_minutes": null,
"is_kickoff_rescheduled": false,
"elapsed_minutes": null,
"home_league_position": 3,
"away_league_position": 2,
"away_travel_km": 370,
"venue_name": "Toyama Stadium",
"city_name": "Toyama",
"latitude": 36.695916666667,
"longitude": 137.21369444444,
"location_precision": "city",
"daylight_minutes": 638,
"sun_elevation_deg": 28.9,
"public_holiday": null,
"kickoff_temperature_c": null,
"kickoff_rain_mm": null,
"kickoff_wind_ms": null,
"attendance": null,
"referee_name": null,
"kickoff_book_pct": 1.012,
"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.98,
"draw": 3.85,
"away": 2.4,
"book_pct": 1.012,
"taken_utc": "2026-11-03T04:00:03Z"
},
"team_figures": null,
"statistics_reason": null
},
{
"match_id": "fb_4rheazj517",
"league_id": "fb_99zhnmev8a",
"country_name": "Japan",
"league_name": "J3 League",
"season_start_year": 2026,
"kickoff_utc": "2026-11-03T05:00:00Z",
"kickoff_date": "2026-11-03",
"kickoff_local_date": "2026-11-03",
"kickoff_local_time": "05:00",
"match_status": "scheduled",
"home_team_id": "fb_23nh4gt1gq",
"home_team_name": "Gainare Tottori",
"away_team_id": "fb_mk5wdntwz7",
"away_team_name": "Sagamihara",
"home_goals": null,
"away_goals": null,
"full_time_result": null,
"half_time_home_goals": null,
"half_time_away_goals": null,
"half_time_result": null,
"stoppage_minutes": null,
"is_kickoff_rescheduled": false,
"elapsed_minutes": null,
"home_league_position": 15,
"away_league_position": 6,
"away_travel_km": 467,
"venue_name": "Axis Bird Stadium",
"city_name": "Tottori",
"latitude": 35.494388888889,
"longitude": 134.22161111111,
"location_precision": "city",
"daylight_minutes": 642,
"sun_elevation_deg": 30.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.0165,
"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": 3.55,
"draw": 3.8,
"away": 2.12,
"book_pct": 1.0165,
"taken_utc": "2026-11-03T04:00:03Z"
},
"team_figures": null,
"statistics_reason": null
}
],
"meta": {
"sport": "football",
"endpoint": "/fixtures",
"count": 100,
"page": 1,
"per_page": 100,
"total": 3555,
"total_pages": 36,
"next_cursor": "MTc5MzcyODgwMDoxNDk0MzI3",
"next_page": 2,
"prev_page": null,
"as_of": "2026-11-02T05:16:53Z",
"cached": false,
"age_seconds": 0
}
}Parameters
Query values this call takes. Anything else is refused with bad_param and the list it accepts.
| Name | Type | What it does | |
|---|---|---|---|
| date | date | optional | One day, written YYYY-MM-DD. Leave it out for the default day. The free key reads yesterday only. |
| competition | id | optional | Only this competition, by its id from Competitions. |
| page | integer | optional | Which page of rows, from 1. |
| per_page | integer | optional | Rows per page, up to 100 on most lists. |
Returns
Each row of data, from a real answer. Every id is ours and opens its own endpoint.
| Field | Type | What it holds |
|---|---|---|
| match_id | id | The match, by our id |
| league_id | id | The competition, by our id |
| country_name | string | Where it is played |
| league_name | string | The competition |
| season_start_year | integer | The year the season started |
| kickoff_utc | datetime | Kick-off time in UTC |
| kickoff_date | date | Kickoff date |
| kickoff_local_date | date | Kickoff local date |
| kickoff_local_time | string | Kickoff local time |
| match_status | string | The match state |
| home_team_id | id | The home side, by our id |
| home_team_name | string | The home side |
| away_team_id | id | The away side, by our id |
| away_team_name | string | The away side |
| home_goals | null | Home goals at full time |
| away_goals | null | Away goals at full time |
| full_time_result | null | H, D or A at full time |
| half_time_home_goals | null | Home goals at half-time |
| half_time_away_goals | null | Away goals at half-time |
| half_time_result | null | H, D or A at half-time |
| stoppage_minutes | null | Stoppage in metresinutes |
| is_kickoff_rescheduled | boolean | Is kickoff rescheduled |
| elapsed_minutes | null | Elapsed in metresinutes |
| home_league_position | integer | Home league position |
| away_league_position | integer | Away league position |
| away_travel_km | integer | Away travel km |
| venue_name | string | The ground |
| city_name | string | The city |
| latitude | number | Latitude of the ground |
| longitude | number | Longitude of the ground |
| location_precision | string | Location precision |
| daylight_minutes | integer | Daylight in metresinutes |
| sun_elevation_deg | number | Sun elevation deg |
| public_holiday | null | Public holiday |
| kickoff_temperature_c | null | Kickoff temperature c |
| kickoff_rain_mm | null | Kickoff rain in metresm |
| kickoff_wind_ms | null | Kickoff wind in metress |
| attendance | null | Attendance |
| referee_name | null | Referee name |
| kickoff_book_pct | number | Kickoff book percent |
| regular_time_home_goals | null | Regular time home goals |
| regular_time_away_goals | null | Regular time away goals |
| regular_time_result | null | Regular time result |
| extra_time_home_goals | null | Extra time home goals |
| extra_time_away_goals | null | Extra time away goals |
| shootout_home_goals | null | Shootout home goals |
| shootout_away_goals | null | Shootout away goals |
| statistics_status | null | Statistics status |
| best_odds | object | Best odds |
| team_figures | null | Team figures |
| statistics_reason | null | Statistics reason |
| meta | What it holds |
|---|---|
| sport, endpoint | What you asked |
| count | Rows in this answer |
| page, per_page, total, next_cursor | Where you are in a paged list, when it is paged |
| as_of | When the data was built |
| cached, age_seconds | Whether this is a stored copy, and its age |
| access | On the free key: what it reads, and the plan that opens the rest |
Errors
Codes this call can give. Each is explained in Errors.
| Status | Code | When |
|---|---|---|
| 401 | no_key | No key sent, or not in a form we read |
| 401 | bad_key | A key we do not know |
| 403 | plan | The free key, or a sport you do not hold |
| 422 | bad_param | A value this call does not take |
| 429 | rate | Over the calls a minute for your plan |
| 503 | upstream | The data is not answering; retry after Retry-After |
Fixtures comes with the Football plan, $79 a month, with every date held and 250,000 calls a month.
Add Football