FOOTBALL API
The collectionDocumentationMembershipStatusSupport

FOOTBALL CLUB FORM API

Form
Complimentary keyMCP tool club_form

The last results of a club, newest first, with a summary of goals, clean sheets and points. On the complimentary key it reads this season's Premier League.

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

PARAMETERS

club_idrequiredstringA club id from any match, table or club list, such as cl_a7vhnxhhh. In the path.
lastintegerHow many matches, newest first. Default 5.From 1 to 50

RETURNS

club_idstringOur id for the club, cl_ and 9 characters, the same in every answer and for good
club_namestringThe club
lastintegerHow many matches the form covers
formstringThe results, newest first: W, D or L for each match
summaryobjectThe matches counted, in figures
summary.playedintegerMatches counted
summary.wonintegerMatches won
summary.drawnintegerMatches drawn
summary.lostintegerMatches lost
summary.goals_forintegerGoals scored
summary.goals_againstintegerGoals let in
summary.clean_sheetsintegerMatches without letting one in
summary.failed_to_scoreintegerMatches without scoring
summary.goal_differenceintegerGoals scored less goals let in
summary.pointsintegerThree for a win, one for a draw
summary.win_pctintegerShare of the matches won, as a percentage
summary.goals_per_gamenumberGoals scored a match, on average
summary.conceded_per_gamenumberGoals let in a match, on average
homeobjectThe home side
home.playedintegerMatches counted
home.wonintegerMatches won
home.drawnintegerMatches drawn
home.lostintegerMatches lost
home.goals_forintegerGoals scored
home.goals_againstintegerGoals let in
home.clean_sheetsintegerMatches without letting one in
home.failed_to_scoreintegerMatches without scoring
home.goal_differenceintegerGoals scored less goals let in
home.pointsintegerThree for a win, one for a draw
home.win_pctnumberShare of the matches won, as a percentage
home.goals_per_gamenumberGoals scored a match, on average
home.conceded_per_gamenumberGoals let in a match, on average
awayobjectThe away side
away.playedintegerMatches counted
away.wonintegerMatches won
away.drawnintegerMatches drawn
away.lostintegerMatches lost
away.goals_forintegerGoals scored
away.goals_againstintegerGoals let in
away.clean_sheetsintegerMatches without letting one in
away.failed_to_scoreintegerMatches without scoring
away.goal_differenceintegerGoals scored less goals let in
away.pointsintegerThree for a win, one for a draw
away.win_pctintegerShare of the matches won, as a percentage
away.goals_per_gameintegerGoals scored a match, on average
away.conceded_per_gameintegerGoals let in a match, on average
matcheslistMatches counted
matches[].match_idstringOur id for the match, mt_ and 9 characters, the same in every answer and for good
matches[].kickoff_datestringThe day of kickoff in UTC, YYYY-MM-DD
matches[].competition_namestringThe competition as people write it
matches[].venuestringhome or away when the table counts only those; null for both
matches[].opponent_idstringOur id for the other club
matches[].opponent_namestringThe other club
matches[].goals_forintegerGoals scored
matches[].goals_againstintegerGoals let in
matches[].outcomestringwon, drawn or lost, for the club the answer is about

EXAMPLE ANSWER

200GET /v1/clubs/cl_4x2bczxvv/form?last=5, taken 21 Oct 2026, first rows shown
{
  "data": {
    "club_id": "cl_4x2bczxvv",
    "club_name": "Tottenham",
    "last": 5,
    "form": "WDLLD",
    "summary": {
      "played": 5,
      "won": 1,
      "drawn": 2,
      "lost": 2,
      "goals_for": 7,
      "goals_against": 8,
      "clean_sheets": 1,
      "failed_to_score": 1,
      "goal_difference": -1,
      "points": 5,
      "win_pct": 20,
      "goals_per_game": 1.4,
      "conceded_per_game": 1.6
    },
    "home": {
      "played": 3,
      "won": 1,
      "drawn": 1,
      "lost": 1,
      "goals_for": 5,
      "goals_against": 4,
      "clean_sheets": 1,
      "failed_to_score": 1,
      "goal_difference": 1,
      "points": 4,
      "win_pct": 33.3,
      "goals_per_game": 1.67,
      "conceded_per_game": 1.33
    },
    "away": {
      "played": 2,
      "won": 0,
      "drawn": 1,
      "lost": 1,
      "goals_for": 2,
      "goals_against": 4,
      "clean_sheets": 0,
      "failed_to_score": 0,
      "goal_difference": -2,
      "points": 1,
      "win_pct": 0,
      "goals_per_game": 1,
      "conceded_per_game": 2
    },
    "matches": [
      {
        "match_id": "mt_95kf4jw9a",
        "kickoff_date": "2026-10-19",
        "competition_name": "Premier League",
        "venue": "home",
        "opponent_id": "cl_frt0n2e46",
        "opponent_name": "Coventry",
        "goals_for": 3,
        "goals_against": 1,
        "outcome": "won"
      },
      {
        "match_id": "mt_9g56fvmwj",
        "kickoff_date": "2026-10-10",
        "competition_name": "Premier League",
        "venue": "away",
        "opponent_id": "cl_3pekhsfp3",
        "opponent_name": "Manchester United",
        "goals_for": 1,
        "goals_against": 1,
        "outcome": "drawn"
      },
      {
        "match_id": "mt_74kh014pt",
        "kickoff_date": "2026-09-19",
        "competition_name": "Premier League",
        "venue": "home",
        "opponent_id": "cl_7me91q2ds",
        "opponent_name": "Aston Villa",
        "goals_for": 2,
        "goals_against": 3,
        "outcome": "lost"
      }
    ]
  },
  "meta": {
    "request_id": "req_9b43d0b398031906"
  }
}

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.