FOOTBALL API
The collectionDocumentationMembershipStatusSupport
Documentation / Matches

FOOTBALL MATCH STATISTICS API

Match stats
Complimentary key

Each side's figures for a match: shots, shots on target, possession, passes, corners, fouls, offsides, cards and expected goals. On the complimentary key it reads this season's Premier League.

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

PARAMETERS

match_idrequiredstringA match id from any result, fixture or match list, such as mt_e2hk79mn5. In the path.

RETURNS

match_idstringOur id for the match, mt_ and 9 characters, the same in every answer and for good
home_club_namestringThe home club
away_club_namestringThe away club
kickoff_utcstringKickoff in UTC, ISO 8601
match_statusstringWhere the match stands, such as finished or not started
statslistEach side's figures for the match
stats[].club_namestringThe club
stats[].statsobjectEach side's figures for the match
stats[].stats.cornersintegerCorners
stats[].stats.expected_goalsnumberExpected goals
stats[].stats.foulsintegerFouls committed
stats[].stats.free_kicksintegerFree kicks
stats[].stats.offsidesintegerTimes caught offside
stats[].stats.passes_accurateintegerPasses that reached a team-mate
stats[].stats.passes_totalintegerPasses
stats[].stats.possession_pctintegerShare of the ball, as a percentage
stats[].stats.red_cardsintegerRed cards
stats[].stats.savesintegerSaves by the goalkeeper
stats[].stats.shots_blockedintegerShots blocked
stats[].stats.shots_inside_boxintegerShots from inside the penalty area
stats[].stats.shots_off_targetintegerShots off target
stats[].stats.shots_on_targetintegerShots on target
stats[].stats.shots_outside_boxintegerShots from outside the penalty area
stats[].stats.shots_totalintegerShots
stats[].stats.yellow_cardsintegerYellow cards

EXAMPLE ANSWER

200GET /v1/matches/mt_95kf4jw9a/stats, taken 21 Oct 2026
{
  "data": {
    "match_id": "mt_95kf4jw9a",
    "home_club_name": "Tottenham",
    "away_club_name": "Coventry",
    "kickoff_utc": "2026-10-19T19:00:00Z",
    "match_status": "finished",
    "stats": [
      {
        "club_name": "Tottenham",
        "stats": {
          "corners": 4,
          "expected_goals": 0.9,
          "fouls": 15,
          "free_kicks": 14,
          "offsides": 6,
          "passes_accurate": 499,
          "passes_total": 559,
          "possession_pct": 66,
          "red_cards": 0,
          "saves": 0,
          "shots_blocked": 4,
          "shots_inside_box": 10,
          "shots_off_target": 7,
          "shots_on_target": 5,
          "shots_outside_box": 6,
          "shots_total": 16,
          "yellow_cards": 1
        }
      },
      {
        "club_name": "Coventry",
        "stats": {
          "corners": 4,
          "expected_goals": 0.83,
          "fouls": 14,
          "free_kicks": 15,
          "offsides": 1,
          "passes_accurate": 221,
          "passes_total": 285,
          "possession_pct": 34,
          "red_cards": 0,
          "saves": 2,
          "shots_blocked": 4,
          "shots_inside_box": 11,
          "shots_off_target": 7,
          "shots_on_target": 1,
          "shots_outside_box": 1,
          "shots_total": 12,
          "yellow_cards": 3
        }
      }
    ]
  },
  "meta": {
    "request_id": "req_e40600e3f584dc59"
  }
}

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.