Integration GuidesDocs
Coverage MatrixDocumentationChange LogLog InContact Us
Integration Guides

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 familyIdentifiesExample 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 competitionsr:season:132572 (Wimbledon Men Singles 2026)
sr:sport_event:One matchsr:sport_event:72318992 (the 2026 final)
sr:competitor:A player, a doubles team, or a national teamsr:competitor:225050
sr:category:A tour or circuit groupingsr:category:3 (ATP)
sr:complex:A venue complexsr:complex:33190 (All England Club)
sr:venue:An individual courtsr:venue:19070 (Centre Court)
sr:cup: / sr:cup_round:Bracket structures in Season Linkssee 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 on sr:competitor:, and editions on sr: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_context of matches you track: it makes season and competition rollups possible without extra calls.

Did this page help you?