The BET Utility API provides comprehensive sport entity information from Sportradar, including sports, tournaments, seasons, and fixtures. Use this data to:
The BET Utility API is part of Sportradar's Sports API. For general information about authentication, pagination, and getting started, visit the Sportradar Developer Portal.
Two APIs are currently available:
The Coverage API provides sport entity data, including sport, competition, season, and fixture information. Use this data for:
This API replaces Sportradar's legacy MDP matchTree API.
Sportradar uses two different sport hierarchy structures:
Competition → Season → Fixture
Most sports use this traditional hierarchy, including:
GET https://api.sportradar.com/bet-coverage/v1/en/sports.jsonReturns a list of all available sports with their IDs and hierarchy types. Sport IDs are required for other endpoint requests.
View Request Example
https://api.sportradar.com/bet-coverage/v1/en/sports.json?api_key={apiKey}View Response Example
{
"generated_at": "2025-07-07T09:19:33+00:00",
"sports": [
{
"id": "sr:sport:1",
"name": "Soccer",
GET https://api.sportradar.com/bet-coverage/v1/en/sports/{sport_id}/tournaments.jsonReturns all tournaments (competitions) for a specified sport ID.
Parameters:
sport_id - Sport ID from the Sports endpoint (e.g., sr:sport:1)View Request Example
https://api.sportradar.com/bet-coverage/v1/en/sports/sr:sport:1/tournaments.json?api_key={apiKey}View Response Example
{
"generated_at": "2025-07-07T09:24:53+00:00",
"sport_tournaments": [
{
"id"
GET https://api.sportradar.com/bet-coverage/v1/en/sports/{sport_id}/schedules/{date}/schedule.jsonReturns daily fixtures grouped by tournaments for a specific date and sport.
Parameters:
sport_id - Sport ID from the Sports endpointdate - Date in YYYY-MM-DD formatView Request Example
https://api.sportradar.com/bet-coverage/v1/en/sports/sr:sport:1/schedules/2025-04-12/schedule.json?api_key={apiKey}View Response Example
GET https://api.sportradar.com/bet-coverage/v1/en/tournaments/{tournament_id}/schedule.jsonReturns the complete schedule for a specific tournament.
Parameters:
tournament_id - Tournament ID from the Tournaments endpointView Request Example
https://api.sportradar.com/bet-coverage/v1/en/sports/sr:sport:40/stages.json?api_key={apiKey}View Response Example
{
"generated_at": "2025-07-07T10:29:47+00:00",
"stages"
GET https://api.sportradar.com/bet-coverage/v1/en/sports/{sport_id}/stages.jsonReturns all stages for a stage-based sport (sports with isStage: true).
Parameters:
sport_id - Stage sport ID from the Sports endpoint (e.g., sr:sport:40 for Formula 1)This endpoint only works for stage sports (Formula 1, MotoGP, Alpine Skiing, etc.). Use the Daily Schedule endpoint for classic sports.
View Request Example
https://api.sportradar.com/bet-coverage/v1/en/sports/sr:sport:40/stages.json?api_key={apiKey}View Response Example
{
"generated_at": "2025-07-07T10:29:47+00:00",
"stages":
GET https://api.sportradar.com/bet-coverage/v1/en/sports/{sport_id}/schedules/{date}/stage_schedule.jsonReturns daily stage events for a stage-based sport on a specific date.
Parameters:
sport_id - Stage sport ID from the Sports endpointdate - Date in YYYY-MM-DD formatView Request Example
https://api.sportradar.com/bet-coverage/v1/en/sports/sr:sport:40/schedules/2025-03-14/stage_schedule.json?api_key={apiKey}View Response Example
{
"generated_at": "2025-07-07T10:51:21+00:00",
"stages": [
{
"category": {
"id": "sr:category:36",
"
The Mapping API provides match ID mappings between Sportradar's match IDs and your client's match IDs.
This API replaces Sportradar's legacy SourceJoin service with improved performance and reliability.
GET https://api.sportradar.com/bet-mapping/v1/en/match_mappings/{client_mapping_id}/entities.jsonReturns Sportradar-to-client match ID mappings.
Parameters:
client_mapping_id - Your client mapping identifierstart (optional) - Offset for pagination (default: 0)This endpoint returns a maximum of 100 entities per request. Pagination information is provided in response headers:
X-Offset - Current offsetX-Result - Number of results in current responseX-Max-Results - Total available resultsView Request Example
https://api.sportradar.com/bet-mapping/v1/en/match_mappings/{client_mapping_id}/entities.json?api_key={apiKey}&start=100View Response Example
{
"generated_at": "2025-07-07T11:19:02+00:00",
"match_mappings": [
{
"sportradarId": "58244491",
"externalId": "1024185935",
"lastUpdated": "2025-07-07 01:41:00"
},
These sports have isStage: false in the API response.
{
"generated_at": "2025-07-07T09:56:35+00:00",
"sport_schedule_tournaments": [
{
"id": "sr:tournament:23",
"name": "Serie A",
"category": {
"id": "sr:category:31",
"name": "Italy",
"countryCode": "ITA"
},
"season": {
"id": "sr:season:130971",
"name": "Serie A 25/26",
"startDate": "2025-08-23",
"endDate": "2026-05-25",
"year": "25/26"
},
"matches": [
{
"id": "sr:match:51273445",
"startTime": "2025-04-12 13:00:00",
"homeTeamId": "sr:competitor:2688",
"homeTeamName": "VENEZIA FC",
"betradarHomeTeamId": "sr:simple_team:32869",
"awayTeamId": "sr:competitor:2729",
"awayTeamName": "AC MONZA",
"betradarAwayTeamId": "sr:simple_team:16183030",
"simpleTournamentId": "sr:simple_tournament:33",
"coverage": {
"lmt": 4,
"insights": true
}
},
...
]
},
{
"id": "sr:tournament:35",
"name": "Bundesliga",
"category": {
"id": "sr:category:30",
"name": "Germany",
"countryCode": "GER"
},
"season": {
"id": "sr:season:130571",
"name": "Bundesliga 25/26",
"startDate": "2025-08-22",
"endDate": "2026-05-26",
"year": "25/26"
},
"matches": [
{
"id": "sr:match:51269515",
"startTime": "2025-04-12 13:30:00",
"homeTeamId": "sr:competitor:2681",
"homeTeamName": "BAYER LEVERKUSEN",
"betradarHomeTeamId": "sr:simple_team:5089",
"awayTeamId": "sr:competitor:2547",
"awayTeamName": "UNION BERLIN",
"betradarAwayTeamId": "sr:simple_team:7114236",
"simpleTournamentId": "sr:simple_tournament:42",
"coverage": {
"lmt": 4,
"insights": true
}
},
...
]
},
...
]
}This endpoint is particularly useful for stage sports like Formula 1, where you need the full event hierarchy.