SofaScore API endpoint
Returns a player's rating in every match of one competition season, newest first, with the opponent, home or away and the match. The `type` enum accepts `overall`, `home`, `away`, `regular_season` and `playoffs` and defaults to `overall`; football seasons answer `overall` and NBA seasons answer `regular_season` and `playoffs` (the types a season offers are listed by player-statistics-seasons). Returns 404 when SofaScore has no ratings of that type for the combination.
/sofascore/player-ratingsQuery parameters:
id: required. Numeric SofaScore player id, e.g. 839956. Get it from sofascore-search or sofascore-team-players.tournament_id: required. Numeric SofaScore unique-tournament (competition) id from sofascore-player-statistics-seasons, e.g. 17.season: required. Numeric SofaScore season id from sofascore-player-statistics-seasons, e.g. 76986.type: optional enum. Allowed values: overall, home, away, regular_season, playoffs. Defaults to overall.Notable response behavior:
overall (home and away returned 404 for the player checked); NBA seasons answer regular_season and playoffs. sofascore-player-statistics-seasons lists the types of each season.rating, whether the player's team was is_home, the opponent and the match summary. A rating SofaScore did not publish is omitted.type returns 400. Returns 404 when SofaScore has no ratings of that type for the player, competition and season.| Field | Filled in, of 35 checked | Values in the sample |
|---|---|---|
| event_id | 35 | |
| start_timestamp | 35 | 2025-08-16 to 2026-05-19 |
| start_time | 35 | 2025-08-16 to 2026-05-19 |
| rating | 35 | 6 to 9.4, median 7 |
| is_home | 35 | true in 17 of 35 |
| opponent | 35 | |
| event | 35 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| id | string | Yes | Numeric SofaScore player id | 839956 | |
| tournament_id | string | Yes | Numeric SofaScore unique-tournament (competition) id from player-statistics-seasons | 17 | |
| season | string | Yes | Numeric SofaScore season id from player-statistics-seasons | 76986 | |
| type | string | No | Statistics view Allowed values: overall, home, away, regular_season, playoffs. | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/sofascore/player-ratings?id=839956&tournament_id=17&season=76986&type=overall" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"player_id": 839956,
"tournament_id": 17,
"season": 76986,
"type": "overall",
"source_url": "https://api.sofascore.com/api/v1/player/839956/unique-tournament/17/season/76986/ratings/overall",
"fetched_at": "2026-10-07T00:00:00Z",
"count": 1,
"ratings": [
{
"event_id": 14023936,
"start_timestamp": 1779215400,
"start_time": "2026-05-19T18:30:00Z",
"rating": 7,
"is_home": false,
"opponent": {
"id": 60,
"name": "Bournemouth",
"short_name": "Bournemouth",
"slug": "bournemouth"
},
"event": {
"id": 16363867,
"slug": "sunderland-manchester-city",
"start_timestamp": 1789909200,
"start_time": "2026-09-20T13:00:00Z",
"status": {
"code": 100,
"description": "Ended",
"type": "finished"
},
"winner_code": 1,
"tournament": {
"id": 1,
"name": "Premier League",
"slug": "premier-league",
"category": "England",
"unique_tournament_id": 17,
"unique_tournament_name": "Premier League"
},
"home_team": {
"id": 17,
"name": "Manchester City",
"short_name": "Man City",
"slug": "manchester-city"
},
"away_team": {
"id": 41,
"name": "Sunderland",
"short_name": "Sunderland",
"slug": "sunderland"
},
"home_score": {
"current": 5,
"period1": 3,
"period2": 2
},
"away_score": {
"current": 3,
"period1": 2,
"period2": 1
}
}
}
]
}
}Request schema
No body schema
Response schema
#/definitions/sofascore.playerRatingsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | sofascore.PlayerRatingsResponse | No | ||||
| data.count | integer | No | ||||
| data.fetched_at | string | No | ||||
| data.player_id | integer | No | 839956 | |||
| data.ratings | array | No | ||||
| data.ratings[].event | sofascore.EventSummary | No | EventSummary record, 38 fields: away_score, away_team, home_score, home_team, id, slug, start_time, start_timestamp, status, tournament, winner_code. Described under SofaScore live events API. | |||
| data.ratings[].event_id | integer | No | 14023936 | |||
| data.ratings[].is_home | boolean | No | ||||
| data.ratings[].opponent | sofascore.TeamRef | No | TeamRef record, 6 fields: country, id, name, national, short_name, slug. Described under SofaScore venue API. | |||
| data.ratings[].rating | number | No | 7.4 | |||
| data.ratings[].start_time | string | No | 2026-05-20T19:00:00Z | |||
| data.ratings[].start_timestamp | integer | No | ||||
| data.season | integer | No | 76986 | |||
| data.source_url | string | No | ||||
| data.tournament_id | integer | No | 17 | |||
| data.type | string | No | overall | |||
| 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/player-ratings?id=839956&tournament_id=17&season=76986&type=overall" \
-H "x-api-key: $CRAWLORA_API_KEY"