The free key reads yesterday again: our one-month trial of today on the free key has finished. Read the changelog

Positions at every kickoff

A
GET /v1/standings/{league}/{season}/positions

Every club position at every kickoff

Every club's league position before every match it played. This is the same computation that fills home_league_position on a match row.

Plan

This endpoint needs Archive. Calling it on a lower plan returns a 403 naming the plan it needs and a link to pricing, never a bare refusal.

Parameters

league_id string path required
The competition id. e.g. lg_24T9Z0G
season integer path required
Season by starting year. e.g. 2024

Returns

data.league_id string
Our id for the competition.
data.season_start_year integer
The year the season starts in: 2026 for 2026/27.
data.as_of string
As of.
data.table list
Table.
data.table[].position integer
Its place in the list as asked: within the country, competition, club or role you narrowed it to.
data.table[].team_id string
Our id for the club.
data.table[].team_name string
The club's name.
data.table[].played integer
Played.
data.table[].won integer
Won.
data.table[].drawn integer
Drawn.
data.table[].lost integer
Lost.
data.table[].goals_for integer
Goals scored.
data.table[].goals_against integer
Goals conceded.
data.table[].goal_difference integer
Goal difference.
data.table[].points integer
Points.
meta.data_as_of string
When the data behind this answer was last brought up to date.
meta.request_id string
This request's id, to quote to support.
meta.note string
Note.

Request

curl "https://api.footballsoccerapi.com/v1/standings/lg_24T9Z0G/2024/positions" \
  -H "X-API-Key: $FSAPI_KEY"

Example response

A real row from the archive, fetched when this page rendered. Run it against your own key below.

200 OK application/json
{
    "data": {
        "league_id": "lg_24T9Z0G",
        "season_start_year": 2024,
        "as_of": "2024-10-19",
        "table": [
            {
                "position": 1,
                "team_id": "tm_3C40GEH",
                "team_name": "Liverpool",
                "played": 8,
                "won": 6,
                "drawn": 1,
                "lost": 1,
                "goals_for": 17,
                "goals_against": 5,
                "goal_difference": 12,
                "points": 19
            },
            {
                "position": 2,
                "team_id": "tm_3WJM4RA",
                "team_name": "Man City",
                "played": 8,
                "won": 5,
                "drawn": 2,
                "lost": 1,
                "goals_for": 17,
                "goals_against": 9,
                "goal_difference": 8,
                "points": 17
            }
        ]
    },
    "meta": {
        "data_as_of": "2026-10-29T04:32:57Z",
        "request_id": "01J9QW3C7M4KX2VB",
        "note": "Computed from match rows, not stored."
    }
}

Run it live

Paste your key and fire the real request. The key is kept in this browser only and never sent anywhere but the API.

Get a key
GET