BET Utility API
The BET Utility API provides Sportradar's sport entity information, including sports, tournaments, seasons, and fixtures. This data can be used with BET products—for example, initializing widgets or creating direct links to hosted solutions. It can also be used for mapping Sportradar and client sport entity IDs, such as sport, tournament, season, and match IDs.
The BET Utility API is part of Sportradar's Sports API. You can find general information about the Sports API here: Getting Started – Sportradar Developer Portal This page provides details on how to make requests, handle authentication, use pagination, create an account, and request trial access.
Currently, two APIs are available: Coverage API and Mapping API.
Coverage API
The Coverage API provides sport entity data, including sport, competition, season, and fixture information. This data can be used for BET product initialization, generating hosted product links, or implementing entity ID mappings on the client side. It serves as a replacement for Sportradar's MDP matchTree API.
Endpoints
Sports
https://api.sportradar.com/bet-coverage/v1/en/sports.json
Returns a list of sports and sport ids. Sport ids can be used in other requests which require sport id as parameter. Sportradar uses two different types of sport hierarchy:
classic sports, which uses competition/season/fixture structure. Most of the sports fits in this hierarchy, for example soccer, tennis, basketball, ice hockey, handball...
stage sports, which need more flexible structure and use stages that are linked in parent/children hierarchy. For example racing sports: Formula 1, cycling, winter sports and other.
Stage sports have stage
flag set to true and use different endpoints as regular sports.
Example:
https://api.sportradar.com/bet-coverage/v1/en/sports.json?api_key={apiKey}
Response:
{
"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
}
]
}
Tournaments
https://api.sportradar.com/bet-coverage/v1/en/sports/{sport id}/tournaments.json
Returns list of tournaments (competitions) for specified sport id. As sport id parameter use one of sport ids retrieved from 'Sports' endpoint.
Example:
https://api.sportradar.com/bet-coverage/v1/en/sports/sr:sport:1/tournaments.json?api_key={apiKey}
Response:
{
"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"
}
},
...
]
}
Daily Schedule
https://api.sportradar.com/bet-coverage/v1/en/sports/{sport id}/schedules/{date}/schedule.json
Returns daily fixtures grouped by tournaments for specified sport id. As sport id parameter use one of sport ids retrieved from 'Sports' endpoint.
Example:
https://api.sportradar.com/bet-coverage/v1/en/sports/sr:sport:1/schedules/2025-04-12/schedule.json?api_key={apiKey}
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
}
},
...
]
},
...
]
}
Tournament Schedule
https://api.sportradar.com/bet-coverage/v1/en/tournaments/{tournament id}/schedule.json?api_key={apiKey}
Returns stages for specified sport id. As sport id parameter use one of stage sport ids retrieved from 'Sports' endpoint.
Example:
https://api.sportradar.com/bet-coverage/v1/en/sports/sr:sport:40/stages.json?api_key={apiKey}
Response:
{
"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"
}
]
}
]
},
...
]
}
Sport Stages
https://api.sportradar.com/bet-coverage/v1/en/sports/{sport id}/stages.json
Returns stages for specified sport id. As sport id parameter use one of stage sport ids retrieved from 'Sports' endpoint.
Example:
https://api.sportradar.com/bet-coverage/v1/en/sports/sr:sport:40/stages.json?api_key={apiKey}
Response:
{
"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"
}
]
}
]
}
]
}
Stage Daily Schedule
https://api.sportradar.com/bet-coverage/v1/en/sports/{sport id}/schedules/{date}/stage_schedule.json
Returns daily stage events for specified sport id. As sport id parameter use one of stage sport ids retrieved from 'Sports' endpoint.
Example:
https://api.sportradar.com/bet-coverage/v1/en/sports/sr:sport:40/schedules/2025-03-14/stage_schedule.json?api_key={apiKey}
Response:
{
"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"
}
]
}
]
}
]
}
Mapping API
The Mapping API is a match ID mapping service that provides mappings between Sportradar's match IDs and client match IDs. Client fixtures are ingested into Sportradar's mapping system via crawlers. The system compares them with Sportradar's fixtures and generates mappings, which are then made available through the Mapping API. It is a modernized replacement for our legacy SourceJoin service.
Endpoint
Match Id Mappings
https://api.sportradar.com/bet-mapping/v1/en/match_mappings/{client's mapping id}/entities.json
Returns a list of Sportradar - client match id mappings.
This endpoint response returns max. 100 entities at once and is paginated. The pagination information is available in response headers as X-Offset, X-Result and X-Max-Results properties. Request accepts additional `start` url parameter.
Example:
https://api.sportradar.com/bet-mapping/v1/en/match_mappings/{client's mapping id}/entities.json?api_key={apiKey}&start=100
Response:
{
"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"
}
]
}
Last updated
Was this helpful?