Endpoint Playground
Returns one page of a football competition season's player statistics table, sortable by a statistic. `order` chooses the statistic to sort by, `direction` the sort direction (`desc` or `asc`), `accumulation` whether values are season totals, per-game averages or per-90-minute averages (`total`, `perGame`, `per90`), and `group` which statistic columns each row carries (`summary`, `attack`, `defence`, `passing`, `goalkeeper`). Page with `limit` (up to 100) and `offset`; `has_next_page` shows whether more rows follow. Optional filters narrow the table: `team` (team ids), `nationality` (SofaScore nationality codes), `position` (`G`, `D`, `M`, `F`), `min_appearances` and `min_minutes`; several filters combine (AND) and several values of one filter are alternatives (OR). The team ids and nationality codes of a season come from tournament-statistics-info. A filter that matches nobody returns an empty `players` list. Other sports return no rows (404). Get `id` from search and `season` from tournament-seasons.
14 Oct 2026: 40 players; 4 fields had a value in every checked item.
Sample value profiles: rank: 1 to 40, median 20.
curl 'https://api.crawlora.net/api/v1/sofascore/tournament-player-statistics?id=17&season=96668&order=rating&direction=desc&accumulation=total&group=summary' \
-H "x-api-key: $CRAWLORA_API_KEY"| Parameter | Type | Required | Prefilled value | Description |
|---|---|---|---|---|
| id | string | Yes | 17 | Numeric SofaScore unique-tournament (competition) id of a football competition |
| season | string | Yes | 96668 | Numeric SofaScore season id |
| order | string | No | rating | Statistic to sort by. Defaults to rating |
| direction | string | No | desc | Sort direction. Defaults to desc |
| accumulation | string | No | total | How statistics are accumulated. Defaults to total |
| group | string | No | summary | Statistic columns returned. Defaults to summary |
| limit | integer | No | Rows per page, 1 to 100. Defaults to 20 | |
| offset | integer | No | Rows to skip. Defaults to 0 | |
| team | array | No | Team ids to keep, comma separated, up to 20 (ids from tournament-statistics-info or tournament-teams) | |
| nationality | array | No | Nationality codes to keep, comma separated, up to 20 (codes from tournament-statistics-info) | |
| position | array | No | Position codes to keep, comma separated | |
| min_appearances | integer | No | Keep players with at least this many appearances, 0 to 1000. Omit for no minimum | |
| min_minutes | integer | No | Keep players with at least this many minutes played, 0 to 100000. Omit for no minimum |
{
"code": 200,
"msg": "OK",
"data": {
"tournament_id": 17,
"season_id": 96668,
"order": "rating",
"direction": "desc",
"accumulation": "total",
"group": "attack",
"limit": 2,
"offset": 0,
"page": 1,
"total_pages": 211,
"has_next_page": true,
"count": 1,
"source_url": "https://api.sofascore.com/api/v1/unique-tournament/17/season/96668/statistics?accumulation=total&group=attack&limit=2&order=-rating",
"fetched_at": "2026-10-07T14:00:00Z",
"players": [
{
"rank": 1,
"player": {
"id": 1142315,
"name": "Jack Hinshelwood",
"slug": "jack-hinshelwood"
},
"team": {
"id": 30,
"name": "Brighton & Hove Albion",
"slug": "brighton-and-hove-albion"
},
"statistics": {
"goals": 2,
"expectedGoals": 1.41,
"bigChancesMissed": 0,
"successfulDribbles": 1,
"totalShots": 3,
"goalConversionPercentage": 66.67,
"rating": 9
}
}
]
}
}The sample response, schema and code snippets below work without an account. Sending a live request needs an API key.