Building with AI? Give your coding tool the whole reference in one file: https://soccer-data.co/llms.txt
SOCCER DATA Docs
Sign in Get API key
// Competitions

League table

Returns the table for one season of a competition: one row per team, ordered by position. For tournaments with a group stage you get every group's table, or a single one with the group filter.

GET https://api.soccer-data.co/v1/competitions/{competition_id}/seasons/{season_id}/standings Live
  • Group-stage tournaments return all groups, sorted by group_label and then position.
  • Knockout-only cups, such as the FA Cup, have no table and return an empty list.
  • A season_id that belongs to a different competition returns 400 SEASON_COMPETITION_MISMATCH.
  • The table can move while matches are in play. On the Free plan it is normally at most 5 minutes old; on paid plans, at most 15 seconds. If a fresh answer can't be fetched, you may get an older copy marked X-Cache: STALE instead: see When an answer is stale.
Path parameters
competition_idstringrequired

The competition's id, like competition_…. Find one with the ID guide.

season_idstringrequired

The season's id, like season_…. Find one with the ID guide.

Query parameters
group string

Return just this group's table, case-insensitive. Only meaningful for competitions with a group stage; a plain league gives an empty list.

ABCDEFGHIJKL
Response fields
data[].team.idstring

The team's id.

data[].team.namestring

The team's name.

data[].positioninteger

Place in the league or group, starting at 1. Null when not set yet, for example in group rows before a tournament begins.

data[].matches_playedinteger

Matches played.

data[].winsinteger

Matches won.

data[].drawsinteger

Matches drawn.

data[].lossesinteger

Matches lost.

data[].goals_forinteger

Goals scored.

data[].goals_againstinteger

Goals conceded.

data[].goal_differenceinteger

goals_for minus goals_against.

data[].pointsinteger

Points earned.

data[].group_labelstring

The group letter, A to L, in group-stage tables. Null in an ordinary league table. You can pass it back as group.

curl "https://api.soccer-data.co/v1/competitions/competition_705uv6jm8myn/seasons/season_98l95mxugqs9/standings" \
  -H "X-Api-Key: $SOCCER_DATA_KEY"
200 · Example response
{
    "data": [
        {
            "team": {
                "id": "team_f0ibhxdw7hs5",
                "name": "Arsenal"
            },
            "position": 1,
            "matches_played": 38,
            "wins": 26,
            "draws": 7,
            "losses": 5,
            "goals_for": 71,
            "goals_against": 27,
            "goal_difference": 44,
            "points": 85,
            "group_label": null
        }
    ]
}
Get a free key to try it