Coverage
Get coverage for a competition
Returns season-by-season coverage for one competition: finished and total matches, a season status, and how many finished matches have each data type. The list includes every season we know of, so check status (not_loaded means no matches are loaded for that season). Seasons are not sorted by date. New data type keys may be added, so ignore keys you don’t recognise.
Example: GET /coverage/leagues/comp_3039 (Premier League)
GET
/
coverage
/
leagues
/
{competition_id}
Get coverage for a competition
curl --request GET \
--url https://api.thestatsapi.com/api/coverage/leagues/{competition_id} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.thestatsapi.com/api/coverage/leagues/{competition_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.thestatsapi.com/api/coverage/leagues/{competition_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": {
"id": "comp_3039",
"name": "Premier League",
"country": "England",
"country_code": "GB",
"total_seasons": 34,
"loaded_seasons": 13,
"total_finished_events": 4610,
"seasons": [
{
"id": "sn_6125938",
"name": "Premier League 25/26",
"year": "25/26",
"status": "complete",
"events": {
"finished": 380,
"total": 380
},
"data_types": {
"fixtures": {
"available": true,
"covered_events": 380
},
"team_stats": {
"available": true,
"covered_events": 380,
"coverage_pct": 100
},
"xg": {
"available": true,
"covered_events": 380,
"coverage_pct": 100
},
"odds": {
"available": true,
"covered_events": 380,
"coverage_pct": 100
},
"opening_odds": {
"available": false,
"covered_events": 0,
"coverage_pct": 0
},
"closing_odds": {
"available": true,
"covered_events": 380,
"coverage_pct": 100
},
"lineups": {
"available": true,
"covered_events": 380,
"coverage_pct": 100
},
"player_stats": {
"available": true,
"covered_events": 380,
"coverage_pct": 100
},
"standings": {
"available": true
}
}
}
]
}
}
How to check coverage before you build: Coverage.
Authorizations
Your API key, sent as Authorization: Bearer YOUR_API_KEY. Get one at https://www.thestatsapi.com/api-keys
Path Parameters
Competition ID, e.g. comp_3039 (Premier League). Find IDs with GET /football/competitions?search=
Response
The competition's coverage by season.
Show child attributes
Show child attributes
⌘I
Get coverage for a competition
curl --request GET \
--url https://api.thestatsapi.com/api/coverage/leagues/{competition_id} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.thestatsapi.com/api/coverage/leagues/{competition_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.thestatsapi.com/api/coverage/leagues/{competition_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": {
"id": "comp_3039",
"name": "Premier League",
"country": "England",
"country_code": "GB",
"total_seasons": 34,
"loaded_seasons": 13,
"total_finished_events": 4610,
"seasons": [
{
"id": "sn_6125938",
"name": "Premier League 25/26",
"year": "25/26",
"status": "complete",
"events": {
"finished": 380,
"total": 380
},
"data_types": {
"fixtures": {
"available": true,
"covered_events": 380
},
"team_stats": {
"available": true,
"covered_events": 380,
"coverage_pct": 100
},
"xg": {
"available": true,
"covered_events": 380,
"coverage_pct": 100
},
"odds": {
"available": true,
"covered_events": 380,
"coverage_pct": 100
},
"opening_odds": {
"available": false,
"covered_events": 0,
"coverage_pct": 0
},
"closing_odds": {
"available": true,
"covered_events": 380,
"coverage_pct": 100
},
"lineups": {
"available": true,
"covered_events": 380,
"coverage_pct": 100
},
"player_stats": {
"available": true,
"covered_events": 380,
"coverage_pct": 100
},
"standings": {
"available": true
}
}
}
]
}
}