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:
These sports have isStage: false in the API response.
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",
"isStage": false
},
{
"id": "sr:sport:2",
"name": "Basketball",
"isStage": false
},
{
"id": "sr:sport:3",
"name": "Baseball",
"isStage": false
},
{
"id": "sr:sport:4",
"name": "Ice Hockey",
"isStage": false
},
{
"id": "sr:sport:5",
"name": "Tennis",
"isStage": false
},
{
"id": "sr:sport:40",
"name": "Formula 1",
"isStage": true
},
{
"id": "sr:sport:43",
"name": "Alpine Skiing",
"isStage": true
},
{
"id": "sr:sport:48",
"name": "Ski Jumping",
"isStage": true
},
{
"id": "sr:sport:67",
"name": "MotoGP",
"isStage": true
}
]
}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": "sr:tournament:7",
"name": "UEFA Champions League",
"category": {
"id": "sr:category:393",
"name": "International Clubs"
},
"season": {
"id": "sr:season:131129",
"name": "UEFA Champions League 25/26",
"startDate": "2025-07-08",
"endDate": "2026-05-31",
"year": "25/26"
}
},
{
"id": "sr:tournament:8",
"name": "LaLiga",
"category": {
"id": "sr:category:32",
"name": "Spain",
"countryCode": "SPA"
},
"season": {
"id": "sr:season:130805",
"name": "LaLiga 25/26",
"startDate": "2025-08-17",
"endDate": "2026-05-24",
"year": "25/26"
}
},
{
"id": "sr:tournament:17",
"name": "Premier League",
"category": {
"id": "sr:category:1",
"name": "England",
"countryCode": "ENG"
},
"season": {
"id": "sr:season:130281",
"name": "Premier League 25/26",
"startDate": "2025-08-15",
"endDate": "2026-05-24",
"year": "25/26"
}
},
...
]
}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
{
"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
}
},
...
]
},
...
]
}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 endpointThis endpoint is particularly useful for stage sports like Formula 1, where you need the full event hierarchy.
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": [
{
"category": {
"id": "sr:category:36",
"name": "Formula 1"
},
"stages": [
{
"id": "sr:stage:1189125",
"name": "Australian Grand Prix 2025",
"type": "event",
"startTime": "2025-03-14 01:30:00",
"stages": [
{
"id": "sr:stage:1189127",
"name": "Practice 1",
"type": "practice",
"startTime": "2025-03-14 01:30:00"
},
{
"id": "sr:stage:1189129",
"name": "Practice 2",
"type": "practice",
"startTime": "2025-03-14 05:00:00"
},
{
"id": "sr:stage:1189131",
"name": "Practice 3",
"type": "practice",
"startTime": "2025-03-15 01:30:00"
},
{
"id": "sr:stage:1189133",
"name": "Qualification",
"type": "qualifying",
"startTime": "2025-03-15 05:00:00"
},
{
"id": "sr:stage:1189139",
"name": "Race",
"type": "race",
"startTime": "2025-03-16 04:00:00"
}
]
}
]
},
...
]
}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": [
{
"category": {
"id": "sr:category:36",
"name": "Formula 1"
},
"stages": [
{
"id": "sr:stage:1189125",
"name": "Australian Grand Prix 2025",
"type": "event",
"startTime": "2025-03-14 01:30:00",
"stages": [
{
"id": "sr:stage:1189127",
"name": "Practice 1",
"type": "practice",
"startTime": "2025-03-14 01:30:00"
},
{
"id": "sr:stage:1189129",
"name": "Practice 2",
"type": "practice",
"startTime": "2025-03-14 05:00:00"
},
{
"id": "sr:stage:1189131",
"name": "Practice 3",
"type": "practice",
"startTime": "2025-03-15 01:30:00"
},
{
"id": "sr:stage:1189133",
"name": "Qualification",
"type": "qualifying",
"startTime": "2025-03-15 05:00:00"
},
{
"id": "sr:stage:1189139",
"name": "Race",
"type": "race",
"startTime": "2025-03-16 04:00:00"
}
]
}
]
}
]
}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",
"name": "Formula 1"
},
"stages": [
{
"id": "sr:stage:1189125",
"name": "Australian Grand Prix 2025",
"type": "event",
"startTime": "2025-03-14 01:30:00",
"stages": [
{
"id": "sr:stage:1189127",
"name": "Practice 1",
"type": "practice",
"startTime": "2025-03-14 01:30:00"
},
{
"id": "sr:stage:1189129",
"name": "Practice 2",
"type": "practice",
"startTime": "2025-03-14 05:00:00"
}
]
}
]
}
]
}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"
},
{
"sportradarId": "58244933",
"externalId": "1024132454",
"lastUpdated": "2025-07-06 21:25:59"
},
{
"sportradarId": "58245303",
"externalId": "1024185936",
"lastUpdated": "2025-07-06 21:25:59"
},
{
"sportradarId": "58315137",
"externalId": "1022949212",
"lastUpdated": "2025-07-02 00:07:44"
}
]
}