Data Coverage and Tiers
The Tennis API covers a global suite of men's and women's competitions, from the Grand Slams through the tour and Challenger levels to partner and team events. Coverage depth is not uniform: competitions are grouped into tiers, and each match carries a coverage object that states exactly what to expect. This page explains both.
Understanding Competitions and Seasons
- A Competition is a professional tournament or tour event, such as the Australian Open, Wimbledon, or an ATP 1000. Each competition has a unique
competition_id.- A Season is one edition of a competition (for example, Wimbledon Men Singles 2026). Each season has a unique
season_idand includes all matches, players, and results for that edition.
Tiers
The API groups competitions into 7 tiers.
Note: Qualification rounds often have lower coverage than the main draw, although coverage is usually consistent throughout major tournaments such as ATP events and Grand Slams.
| Tier | Competitions | Coverage |
|---|---|---|
| 1 | Grand Slams | Extended match stats. 100% point-by-point from round 1. Post-match corrections. |
| 2 | ATP 1000, ATP Finals, ATP 500, ATP Cup, ATP 250, Challenger | Official data. Standard match stats (no extended stats). Point-by-point from round 1. Post-match corrections. Tier 2 and Tier 3 are differentiated by the presence of official data. |
| 3 | WTA Finals, WTA 1000, WTA 500, WTA Elite Trophy, WTA Premier, Billie Jean King Cup (World Group), Davis Cup (World Group), Olympics | Standard match stats (no extended stats). Point-by-point from round 1. Post-match corrections. |
| 4 | UTR Tour | Data via partnership. Standard match stats (no extended stats). Point-by-point from round 1. Post-match corrections. |
| 5 | ITF (up to 2024 only) | Data directly from ITF umpires via Sportradar devices. Standard match stats. Point-by-point from round 1. No post-match corrections. No court information. |
| 6 | WTA International, WTA 250, WTA 125k | Standard match stats. Point-by-point from the semifinals. |
| 7 | Billie Jean King Cup (non-World Group), Davis Cup (non-World Group) | No point-by-point. Game-by-game score, or results only post-match. |
Extended Match StatisticsExtended or enhanced statistics indicate deeper match coverage: a more comprehensive set of performance metrics and detailed breakdowns beyond standard match stats.
Reading Coverage from Responses
Every match carries a coverage object in the summary-shaped feeds. It tells you what level of detail to expect ahead of a match, so you can decide which feeds to pull:
{
"id": "sr:sport_event:73163852",
"coverage": {
"type": "sport_event",
"sport_event_properties": {
"enhanced_stats": false,
"scores": "live",
"detailed_serve_outcomes": true,
"play_by_play": true
}
},
"channels": [
{
"name": "C+ DEPORTES - Hispasat 1B/1C/1D (30.0 W) - CPD2 - 5494"
},
{
"name": "SPORT1 DE - Astra 1C-1H / 2C (19.2E)"
},
{
"name": "Sport2 HU - Thor 2/3 (1.0W)"
},
{
"name": "NOVA Sport 1 HD CZ - Thor 2/3 (1.0W)"
},
{
"name": "Supertennis HD - Hot Bird 1/2/3/4/6 (13.0E)"
},
{
"name": "ORF Sport Plus - Astra 1C-1H / 2C (19.2E)"
},
{
"name": "EUROSPORT 1 FR - Astra 1C-1H / 2C (19.2E)"
},
{
"name": "Sport TV2 HD - Hispasat 1B/1C/1D (30.0 W) - NOS PT"
},
{
"name": "Sport TV4 HD - Hispasat 1B/1C/1D (30.0 W) - NOS PT"
},
{
"name": "C More Live - Thor 2/3 (1.0W) - Telenor - 5063"
},
{
"name": "C More Tennis HD - Thor 2/3 (1.0W) - Telenor - 234"
},
{
"name": "Sport1+ HD - Astra 1C-1H / 2C (19.2E)"
},
{
"name": "Sky Sport HD 1 (D) - Astra 1C-1H / 2C (19.2E)"
},
{
"name": "Eurosport Danmark - Astra 4A & SES 5 (4.9E)"
},
{
"name": "Sport Klub 1 SRB - (16.0E)"
},
{
"name": "Sky Sport HD 2 (D) - Astra 1C-1H / 2C (19.2E)"
},
{
"name": "Tennis Channel US"
},
{
"name": "ATP Tennis TV"
}
]
}- enhanced_stats:
truewhen extended statistics beyond the core match stats are available. - scores: when scores are provided.
"live"delivers real-time updates;"post"provides scores only after the match ends. - detailed_serve_outcomes:
truewhen serve-level outcomes (aces, double faults, first and second serve success) are included. - play_by_play:
truewhen a point-by-point timeline is available for the match.
Matches can also carry a channels array naming broadcast channels, as shown above.
Feeds That Return Coverage
The coverage object appears in match entries across these feeds:
Coverage Fields in Cancelled Matches
The detailed_serve_outcomes and play_by_play fields normally reflect the coverage available for a match. For cancelled matches, they may return false even though the match type would typically have that coverage: the false value results from the cancellation, not from an absence of coverage for the competition. See the cancelled match workflow for details.
Using the Coverage Matrix
The Coverage Matrix is an interactive tool showing the level of data coverage for every tennis competition and season. Use it to identify which data types (statistics, play-by-play, live scores) are fully, partially, or not covered before you build.
- Select a package and tier: dropdown filters at the top narrow results to match your data plan; the search bar finds a specific competition.
- Review coverage by competition: each row is a competition and season; columns are data types such as schedules, results, and competitor profile data. Interpret the dots with the legend above.
- Sort and analyze: column-header arrows sort by season start date or coverage level; hover over a data type name for a description of what it includes.
- Match IDs: the
season_idandcompetition_idvalues shown in the matrix are the same identifiers the API takes, so you can move straight from the matrix to API calls. - Export: the Export button downloads the full matrix as CSV or Excel for offline analysis.
Coverage FAQs
For more on coverage, see the Tennis API FAQ.
Updated 1 day ago
