SofaScore API endpoint
Returns the season list for a competition. Use a returned season id with the standings and round-events endpoints.
/sofascore/tournament-seasonsQuery parameters:
id: required. Numeric SofaScore unique-tournament (competition) id, e.g. 17 for the Premier League. Find one via the search endpoint (type: "uniqueTournament" results).Notable response behavior:
| Field | Filled in, of 35 checked | Values in the sample |
|---|---|---|
| id | 35 | |
| name | 35 | “Premier League 26/27” and 34 other values |
| year | 35 | “26/27” and 34 other values |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| id | string | Yes | Numeric SofaScore unique-tournament (competition) id | 17 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/sofascore/tournament-seasons?id=17" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"tournament_id": 17,
"count": 2,
"source_url": "https://api.sofascore.com/api/v1/unique-tournament/17/seasons",
"fetched_at": "2026-07-08T16:45:00Z",
"seasons": [
{
"id": 96668,
"name": "Premier League 26/27",
"year": "26/27"
},
{
"id": 76986,
"name": "Premier League 25/26",
"year": "25/26"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/sofascore.tournamentSeasonsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | sofascore.TournamentSeasonsResponse | No | ||||
| data.count | integer | No | Number of seasons returned. | |||
| data.fetched_at | string | No | Time the data was fetched, in UTC (RFC 3339). | |||
| data.seasons | array | No | Seasons SofaScore has for the competition. | |||
| data.seasons[].id | integer | No | SofaScore season id. Pass it to the standings and round endpoints. | |||
| data.seasons[].name | string | No | Season name. | |||
| data.seasons[].year | string | No | Season label, for example 26/27. | |||
| data.source_url | string | No | SofaScore URL the data was read from. | |||
| data.tournament_id | integer | No | Id of the competition (the unique tournament id). | |||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/sofascore/tournament-seasons?id=17" \
-H "x-api-key: $CRAWLORA_API_KEY"