---
title: "BET Utility API"
canonical_url: "https://apidocs.sportradar.com/resources/widgets/docs/tutorials/BET-Utility-API"
markdown_url: "https://apidocs.sportradar.com/resources/widgets/docs/tutorials/BET-Utility-API.md"
last_updated: "2026-10-08T07:31:12Z"
---

# BET Utility API

The **BET Utility API** provides comprehensive sport entity information from Sportradar, including sports, tournaments, seasons, and fixtures. Use this data to:

- Initialize BET widgets with accurate entity IDs
- Create direct links to hosted solutions
- Map between Sportradar and client sport entity IDs
- Build custom sport data integrations


> **Info**
>
> 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](https://developer.sportradar.com/getting-started/docs/make-your-first-call).



## Available APIs

Two APIs are currently available:

- **Coverage API** - Sport entity data (sports, competitions, seasons, fixtures)
- **Mapping API** - Match ID mapping between Sportradar and client systems

## Coverage API

The **Coverage API** provides sport entity data, including sport, competition, season, and fixture information. Use this data for:

- BET product initialization
- Generating hosted product links
- Implementing entity ID mappings on the client side


> **Note**
>
> This API replaces Sportradar's legacy **MDP matchTree API**.



### Sport Hierarchy Types

Sportradar uses two different sport hierarchy structures:


**Classic Sports**

**Competition → Season → Fixture**

Most sports use this traditional hierarchy, including:

- Soccer
- Basketball
- Tennis
- Ice Hockey
- Handball

These sports have `isStage: false` in the API response.

**Stage Sports**

**Flexible Stage Hierarchy**

Racing and multi-event sports require parent/child stage relationships:

- Formula 1
- MotoGP
- Cycling
- Alpine Skiing
- Ski Jumping

These sports have `isStage: true` and use different endpoints.



### Endpoints

#### Sports

```text
GET https://api.sportradar.com/bet-coverage/v1/en/sports.json
```

Returns a list of all available sports with their IDs and hierarchy types. Sport IDs are required for other endpoint requests.


**View Request Example**

```text
https://api.sportradar.com/bet-coverage/v1/en/sports.json?api_key={apiKey}
```




**View Response Example**

```json
{
    "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

```text
GET https://api.sportradar.com/bet-coverage/v1/en/sports/{sport_id}/tournaments.json
```

Returns 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**

```text
https://api.sportradar.com/bet-coverage/v1/en/sports/sr:sport:1/tournaments.json?api_key={apiKey}
```




**View Response Example**

```json
{
    "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

```text
GET https://api.sportradar.com/bet-coverage/v1/en/sports/{sport_id}/schedules/{date}/schedule.json
```

Returns daily fixtures grouped by tournaments for a specific date and sport.

**Parameters:**

- `sport_id` - Sport ID from the Sports endpoint
- `date` - Date in `YYYY-MM-DD` format


**View Request Example**

```text
https://api.sportradar.com/bet-coverage/v1/en/sports/sr:sport:1/schedules/2025-04-12/schedule.json?api_key={apiKey}
```




**View Response Example**

```json
{
    "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

```text
GET https://api.sportradar.com/bet-coverage/v1/en/tournaments/{tournament_id}/schedule.json
```

Returns the complete schedule for a specific tournament.

**Parameters:**

- `tournament_id` - Tournament ID from the Tournaments endpoint


> **Tip**
>
> This endpoint is particularly useful for stage sports like Formula 1, where you need the full event hierarchy.




**View Request Example**

```text
https://api.sportradar.com/bet-coverage/v1/en/sports/sr:sport:40/stages.json?api_key={apiKey}
```




**View Response Example**

```json
{
    "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

```text
GET https://api.sportradar.com/bet-coverage/v1/en/sports/{sport_id}/stages.json
```

Returns 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)


> **Warning**
>
> This endpoint only works for stage sports (Formula 1, MotoGP, Alpine Skiing, etc.). Use the Daily Schedule endpoint for classic sports.




**View Request Example**

```text
https://api.sportradar.com/bet-coverage/v1/en/sports/sr:sport:40/stages.json?api_key={apiKey}
```




**View Response Example**

```json
{
    "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

```text
GET https://api.sportradar.com/bet-coverage/v1/en/sports/{sport_id}/schedules/{date}/stage_schedule.json
```

Returns daily stage events for a stage-based sport on a specific date.

**Parameters:**

- `sport_id` - Stage sport ID from the Sports endpoint
- `date` - Date in `YYYY-MM-DD` format


**View Request Example**

```text
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**

```json
{
    "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"
                        }
                    ]
                }
            ]
        }
    ]
}
```



### References

#### Coverage Values

Matches will have **lmtCoverage** or **coverage.lmt** value, which indicates LMT suitability of the match. These values bear the following meaning:

| Code | Semantic Meaning       |
| ---- | ---------------------- |
| 1    | no Coverage            |
| 2    | result and status only |
| 3    | basic Coverage         |
| 4    | deep coverage          |


> **Info**
>
> matches without coverage level information can be treated as matches with insufficient coverage to be used in LMT



**Examples**

```json
"match": {
  "coverage": {
    "lmt": 4
  }
}
```

```json
"match": {
  "lmtCoverage": 4
}
```

***

## Mapping API

The **Mapping API** provides match ID mappings between Sportradar's match IDs and your client's match IDs.

### How It Works

1. **Client fixtures** are ingested into Sportradar's mapping system via automated crawlers
2. **System comparison** matches client fixtures with Sportradar's fixture database
3. **Mappings generated** and made available through the API
4. **Real-time updates** as new matches are added or updated


> **Note**
>
> This API replaces Sportradar's legacy **SourceJoin** service with improved performance and reliability.



### Endpoint

#### Match ID Mappings

```text
GET https://api.sportradar.com/bet-mapping/v1/en/match_mappings/{client_mapping_id}/entities.json
```

Returns Sportradar-to-client match ID mappings.

**Parameters:**

- `client_mapping_id` - Your client mapping identifier
- `start` (optional) - Offset for pagination (default: 0)


> **Pagination**
>
> This endpoint returns a maximum of **100 entities per request**. Pagination information is provided in response headers:
>
> - `X-Offset` - Current offset
> - `X-Result` - Number of results in current response
> - `X-Max-Results` - Total available results




**View Request Example**

```text
https://api.sportradar.com/bet-mapping/v1/en/match_mappings/{client_mapping_id}/entities.json?api_key={apiKey}&start=100
```




**View Response Example**

```json
{
    "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"
        }
    ]
}
```
