SofaScore API endpoint
Returns where a match is broadcast. `available_countries` lists every country that has a broadcast with its channel ids; those country codes are the valid values for `country`. With `country` set (a two-letter ISO 3166-1 alpha-2 code such as `GB`, any case) the response also resolves that country's `channels` to names, using one extra upstream call. A well-formed country code the match is not broadcast in returns 404, and so does a match with no broadcast information.
/sofascore/event-tv-channelsReturns where a match is broadcast from SofaScore.
Query parameters:
id: required. Numeric SofaScore event (match) id, e.g. 16363867.country: optional. Two-letter ISO 3166-1 alpha-2 country code, e.g. GB (any case). Omit it to list only the broadcasting countries. The valid values are the country codes in available_countries of a call without country.Notable response behavior:
available_countries is always returned, sorted by country code, with each country's channel_ids.country, channels resolves that country's ids to names with one extra upstream call. A channel id the country's catalogue does not list keeps its id and has no name. SofaScore's affiliate links are not returned.400. A well-formed code the match is not broadcast in returns 404, and so does a match with no broadcast information.| Field | Filled in, of 136 checked |
|---|---|
| country | 136 |
| channel_ids | 136 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| id | string | Yes | Numeric SofaScore event (match) id | 16363867 | |
| country | string | No | Two-letter ISO 3166-1 alpha-2 country code. Omit to list the broadcasting countries only | GB | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/sofascore/event-tv-channels?id=16363867&country=us" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"event_id": 16363867,
"country": "GB",
"source_url": "https://api.sofascore.com/api/v1/tv/event/16363867/country-channels",
"fetched_at": "2026-07-08T00:00:00Z",
"available_countries": [
{
"country": "BR",
"channel_ids": [
7209
]
},
{
"country": "DE",
"channel_ids": [
4276,
7639,
712
]
},
{
"country": "ES",
"channel_ids": [
2453,
6730
]
}
],
"channels": [
{
"id": 3887,
"name": "Sky Go UK"
},
{
"id": 1057,
"name": "Sky Sports Premier League"
},
{
"id": 495,
"name": "NOW TV UK"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/sofascore.eventTVChannelsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | sofascore.EventTVChannelsResponse | No | ||||
| data.available_countries | array | No | ||||
| data.available_countries[].channel_ids | array | No | ||||
| data.available_countries[].country | string | No | GB | |||
| data.channels | array | No | ||||
| data.channels[].id | integer | No | 1057 | |||
| data.channels[].name | string | No | Sky Sports Premier League | |||
| data.country | string | No | GB | |||
| data.event_id | integer | No | 16363867 | |||
| data.fetched_at | string | No | ||||
| 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/event-tv-channels?id=16363867&country=us" \
-H "x-api-key: $CRAWLORA_API_KEY"