API Reference

Reference Data & Search

Countries, court surfaces, round types, tournament ranking tiers, and full-text search across players and tournaments. Resolve IDs here, then use them on Upcoming Matches, Profiles, and Tournaments.

✅
Cache these lookups locallyCountries, courts, rounds, and ranking tiers change rarely — fetch once on startup and reuse. Use the returned IDs as roundId, courtId, and rankId on fixture, tournament, and player responses.
â„šī¸
Response envelopeAll endpoints on this page return a "data": [...] wrapper. Field names are prefixed (e.g. country_id, country_name rather than id, name).

Endpoint Summary

GET/tennis/v2/countries/
GET/tennis/v2/rankings
GET/tennis/v2/round
GET/tennis/v2/court
GET/tennis/v2/search?search=

Countries

GET/tennis/v2/countries
Returns all countries. No path or query parameters. Use country_acronym (3-letter IOC codes) to match nationality on player and tournament objects.
Example Request: CURL
curl --request GET \
	--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/countries' \
	--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com' \
	--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY'

Response Properties

FieldTypeDescription
data[0].country_namestringFull English country name (e.g. Spain, United States).
data[0].country_acronymstring3-letter country code following IOC/tennis convention (e.g. ESP, USA, GBR). This is the same value used in countryAcr fields across Players, Fixtures, and Tournaments.
dataarrayResponse payload: the list or object documented in the rows below.
data[]objectOne item of `data`; its fields are listed below.

Tournament Ranking Tiers

GET/tennis/v2/ranking
Canonical tournament-level IDs. Use rank_id as rankId on tournament objects and as TourRank inside filter. ATP 250 and ATP 500 both use rank_id 2 (Main tour); the calendar tier string distinguishes those labels. Grand Slam is rank_id 4, not 1.

This table is the lookup for fixtures, calendar, and player-match TourRank filters. Do not mix it with marketing names such as ATP 500 / WTA 1000 — those appear on the calendar tier field. ATP and WTA share the same rank_id integers; older WTA codes (T1–T5, â€Ļ) are also in the live array.

Example Request: CURL
curl --request GET \
	--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/ranking' \
	--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com' \
	--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY'

Response Properties

FieldTypeDescription
data[0].rank_idintegerInteger used as rankId on tournaments and as TourRank in filter. Live examples: 1 Challenger/ITF > $10K, 2 Main tour, 3 Masters, 4 Grand Slam.
data[0].rank_namestringLabel for that id. The live payload continues after id 9 with historic WTA/ITF codes.
dataarrayResponse payload: the list or object documented in the rows below.
data[]objectOne item of `data`; its fields are listed below.

Rounds

GET/tennis/v2/round
Returns every round code (round_id and its label). The same IDs appear as roundId on fixtures, results, draws and live rows.

Labels are short codes (1/4 = quarterfinal, 1/2 = semifinal, Q1 = qualifying round 1). IDs are codes, not an order. The full meaning of every value is in the table below the example.

Example Request: CURL
curl --request GET \
	--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/round' \
	--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com' \
	--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY'

All round values

roundIdLabel returnedStageMeaning
0Pre-qQualifyingPre-qualifying round (before qualifying round 1).
1Q1QualifyingQualifying round 1. When a qualifying draw has only one round (e.g. some WTA 125 and ITF events), Q1 is also the last qualifying round.
2Q2QualifyingQualifying round 2.
3Q3QualifyingQualifying round 3 (the final qualifying round at most tour events).
22Q4QualifyingQualifying round 4 (older ITF events with large qualifying draws).
25Q5QualifyingQualifying round 5 (older ITF events).
24QFQualifyingLegacy label found only in old ITF data. Not the main-draw quarterfinal — that is 9 (1/4).
4FirstMain drawMain-draw first round (e.g. R128 at a Grand Slam, R32 at a 250 event).
5SecondMain drawMain-draw second round.
6ThirdMain drawMain-draw third round.
7FourthMain drawMain-draw fourth round (round of 16 at a Grand Slam).
91/4Main drawQuarterfinal.
101/2Main drawSemifinal.
12FinalMain drawMain-draw final. Only the tournament final uses 12; the last qualifying match is Q1–Q3.
8RobinTeam / specialRound-robin group match (e.g. Tour Finals, Laver Cup, United Cup).
11BronzeTeam / specialBronze-medal match (Olympics).
13Rubber 1Team / specialTeam competition (Davis Cup / Billie Jean King Cup): rubber 1 of the tie.
14Rubber 2Team / specialTeam competition: rubber 2 of the tie.
15Rubber 3Team / specialTeam competition: rubber 3 of the tie.
16Rubber 4Team / specialTeam competition: rubber 4 of the tie.
17Rubber 5Team / specialTeam competition: rubber 5 of the tie.
21EROtherReserved code; not used by any match in the current data.
23CROtherReserved code; not used by any match in the current data.
20N/AOtherRound not specified.
-1N/AOtherRound not specified.

Response Properties

FieldTypeDescription
data[].round_idintegerRound code; the same value as roundId on fixtures, results, draws and live rows. Not an ordering (Final is 12, quarterfinal 9). See the table below.
data[].round_namestringShort label exactly as returned, e.g. Q1, First, 1/4, 1/2, Final, Robin, Rubber 1.
dataarrayResponse payload: the list or object documented in the rows below.
data[]objectOne item of `data`; its fields are listed below.

Court Surfaces

GET/tennis/v2/court
Returns every court surface with its ID and name: Hard, Clay, I.hard (indoor hard), Carpet, Grass and Acrylic. The IDs match courtId in tournament objects and are the values to use in TourCourt and GameCourt filters. No pagination.

Use court IDs as courtId on tournaments and as TourCourt when filtering fixtures. Surface win/loss for a player is on Players — Surface Breakdown.

Example Request: CURL
curl --request GET \
	--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/court' \
	--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com' \
	--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY'

Response Properties

FieldTypeDescription
data[0].court_idstringCourt surface ID — matches courtId in Tournament objects and the TourCourt filter parameter.
data[0].court_namestringSurface name. Typical values: Hard (outdoor), Clay, Grass, Carpet, Indoor Hard. Outdoor hard and indoor hard are tracked separately in player surface statistics.
dataarrayResponse payload: the list or object documented in the rows below.
data[]objectOne item of `data`; its fields are listed below.

Global Search (Players & Tournaments)

GET/tennis/v2/search
Search players and tournaments by name across men's and women's tennis.

What search returns

Partial, case-insensitive name match across men's and women's players and tournaments. Results come back in four buckets — ATP players, WTA players, ATP tournaments, and WTA tournaments — each capped at 5 results. Each bucket includes a total count even if more than 5 exist.

Player results omit doubles pairs (names that contain /).

Query Parameter

ParameterRequiredTypeDescription
searchYesstring
Search term (query string, not a path segment). Partial names work — Alcar matches Carlos Alcaraz. Example: Carlos Alcaraz. Returns names, not numeric IDs.
Example Request: CURL
curl --request GET \
	--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/search?search=Indian' \
	--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com' \
	--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY'

Response Properties

FieldTypeDescription
data[0].categorystringOne of: player_atp, player_wta, tournament_atp, tournament_wta.
data[0].totalnumberTotal matches in this category (may be larger than the 5 items in result).
data[0].resultarrayUp to 5 matching objects. Players: id (player ID, as in rankings and profiles), name, birthday, countryAcr. Tournaments: id, name, countryAcr.
dataarrayResponse payload: the list or object documented in the rows below.
data[]objectOne item of `data`; its fields are listed below.
data[].result[].idnumberLive event ID.
data[].result[].namestringName of the matching player or tournament.
data[].result[].birthdaystringPlayer date of birth (players only).
data[].result[].countryAcrstringCountry code (players only).