SofaScore API endpoint
Returns a referee's record per competition: matches officiated, yellow cards, red cards, yellow-red cards and penalties awarded. The per-competition appearances add up to the career matches in sofascore-referee. An empty `competitions` list is valid for a referee with no recorded competitions.
/sofascore/referee-statisticsQuery parameters:
id: required. Numeric SofaScore referee id, e.g. 74264. Get it from the referee.id of sofascore-event or from a sofascore-search result of type referee.Notable response behavior:
appearances, yellow_cards, red_cards, yellow_red_cards and penalties for one competition. The appearances add up to the career games of sofascore-referee. Zero counts are real values.competitions list is a valid response for a referee with no recorded competitions.| Field | Filled in, of 15 checked | Values in the sample |
|---|---|---|
| competition | 15 | |
| appearances | 15 | 1 to 111, median 3 |
| yellow_cards | 15 | 3 to 457, median 18 |
| red_cards | 15 | 0 to 7, median 0 |
| yellow_red_cards | 15 | 0 to 7, median 0 |
| penalties | 15 | 0 to 36, median 1 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| id | string | Yes | Numeric SofaScore referee id | 74264 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/sofascore/referee-statistics?id=74264" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"referee_id": 74264,
"source_url": "https://api.sofascore.com/api/v1/referee/74264/statistics",
"fetched_at": "2026-10-07T00:00:00Z",
"count": 1,
"competitions": [
{
"competition": {
"id": 24,
"name": "League One",
"slug": "league-one",
"category": "England",
"sport": "football"
},
"appearances": 27,
"yellow_cards": 86,
"red_cards": 4,
"yellow_red_cards": 1,
"penalties": 11
}
]
}
}Request schema
No body schema
Response schema
#/definitions/sofascore.refereeStatisticsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | sofascore.RefereeStatisticsResponse | No | ||||
| data.competitions | array | No | ||||
| data.competitions[].appearances | integer | No | 27 | |||
| data.competitions[].competition | sofascore.UniqueTournamentBrief | No | UniqueTournamentBrief record, 6 fields: category, gender, id, name, slug, sport. Described under SofaScore team competitions API. | |||
| data.competitions[].penalties | integer | No | 11 | |||
| data.competitions[].red_cards | integer | No | 4 | |||
| data.competitions[].yellow_cards | integer | No | 86 | |||
| data.competitions[].yellow_red_cards | integer | No | 1 | |||
| data.count | integer | No | ||||
| data.fetched_at | string | No | ||||
| data.referee_id | integer | No | 74264 | |||
| data.source_url | string | No | ||||
| 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/referee-statistics?id=74264" \
-H "x-api-key: $CRAWLORA_API_KEY"