ID Handling
Every entity in the Tennis API is identified by a Sportradar URN: a string of the form sr:<type>:<number>. This page covers each ID family, how IDs behave over time, and how to key your storage.
The ID Families
| URN family | Identifies | Example from this guide |
|---|---|---|
sr:competition: | A tournament draw (singles, doubles, and mixed are separate competitions) | sr:competition:2555 (Wimbledon Men Singles) |
sr:season: | One edition of a competition | sr:season:132572 (Wimbledon Men Singles 2026) |
sr:sport_event: | One match | sr:sport_event:72318992 (the 2026 final) |
sr:competitor: | A player, a doubles team, or a national team | sr:competitor:225050 |
sr:category: | A tour or circuit grouping | sr:category:3 (ATP) |
sr:complex: | A venue complex | sr:complex:33190 (All England Club) |
sr:venue: | An individual court | sr:venue:19070 (Centre Court) |
sr:cup: / sr:cup_round: | Bracket structures in Season Links | see Building Brackets |
IDs are stable across formats (JSON and XML), languages, and access levels, so they are safe storage keys.
Match IDs
Each match is one sr:sport_event:. Once created, a match ID does not change: the same ID serves the schedule entry, the live summary, the timeline, and the closed result, so you can key match records on it from first sight of the fixture.
The exception is a match created twice by mistake: the duplicate is removed and appears in Sport Events Removed. Drop removed IDs from your store:
{
"generated_at": "2026-07-27T21:53:16+00:00",
"sport_events_removed": [
{
"id": "sr:sport_event:72665146"
},
{
"id": "sr:sport_event:72670310"
},
{
"id": "sr:sport_event:72670312"
},
{
"id": "sr:sport_event:72670314"
}
]
}Every match entry also carries its full context (sport, category, competition, season, stage, round), so you can recover the season and competition an ID belongs to from any match-shaped response:
{
"sport": {
"id": "sr:sport:5",
"name": "Tennis"
},
"category": {
"id": "sr:category:3",
"name": "ATP"
},
"competition": {
"id": "sr:competition:2555",
"name": "Wimbledon Men Singles",
"parent_id": "sr:competition:2553",
"type": "singles",
"gender": "men",
"level": "grand_slam"
},
"season": {
"id": "sr:season:132572",
"name": "Wimbledon Men Singles 2026",
"start_date": "2026-06-22",
"end_date": "2026-07-12",
"year": "2026",
"competition_id": "sr:competition:2555"
},
"stage": {
"order": 2,
"type": "cup",
"phase": "stage_1_playoff",
"start_date": "2026-06-29",
"end_date": "2026-07-12",
"year": "2026"
},
"round": {
"name": "final"
},
"groups": [
{
"id": "sr:cup:190050",
"name": "2026 Wimbledon, London, Great Britain"
}
],
"mode": {
"best_of": 5
}
}Competitor IDs
Players are sr:competitor: URNs, carried consistently through rankings, profiles, match lineups, and statistics:
{
"rank": 1,
"movement": 0,
"points": 13450,
"competitions_played": 18,
"competitor": {
"id": "sr:competitor:225050",
"name": "Sinner, Jannik",
"country": "Italy",
"country_code": "ITA",
"abbreviation": "SIN"
}
}Competitor Merges
When the same player has accidentally existed under two IDs, the records are merged. Competitor Merge Mappings lists the merged ID alongside the retained ID; repoint any stored references to the retained ID:
{
"generated_at": "2026-07-27T21:53:02+00:00",
"mappings": []
}Doubles Team IDs
A doubles team is its own competitor: the pairing has a team-level sr:competitor: ID, and the individual players nest inside it with their own IDs:
{
"id": "sr:competitor:1375956",
"name": "Ngounoue C / Smith A",
"abbreviation": "N/S",
"qualifier": "home",
"players": [
{
"id": "sr:competitor:789688",
"name": "Ngounoue, Clervie",
"country": "USA",
"country_code": "USA",
"abbreviation": "NGO"
},
{
"id": "sr:competitor:143146",
"name": "Smith, Alana",
"country": "USA",
"country_code": "USA",
"abbreviation": "SMI"
}
],
"bracket_number": 13
}Use the team ID for doubles rankings and doubles match records, and the nested player IDs to link back to each player's singles profile. The bracket_number places the team in its draw. See Retrieving Rankings and Standings for doubles rankings workflows.
Season and Competition IDs
Singles, doubles, and mixed draws of the same tournament are separate competitions (Wimbledon Men Singles and Wimbledon Men Doubles have different competition_id values), linked by parent_id to a shared parent competition. Each season is one edition: keep in mind that season-scoped feeds always require the season_id of the edition you want, and the catalog carries a rolling window of editions per competition (see Historical Data).
Tennis IDs in Other Sportradar Products
Sportradar's odds, images, and editorial products identify the same entities. The Tennis API's URNs are the bridge: competition, season, sport event, and competitor URNs are shared with the Odds Comparison and Probabilities APIs, while the Images and Editorial APIs document their own mapping from Sportradar IDs. If you license multiple products, store the URN as your canonical key and map outward from it.
Best Practices
- Key matches on
sr:sport_event:, players and teams onsr:competitor:, and editions onsr:season:; treat all URNs as opaque strings. - Process Sport Events Removed and Competitor Merge Mappings on a regular cadence so deleted fixtures and merged players do not linger in your store; see Monitoring Data Changes.
- Store the
sport_event_contextof matches you track: it makes season and competition rollups possible without extra calls.
Updated 12 days ago
