FOOTBALL API
The collectionDocumentationMembershipStatusSupport
Documentation / Results

FOOTBALL RESULTS YESTERDAY API

Yesterday
Complimentary key

Every match settled yesterday, by the UTC calendar, in every competition your key reads. Pass a competition to keep to one. On the complimentary key it reads this season's Premier League.

GET/v1/results/yesterday
TRY ITComplimentary
Kept in this browser for every docs page. No key yet? Get a free key
GET https://api.footballapi.org/v1/results/yesterday
The answer appears below, with its status and time.
curl "https://api.footballapi.org/v1/results/yesterday" \
  -H "X-API-Key: your key"

PARAMETERS

competitionstringA competition from /v1/competitions, such as premier-league. Leave it out for every competition your key reads.

RETURNS

match_idstringOur id for the match, mt_ and 9 characters, the same in every answer and for good
competitionstringThe competition's name in the collection, such as premier-league
country_namestringThe country, or World or Europe for a tournament
competition_namestringThe competition as people write it
season_start_yearintegerThe first year of the season: 2026 for 2026/27
kickoff_utcstringKickoff in UTC, ISO 8601
kickoff_datestringThe day of kickoff in UTC, YYYY-MM-DD
kickoff_local_datestringThe day of kickoff where the match is played
kickoff_local_timestringThe time of kickoff where the match is played
match_statusstringWhere the match stands, such as finished or not started
home_club_idstringOur id for the home club
home_club_namestringThe home club
away_club_idstringOur id for the away club
away_club_namestringThe away club
home_goalsintegerHome goals at full time
away_goalsintegerAway goals at full time
full_time_resultstringhome, away or draw, at full time
half_time_home_goalsintegerHome goals at half time
half_time_away_goalsintegerAway goals at half time
half_time_resultstringhome, away or draw, at half time
stoppage_minutesnull or moreMinutes of added time; null when not recorded
is_kickoff_rescheduledbooleanWhether kickoff moved from its first date or time
elapsed_minutesnull or moreMinutes played so far while the match is on; null otherwise
home_league_positionnull or moreThe home side's place in its league before kickoff
away_league_positionnull or moreThe away side's place in its league before kickoff
away_travel_kmintegerHow far the away side came, ground to ground, in kilometres
ground_namestringThe ground
city_namestringThe city of the ground
latitudenumberWhere the ground is, north to south
longitudenumberWhere the ground is, east to west
location_precisionstringHow exact latitude and longitude are: ground, or city
daylight_minutesintegerMinutes of daylight that day at the ground
sun_elevation_degintegerThe sun's height at kickoff, in degrees; below 0 after dark
public_holidaynull or moreThe public holiday that day where the match is played; null when none
kickoff_temperature_cnull or moreThe temperature at kickoff, in degrees C; null when not recorded
kickoff_rain_mmnull or moreRain in the hour of kickoff, in millimetres; null when not recorded
kickoff_wind_msnull or moreWind at kickoff, in metres a second; null when not recorded
attendancenull or moreThe crowd; null when not recorded
referee_namestringThe referee
regular_time_home_goalsintegerHome goals after 90 minutes and added time
regular_time_away_goalsintegerAway goals after 90 minutes and added time
regular_time_resultstringhome, away or draw, after 90 minutes and added time
extra_time_home_goalsnull or moreHome goals after extra time; null when there was none
extra_time_away_goalsnull or moreAway goals after extra time; null when there was none
shootout_home_goalsnull or moreHome penalties scored in a shootout; null when there was none
shootout_away_goalsnull or moreAway penalties scored in a shootout; null when there was none
club_figuresobjectEach side's figures for the match
club_figures.homeobjectThe home side
club_figures.home.xgnumberExpected goals
club_figures.home.xg_estimatenumberExpected goals worked out from the shots and the other figures
club_figures.home.shotsintegerShots
club_figures.home.shots_on_targetintegerShots on target
club_figures.home.cornersintegerCorners
club_figures.home.foulsintegerFouls committed
club_figures.home.yellow_cardsintegerYellow cards
club_figures.home.red_cardsintegerRed cards
club_figures.home.possession_pctintegerShare of the ball, as a percentage
club_figures.awayobjectThe away side
club_figures.away.xgnumberExpected goals
club_figures.away.xg_estimatenumberExpected goals worked out from the shots and the other figures
club_figures.away.shotsintegerShots
club_figures.away.shots_on_targetintegerShots on target
club_figures.away.cornersintegerCorners
club_figures.away.foulsintegerFouls committed
club_figures.away.yellow_cardsintegerYellow cards
club_figures.away.red_cardsintegerRed cards
club_figures.away.possession_pctintegerShare of the ball, as a percentage

EXAMPLE ANSWER

200GET /v1/results/yesterday, taken 21 Oct 2026, first rows shown
{
  "data": [
    {
      "match_id": "mt_5wa63w50c",
      "competition": "champions-league",
      "country_name": "World",
      "competition_name": "UEFA Champions League",
      "season_start_year": 2026,
      "kickoff_utc": "2026-10-20T19:00:00Z",
      "kickoff_date": "2026-10-20",
      "kickoff_local_date": "2026-10-20",
      "kickoff_local_time": "19:00",
      "match_status": "finished",
      "home_club_id": "cl_a61p5h89m",
      "home_club_name": "VfB Stuttgart",
      "away_club_id": "cl_1xzgy7vsr",
      "away_club_name": "Atletico Madrid",
      "home_goals": 1,
      "away_goals": 1,
      "full_time_result": "draw",
      "half_time_home_goals": 1,
      "half_time_away_goals": 0,
      "half_time_result": "home",
      "stoppage_minutes": null,
      "is_kickoff_rescheduled": false,
      "elapsed_minutes": null,
      "home_league_position": null,
      "away_league_position": null,
      "away_travel_km": 1373,
      "ground_name": "MHP Arena",
      "city_name": "Stuttgart",
      "latitude": 48.792222,
      "longitude": 9.231944,
      "location_precision": "ground",
      "daylight_minutes": 636,
      "sun_elevation_deg": -26,
      "public_holiday": null,
      "kickoff_temperature_c": null,
      "kickoff_rain_mm": null,
      "kickoff_wind_ms": null,
      "attendance": null,
      "referee_name": "Serdar Gozubuyuk",
      "regular_time_home_goals": 1,
      "regular_time_away_goals": 1,
      "regular_time_result": "draw",
      "extra_time_home_goals": null,
      "extra_time_away_goals": null,
      "shootout_home_goals": null,
      "shootout_away_goals": null,
      "club_figures": {
        "home": {
          "xg": 1.53,
          "xg_estimate": 1.88,
          "shots": 18,
          "shots_on_target": 5,
          "corners": 9,
          "fouls": 15,
          "yellow_cards": 1,
          "red_cards": 0,
          "possession_pct": 54
        },
        "away": {
          "xg": 0.9,
          "xg_estimate": 1.34,
          "shots": 10,
          "shots_on_target": 3,
          "corners": 4,
          "fouls": 7,
          "yellow_cards": 0,
          "red_cards": 1,
          "possession_pct": 46
        }
      }
    },
    {
      "match_id": "mt_axv6nfqym",
      "competition": "champions-league",
      "country_name": "World",
      "competition_name": "UEFA Champions League",
      "season_start_year": 2026,
      "kickoff_utc": "2026-10-20T19:00:00Z",
      "kickoff_date": "2026-10-20",
      "kickoff_local_date": "2026-10-20",
      "kickoff_local_time": "19:00",
      "match_status": "finished",
      "home_club_id": "cl_d6zjnzmp1",
      "home_club_name": "Paris Saint Germain",
      "away_club_id": "cl_39f8dsw23",
      "away_club_name": "Barcelona",
      "home_goals": 4,
      "away_goals": 2,
      "full_time_result": "home",
      "half_time_home_goals": 1,
      "half_time_away_goals": 0,
      "half_time_result": "home",
      "stoppage_minutes": null,
      "is_kickoff_rescheduled": false,
      "elapsed_minutes": null,
      "home_league_position": null,
      "away_league_position": null,
      "away_travel_km": 830,
      "ground_name": "Parc des Princes",
      "city_name": "Paris",
      "latitude": 48.84145,
      "longitude": 2.25305,
      "location_precision": "ground",
      "daylight_minutes": 636,
      "sun_elevation_deg": -21.5,
      "public_holiday": null,
      "kickoff_temperature_c": null,
      "kickoff_rain_mm": null,
      "kickoff_wind_ms": null,
      "attendance": null,
      "referee_name": "Michael Oliver",
      "regular_time_home_goals": 4,
      "regular_time_away_goals": 2,
      "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": 3.77,
          "xg_estimate": 2.98,
          "shots": 22,
          "shots_on_target": 14,
          "corners": 2,
          "fouls": 11,
          "yellow_cards": 0,
          "red_cards": 0,
          "possession_pct": 47
        },
        "away": {
          "xg": 2.22,
          "xg_estimate": 1.88,
          "shots": 18,
          "shots_on_target": 5,
          "corners": 3,
          "fouls": 10,
          "yellow_cards": 1,
          "red_cards": 0,
          "possession_pct": 53
        }
      }
    }
  ],
  "meta": {
    "count": 37,
    "date": "2026-10-20",
    "request_id": "req_16422232ac350822"
  }
}

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.