Data Coverage and Tiers
Understanding coverage and tiers in the Tennis API is essential for building reliable integrations.
Coverage
The Tennis API provides coverage across a global suite of men's and women's leagues, including top-tier competitions and emerging markets worldwide.
Understanding Competitions and Seasons
- A Competition in tennis refers to a professional tournament or tour event, such as the Australian Open, Wimbledon, or ATP 1000 – Indian Wells. Each competition has a unique competition_id.
- A Season represents a specific edition of a competition, usually aligned with a calendar year or event date (e.g., Wimbledon 2025). Each season has a unique
season_id
and includes all matches, players, and results for that instance of the competition.
{
"generated_at": "2025-08-29T22:24:45+00:00",
"competition": {
"id": "sr:competition:2591",
"name": "US Open Men Singles",
"parent_id": "sr:competition:2589",
"type": "singles",
"gender": "men",
"category": {
"id": "sr:category:3",
"name": "ATP"
},
"level": "grand_slam"
}
}
{
"generated_at": "2025-08-28T08:00:25+00:00",
"season": {
"id": "sr:season:123561",
"name": "US Open Men Singles 2025",
"start_date": "2025-08-18",
"end_date": "2025-09-08",
"year": "2025",
"competition_id": "sr:competition:2591",
"sport": {
"id": "sr:sport:5",
"name": "Tennis"
},
"category": {
"id": "sr:category:3",
"name": "ATP"
},
"competition": {
"id": "sr:competition:2591",
"name": "US Open Men Singles",
"parent_id": "sr:competition:2589",
"type": "singles",
"gender": "men",
"level": "grand_slam"
},
"info": {
"prize_currency": "$",
"prize_money": 31620000,
"surface": "hardcourt_outdoor",
"complex": "USTA Billie Jean King National Tennis Center",
"complex_id": "sr:complex:33808",
"number_of_competitors": 236,
"number_of_qualified_competitors": 128,
"number_of_scheduled_matches": 241
}
}
}
Tiers
To help developers manage varying levels of data detail, the API groups competitions into 7 tiers.
Note: Qualification rounds in tournaments often have lower coverage levels compared to the main draw, although coverage is usually consistent for major tournaments like ATP events and Grand Slams.
Tier | Competitions | Description |
---|---|---|
1 | Grand Slams | Extended match stats |
2 | ATP1000, ATP Finals, ATP 500, | Official data Tier 2 and Tier 3 is differentiated by |
3 | WTA Finals, WTA 1000, | No extended match stats |
4 | UTR Tour | Data via partnership |
5 | ITF (Up to 2024 only) | Data directly from ITF umpires via SR devices |
6 | WTA int, WTA 250, WTA 125k | Standard match stats |
7 | Fed Cup (non-World Group), | No point-by-point |
Extended Match StatisticsExtended or enhanced statistics indicate deeper match coverage, including a more comprehensive set of performance metrics and detailed breakdowns beyond standard match stats.
Accessing Detailed Coverage Data
To get comprehensive details on coverage available for a specific competition and season, use the Coverage Matrix.
Using the Coverage Matrix
The Coverage Matrix is an interactive tool that shows the level of data coverage available for tennis competitions and seasons. Use it to quickly identify which data types, like statistics and play-by-play, are fully, partially, or not covered across competitions.

Coverage Matrix Tips and Best Practices
1. Select a Package and Tier
Use the dropdown filters at the top to narrow results by package and tier to match your data plan or interest.
You can also use the search bar to search for a specific competition.
2. Review Coverage by Competition
Each row shows a competition and its associated season. The columns represent data types such as schedules, results, and competitor profile data.
Interpret the Dots:
🟢 Full Coverage – This data type is fully supported for the competition/season.
🟡 Partial Coverage – This data type is available with some limitations or in select matches.
🔴 No Coverage – This data type is not available for the competition/season.
3. Sort and Analyze Data Types
Click the arrow icons in column headers to sort competitions by season start date or coverage level for a specific data type—such as Live or Schedules.
Hover over any data type name to view a brief description of what it includes.
You can also sort Competitions by Full Coverage, Partial Coverage, and No Coverage for specific data types by clicking the white dot in the corresponding header.
A menu opens to select the corresponding dot for your target coverage.
Refreshing your page is the quickest way to clear applied filters.
4. Match Competition and Season Information
You can use the season_id
and competition_id
values found in the Coverage Matrix to make accurate API calls across many endpoints.
5. Export the Matrix
Click the Export button at the top right of the table to download the full Coverage Matrix as a CSV or Excel file for offline analysis or sharing.
Using Endpoints to Access Coverage
The coverage
object tells you what level of match detail is available, helping you determine which feeds to pull and what data you can expect ahead of a match.
- enhanced_stats — Returns
true
if extended statistics (beyond core match stats) are available, otherwisefalse
. - scores — Defines when scores are provided.
"live"
delivers real-time updates, while"post"
provides scores only after the match ends. - detailed_serve_outcomes — Returns
true
if serve-level outcomes (aces, double faults, first/second serve success) are included. - play_by_play — Returns
true
if point-by-point or play-by-play tracking is available for the match.
Feeds That Return This Data
You can use the following feeds to see coverage information ahead of matches, including whether serve outcomes, extended stats, and play-by-play data are available, as well as whether scores are delivered live or only after the match:
Coverage Object Example
<coverage type="sport_event">
<sport_event_properties enhanced_stats="false" scores="live" detailed_serve_outcomes="true" play_by_play="true"/>
</coverage>
{
"coverage": {
"type": "sport_event",
"sport_event_properties": {
"enhanced_stats": false,
"scores": "live",
"detailed_serve_outcomes": true,
"play_by_play": true
}
}
}
Check coverage details before pulling feeds during a match, ensuring you only request the data you need. For example, under <coverage>
the sport_event_properties
node tells you whether play_by_play="true", detailed_serve_outcomes="true", and scores="live" are available, while enhanced_stats="false" confirms extended statistics won’t be provided.
Coverage FAQs
For more on coverage, see our Tennis API FAQs.
Updated 2 days ago