// Competitions
Seasons of a competition
Lists every season of a competition, newest first. Use it to find the season_id of a past season for standings, matches or stats.
GET
https://api.soccer-data.co/v1/competitions/{competition_id}/seasons
- How far back the seasons go differs from one competition to the next. The coverage endpoints show what data each season has.
- The season marked is_current has the same id as current_season_id on the competition.
Path parameters
competition_idstringrequired
The competition's id, like competition_…. Find one with the ID guide.
Response fields
data[].idstring
The season's id. Pass it as season_id to other endpoints.
data[].namestring
Display name, such as Premier League 25/26.
data[].yearstring
Short label for the season: one year (2022) or a split season (25/26).
data[].start_yearinteger
The calendar year the season starts in, for example 2025 for 25/26. Null when it can't be worked out.
data[].end_yearinteger
The calendar year the season ends in, for example 2026 for 25/26. Can be null.
data[].is_currentboolean
True only for the latest season.
curl "https://api.soccer-data.co/v1/competitions/competition_705uv6jm8myn/seasons" \ -H "X-Api-Key: $SOCCER_DATA_KEY"
const res = await fetch("https://api.soccer-data.co/v1/competitions/competition_705uv6jm8myn/seasons", {
headers: { "X-Api-Key": process.env.SOCCER_DATA_KEY },
});
const { data } = await res.json();
import os, requests
res = requests.get(
"https://api.soccer-data.co/v1/competitions/competition_705uv6jm8myn/seasons",
headers={"X-Api-Key": os.environ["SOCCER_DATA_KEY"]},
)
data = res.json()["data"]
$data = Http::withHeaders(['X-Api-Key' => env('SOCCER_DATA_KEY')])
->get('https://api.soccer-data.co/v1/competitions/competition_705uv6jm8myn/seasons')
->json('data');
200 · Example response
{
"data": [
{
"id": "season_hr1ie7yrsdmt",
"name": "Premier League 26/27",
"year": "26/27",
"start_year": 2026,
"end_year": 2027,
"is_current": true
},
{
"id": "season_98l95mxugqs9",
"name": "Premier League 25/26",
"year": "25/26",
"start_year": 2025,
"end_year": 2026,
"is_current": false
}
]
}
### GET /competitions/{competition_id}/seasons
Seasons of a competition
Lists every season of a competition, newest first. Use it to find the season_id of a past season for standings, matches or stats.
- How far back the seasons go differs from one competition to the next. The coverage endpoints show what data each season has.
- The season marked is_current has the same id as current_season_id on the competition.
Response fields:
- `data[].id` (string): The season's id. Pass it as season_id to other endpoints.
- `data[].name` (string): Display name, such as Premier League 25/26.
- `data[].year` (string): Short label for the season: one year (2022) or a split season (25/26).
- `data[].start_year` (integer): The calendar year the season starts in, for example 2025 for 25/26. Null when it can't be worked out.
- `data[].end_year` (integer): The calendar year the season ends in, for example 2026 for 25/26. Can be null.
- `data[].is_current` (boolean): True only for the latest season.
Example: curl "https://api.soccer-data.co/v1/competitions/competition_705uv6jm8myn/seasons" -H "X-Api-Key: $SOCCER_DATA_KEY"