Documentation / Seasons
FOOTBALL SEASON MATCHES API
Season matchesComplimentary key
Every match of a competition in one season, in kickoff order, played and still to come, paged. On the complimentary key it reads this season's Premier League.
GET
/v1/competitions/{competition}/seasons/{season}/matchesTRY ITComplimentary
Kept in this browser for every docs page. No key yet? Get a free key
GET https://api.footballapi.org/v1/competitions/premier-league/seasons/2026/matches?per_page=2The answer appears below, with its status and time.
curl "https://api.footballapi.org/v1/competitions/premier-league/seasons/2026/matches?per_page=2" \ -H "X-API-Key: your key"
PARAMETERS
competitionrequiredstringA competition from /v1/competitions, such as premier-league. In the path.seasonrequiredintegerThe first year of the season: 2026 for 2026/27. In the path.From 2015, or the competition's first seasonpageintegerWhich page, from 1.From 1 to 100,000per_pageintegerRows on a page. Default 100.From 1 to 1,000cursorstringmeta.next_cursor from the page before, passed back unchanged. Faster than page for long walks.RETURNS
match_idstringOur id for the match, mt_ and 9 characters, the same in every answer and for goodcompetitionstringThe competition's name in the collection, such as premier-leaguecountry_namestringThe country, or World or Europe for a tournamentcompetition_namestringThe competition as people write itseason_start_yearintegerThe first year of the season: 2026 for 2026/27kickoff_utcstringKickoff in UTC, ISO 8601kickoff_datestringThe day of kickoff in UTC, YYYY-MM-DDkickoff_local_datestringThe day of kickoff where the match is playedkickoff_local_timestringThe time of kickoff where the match is playedmatch_statusstringWhere the match stands, such as finished or not startedhome_club_idstringOur id for the home clubhome_club_namestringThe home clubaway_club_idstringOur id for the away clubaway_club_namestringThe away clubhome_goalsintegerHome goals at full timeaway_goalsintegerAway goals at full timefull_time_resultstringhome, away or draw, at full timehalf_time_home_goalsintegerHome goals at half timehalf_time_away_goalsintegerAway goals at half timehalf_time_resultstringhome, away or draw, at half timestoppage_minutesintegerMinutes of added time; null when not recordedis_kickoff_rescheduledbooleanWhether kickoff moved from its first date or timeelapsed_minutesnull or moreMinutes played so far while the match is on; null otherwisehome_league_positionnull or moreThe home side's place in its league before kickoffaway_league_positionnull or moreThe away side's place in its league before kickoffaway_travel_kmintegerHow far the away side came, ground to ground, in kilometresground_namestringThe groundcity_namestringThe city of the groundlatitudenumberWhere the ground is, north to southlongitudenumberWhere the ground is, east to westlocation_precisionstringHow exact latitude and longitude are: ground, or citydaylight_minutesintegerMinutes of daylight that day at the groundsun_elevation_degnumberThe sun's height at kickoff, in degrees; below 0 after darkpublic_holidaynull or moreThe public holiday that day where the match is played; null when nonekickoff_temperature_cnumberThe temperature at kickoff, in degrees C; null when not recordedkickoff_rain_mmnumberRain in the hour of kickoff, in millimetres; null when not recordedkickoff_wind_msnumberWind at kickoff, in metres a second; null when not recordedattendanceintegerThe crowd; null when not recordedreferee_namestringThe refereeregular_time_home_goalsintegerHome goals after 90 minutes and added timeregular_time_away_goalsintegerAway goals after 90 minutes and added timeregular_time_resultstringhome, away or draw, after 90 minutes and added timeextra_time_home_goalsnull or moreHome goals after extra time; null when there was noneextra_time_away_goalsnull or moreAway goals after extra time; null when there was noneshootout_home_goalsnull or moreHome penalties scored in a shootout; null when there was noneshootout_away_goalsnull or moreAway penalties scored in a shootout; null when there was noneclub_figuresobjectEach side's figures for the matchclub_figures.homeobjectThe home sideclub_figures.home.xgnumberExpected goalsclub_figures.home.xg_estimatenumberExpected goals worked out from the shots and the other figuresclub_figures.home.shotsintegerShotsclub_figures.home.shots_on_targetintegerShots on targetclub_figures.home.cornersintegerCornersclub_figures.home.foulsintegerFouls committedclub_figures.home.yellow_cardsintegerYellow cardsclub_figures.home.red_cardsintegerRed cardsclub_figures.home.possession_pctintegerShare of the ball, as a percentageclub_figures.awayobjectThe away sideclub_figures.away.xgnumberExpected goalsclub_figures.away.xg_estimatenumberExpected goals worked out from the shots and the other figuresclub_figures.away.shotsintegerShotsclub_figures.away.shots_on_targetintegerShots on targetclub_figures.away.cornersintegerCornersclub_figures.away.foulsintegerFouls committedclub_figures.away.yellow_cardsintegerYellow cardsclub_figures.away.red_cardsintegerRed cardsclub_figures.away.possession_pctintegerShare of the ball, as a percentageEXAMPLE ANSWER
200GET /v1/competitions/premier-league/seasons/2026/matches?per_page=2, taken 21 Oct 2026
{ "data": [ { "match_id": "mt_146444zr9", "competition": "premier-league", "country_name": "England", "competition_name": "Premier League", "season_start_year": 2026, "kickoff_utc": "2026-08-21T19:00:00Z", "kickoff_date": "2026-08-21", "kickoff_local_date": "2026-08-21", "kickoff_local_time": "19:00", "match_status": "finished", "home_club_id": "cl_9cbmhewrg", "home_club_name": "Arsenal", "away_club_id": "cl_frt0n2e46", "away_club_name": "Coventry", "home_goals": 3, "away_goals": 0, "full_time_result": "home", "half_time_home_goals": 2, "half_time_away_goals": 0, "half_time_result": "home", "stoppage_minutes": 5, "is_kickoff_rescheduled": false, "elapsed_minutes": null, "home_league_position": null, "away_league_position": null, "away_travel_km": 137, "ground_name": "Emirates Stadium", "city_name": "London", "latitude": 51.555, "longitude": -0.10833333333333, "location_precision": "ground", "daylight_minutes": 859, "sun_elevation_deg": 1.1, "public_holiday": null, "kickoff_temperature_c": 16.1, "kickoff_rain_mm": 0.01, "kickoff_wind_ms": 4.4, "attendance": 60098, "referee_name": "Thomas Bramall", "regular_time_home_goals": 3, "regular_time_away_goals": 0, "regular_time_result": "home", "extra_time_home_goals": null, "extra_time_away_goals": null, "shootout_home_goals": null, "shootout_away_goals": null, "club_figures": { "home": { "xg": 1.88, "xg_estimate": 1.75, "shots": 20, "shots_on_target": 6, "corners": 8, "fouls": 10, "yellow_cards": 1, "red_cards": 0, "possession_pct": 64 }, "away": { "xg": 0.2, "xg_estimate": 0.21, "shots": 4, "shots_on_target": 1, "corners": 2, "fouls": 13, "yellow_cards": 1, "red_cards": 0, "possession_pct": 36 } } }, { "match_id": "mt_9bf725d14", "competition": "premier-league", "country_name": "England", "competition_name": "Premier League", "season_start_year": 2026, "kickoff_utc": "2026-08-22T11:30:00Z", "kickoff_date": "2026-08-22", "kickoff_local_date": "2026-08-22", "kickoff_local_time": "11:30", "match_status": "finished", "home_club_id": "cl_bp6fqwzpj", "home_club_name": "Hull City", "away_club_id": "cl_3pekhsfp3", "away_club_name": "Manchester United", "home_goals": 2, "away_goals": 0, "full_time_result": "home", "half_time_home_goals": 2, "half_time_away_goals": 0, "half_time_result": "home", "stoppage_minutes": 7, "is_kickoff_rescheduled": false, "elapsed_minutes": null, "home_league_position": null, "away_league_position": null, "away_travel_km": 131, "ground_name": "MKM Stadium", "city_name": "Hull", "latitude": 53.746111111111, "longitude": -0.36777777777778, "location_precision": "ground", "daylight_minutes": 868, "sun_elevation_deg": 47.7, "public_holiday": null, "kickoff_temperature_c": 19.2, "kickoff_rain_mm": 0.01, "kickoff_wind_ms": 3, "attendance": 24470, "referee_name": "Darren England", "regular_time_home_goals": 2, "regular_time_away_goals": 0, "regular_time_result": "home", "extra_time_home_goals": null, "extra_time_away_goals": null, "shootout_home_goals": null, "shootout_away_goals": null, "club_figures": { "home": { "xg": 1.01, "xg_estimate": 0.99, "shots": 8, "shots_on_target": 4, "corners": 1, "fouls": 10, "yellow_cards": 2, "red_cards": 0, "possession_pct": 28 }, "away": { "xg": 1.83, "xg_estimate": 2.22, "shots": 21, "shots_on_target": 5, "corners": 6, "fouls": 9, "yellow_cards": 1, "red_cards": 0, "possession_pct": 72 } } } ], "meta": { "count": 2, "page": 1, "per_page": 2, "total": 380, "total_pages": 190, "next_page": 2, "prev_page": null, "next_cursor": "A-T6AyCUnqZp_hdnmJlgdgkYxVxvVmWFMb7DznzlqYcymSomuLvR-gngjpejhhBoj_zofw", "request_id": "req_36846376b2cd28a9" } }
ERRORS
401unauthorizedNo key, or a key we do not know.400bad_requestA parameter is missing or not in the right form; the message names it.403upgrade_requiredAnything outside this season's Premier League, on the complimentary key.404not_foundAn id or competition we do not have.422unknown_parameterA parameter this endpoint does not take.429quota_exceededThe day's 50 calls are used, on the complimentary key; they reset at 00:00 UTC.