Endpoint Playground
Returns a competition season's top players for every statistic category SofaScore ranks (for football about 30 categories such as rating, goals, assists, expected goals, tackles and saves; for basketball points, rebounds, assists and more), each with the ranked players, their team and the value. The category set depends on the sport and competition, so the response lists every category it holds. The `type` enum accepts `overall`, `regular_season` and `playoffs`: football competitions publish `overall`, the NBA publishes `regular_season` and `playoffs`, and a type the competition does not publish answers 404. Optional `limit` caps the rows per category (up to 50). Get `id` from search and `season` from tournament-seasons.
14 Oct 2026: 32 categories; 3 fields had a value in every checked item.
Sample value profiles: count: 9 to 40, median 40; players: median 40 entries.
curl 'https://api.crawlora.net/api/v1/sofascore/tournament-top-players?id=17&season=96668&type=overall' \
-H "x-api-key: $CRAWLORA_API_KEY"| Parameter | Type | Required | Prefilled value | Description |
|---|---|---|---|---|
| id | string | Yes | 17 | Numeric SofaScore unique-tournament (competition) id |
| season | string | Yes | 96668 | Numeric SofaScore season id |
| type | string | No | overall | Statistics scope. Defaults to overall |
| limit | integer | No | Rows per category, 1 to 50. Omit to return every row |
{
"code": 200,
"msg": "OK",
"data": {
"tournament_id": 17,
"season_id": 96668,
"type": "overall",
"sport": "football",
"category_count": 32,
"source_url": "https://api.sofascore.com/api/v1/unique-tournament/17/season/96668/top-players/overall",
"fetched_at": "2026-10-07T14:00:00Z",
"categories": [
{
"key": "goals",
"count": 1,
"players": [
{
"rank": 1,
"value": 5,
"appearances": 5,
"played_enough": true,
"player": {
"id": 839956,
"name": "Erling Haaland",
"short_name": "E. Haaland",
"slug": "erling-haaland",
"position": "F"
},
"team": {
"id": 17,
"name": "Manchester City",
"slug": "manchester-city"
}
}
]
}
]
}
}The sample response, schema and code snippets below work without an account. Sending a live request needs an API key.