Integration GuidesDocs
Coverage MatrixDocumentationChange LogLog InContact Us
Integration Guides

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
100% point-by-point from round 1
Post-match corrections

2

ATP1000, ATP Finals, ATP 500,
ATP Cup, ATP250, Challenger

Official data
No extended match stats
Standard match stats
Point-by-point from round 1
Post-match corrections

Tier 2 and Tier 3 is differentiated by
the presence of official data

3

WTA Finals, WTA 1000,
WTA 500, WTA Elite Trophy,
WTA Premier Fed Cup (World Group),
Davis Cup (World Group),
Olympics

No extended match stats
Standard match stats
Point-by-point from round 1
Post-match corrections

4

UTR Tour

Data via partnership
No extended match stats
Standard match stats
Point-by-point from round 1
Post-match corrections

5

ITF (Up to 2024 only)

Data directly from ITF umpires via SR devices
Standard match stats
Point-by-point from round 1
No post-match corrections
No court information

6

WTA int, WTA 250, WTA 125k

Standard match stats
Point-by-point from Semi Finals

7

Fed Cup (non-World Group),
Davis Cup (Non-world Group)

No point-by-point
Game-by-game score or results only post-match

🎾

Extended Match Statistics

Extended 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, otherwise false.
  • 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.