API Reference

Alternative Endpoints (Name or ID)

These endpoints accept a player or tournament name (URL-encoded, e.g. Carlos%20Alcaraz) or a numeric ID, where the core endpoints need numeric IDs. They return a different response format from the core endpoints, so they are not drop-in replacements. If you already have numeric IDs, prefer the core endpoints in the main groups.

Alternatives to core endpoints

Each of these serves the same purpose as a core endpoint:

Full Player Profile by Name or ID

GET/tennis/v2/profile/Carlos%20Alcaraz
Returns bio, ranking, prize money, photos, and finals years for one player. Path is a URL-encoded display name or numeric ID โ€” not a slug.

Path Parameter

ParameterRequiredTypeDescription
player_id_or_nameYesstring
URL-encoded display name (Carlos%20Alcaraz) or numeric ID (68074). Hyphenated slugs such as alcaraz-carlos return {"err":"Player not found"}.

Query Parameter

ParameterRequiredTypeDescription
typeNostring
Use with a numeric player ID to choose the ATP or WTA player with that ID: atp or wta. Example: type=wta. Not needed when you pass a player name.
Example Request: CURL
curl --request GET \
	--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/profile/Carlos%20Alcaraz' \
	--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com' \
	--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY'

Response Properties

FieldTypeDescription
namestringDisplay name. Reuse this (URL-encoded) on other advanced routes.
birthdaystringDate of birth as ISO-8601.
informationobjectBio: turnedPro, height, plays, coach, playerStatus, social links.
currentRankintegerCurrent ranking position.
careerMoneyintegerCareer prize money (whole currency units).
typestringTour of this profile: atp or wta.
imagestringPhoto path, e.g. /tennis/v2/ms-api/uploads/Photo/atp/05992.jpg. GET that URL for the JPEG.
finalYearsarrayYears that have finals data for this player.

Player Surface Summary by Name or ID

GET/tennis/v2/profile/Novak%20Djokovic/surface-summary
Retrieve a player's year-by-year win/loss record across all court surfaces, including overall results, hard courts, indoor hard courts, clay courts, and grass courts.

Path Parameter

ParameterRequiredTypeDescription
player_id_or_nameYesstring
URL-encoded display name (Carlos%20Alcaraz) or numeric ID (68074). Hyphenated slugs such as alcaraz-carlos return {"err":"Player not found"}.

Query Parameter

ParameterRequiredTypeDescription
typeNostring
Use with a numeric player ID to choose the ATP or WTA player with that ID: atp or wta. Example: type=wta. Not needed when you pass a player name.
includeAllNoboolean
Include Challenger/ITF and full history where supported. Example: includeAll=true
Example Request: CURL
curl --request GET \
	--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/profile/Novak%20Djokovic/surface-summary' \
	--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com' \
	--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY'

Response Properties

FieldTypeDescription
yearstringSeason year, or career.
sum / hard / ihard / clay / grassobjectWin/loss counts on that surface for that year.

Player Match History by Name or ID

GET/tennis/v2/profile/Carlos%20Alcaraz/matches-played?page=1&limit=10
Returns this playerโ€™s match history split into singles, doubles, and qualifying. Not a profile object.

Path Parameter

ParameterRequiredTypeDescription
player_id_or_nameYesstring
URL-encoded display name (Carlos%20Alcaraz) or numeric ID (68074). Hyphenated slugs such as alcaraz-carlos return {"err":"Player not found"}.

Query Parameter

ParameterRequiredTypeDescription
typeNostring
Use with a numeric player ID to choose the ATP or WTA player with that ID: atp or wta. Example: type=wta. Not needed when you pass a player name.
courtNostring
Surface name. Prefer this over surface. Example: court=Clay.
surfaceNostring
Filter by surface name. Alias of court. Example: surface=clay or court=Clay.
yearNointeger
Filter to a specific year. Example: year=2026
tournamentNostring
Filter by tournament name. Example: tournament=EFG%20Swiss%20Open%20-%20Gstaad
includeAllNoboolean
Include Challenger/ITF and full history where supported. Example: includeAll=true
pageNointeger
Page number on advanced routes, starting at 1. Do not send pageNo here. Example: page=1
limitNointeger
Results per page on advanced routes (use page + limit, not pageNo + pageSize). Default varies by endpoint. Example: limit=10
levelNointeger
Tournament level id. Example: level=4.
roundNostring
Round filter. Example: round=Final.
weekNointeger
Tour week number when supported. Example: week=12.
Example Request: CURL
curl --request GET \
	--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/profile/Carlos%20Alcaraz/matches-played?page=1&limit=10' \
	--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com' \
	--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY'

Response Properties

FieldTypeDescription
singles / doubles / qualifyingarrayMatch rows for that draw. On completed rows player1 is the winner.
page / pageNo / pageSize / limitintegerPagination. page + limit (pageNo / pageSize are accepted as aliases).
total / totalPages / singlesCountintegerTotals for walking pages.

Player Finals by Year (Name or ID)

GET/tennis/v2/profile/Novak%20Djokovic/finals/2024
Returns all tournament finals the player reached in the given year, with result (won/lost).

Path Parameter

ParameterRequiredTypeDescription
player_id_or_nameYesstring
URL-encoded display name (Carlos%20Alcaraz) or numeric ID (68074). Hyphenated slugs such as alcaraz-carlos return {"err":"Player not found"}.
yearYesinteger
4-digit season year, e.g. "2024"

Query Parameter

ParameterRequiredTypeDescription
typeNostring
Use with a numeric player ID to choose the ATP or WTA player with that ID: atp or wta. Example: type=wta. Not needed when you pass a player name.
Example Request: CURL
curl --request GET \
	--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/profile/Novak%20Djokovic/finals/2024' \
	--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com' \
	--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY'

Player Match Stats by Year (Name or ID)

GET/tennis/v2/profile/Novak%20Djokovic/match-stat/2024
Retrieve a player's detailed match statistics for a specific season, including service performance, return performance, break point efficiency, total games played, and overall points won.

Path Parameter

ParameterRequiredTypeDescription
player_id_or_nameYesstring
URL-encoded display name (Carlos%20Alcaraz) or numeric ID (68074). Hyphenated slugs such as alcaraz-carlos return {"err":"Player not found"}.
yearYesstring | integer
4-digit year (e.g. "2024") or "all" for career totals

Query Parameter

ParameterRequiredTypeDescription
typeNostring
Use with a numeric player ID to choose the ATP or WTA player with that ID: atp or wta. Example: type=wta. Not needed when you pass a player name.
surfaceNostring
Filter by surface name. Alias of court. Example: surface=clay or court=Clay.
courtNostring
Surface name. Prefer this over surface. Example: court=Clay.
roundNostring
Round filter. Example: round=Final.
levelNointeger
Tournament level id. Example: level=4.
includeAllNoboolean
Include Challenger/ITF and full history where supported. Example: includeAll=true
Example Request: CURL
curl --request GET \
	--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/profile/Novak%20Djokovic/match-stat/2024' \
	--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com' \
	--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY'

Response Properties

FieldTypeDescription
gamesintegerMatches included in the aggregate.
playerWins / opponentWinsintegerWins for this player vs opponents in the filtered set.
serviceStats / returnStatsobjectPer-game serve and return rates (acesGm, firstServe, โ€ฆ).
breakPointsServe / breakPointsRtnobjectBreak-point save/convert and hold rates.

Player Performance Breakdown by Name or ID

GET/tennis/v2/profile/Novak%20Djokovic/breakdown
Returns win/loss records broken down by round, tournament level, and opponent ranking range.

Path Parameter

ParameterRequiredTypeDescription
player_id_or_nameYesstring
URL-encoded display name (Carlos%20Alcaraz) or numeric ID (68074). Hyphenated slugs such as alcaraz-carlos return {"err":"Player not found"}.

Query Parameter

ParameterRequiredTypeDescription
typeNostring
Use with a numeric player ID to choose the ATP or WTA player with that ID: atp or wta. Example: type=wta. Not needed when you pass a player name.
includeAllNoboolean
Include all career years (default: current season), e.g. includeAll=true
Example Request: JAVASCRIPT
curl --request GET \
	--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/profile/Novak%20Djokovic/breakdown' \
	--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com' \
	--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY'

Response Properties

FieldTypeDescription
{year} or careerobjectOne object per season year, plus a career bucket.
court / round / rank / level / levelFinalsobjectWin/loss maps keyed by surface, round, rank band, or tournament level.

Player Filter Options by Name or ID

GET/tennis/v2/profile/Novak%20Djokovic/filters
Retrieve all available filter options for tennis statistics and search endpoints, including court surfaces, tournament rounds, competition levels, and available seasons/years. Use these values to build valid filter queries for other API endpoints.

Path Parameter

ParameterRequiredTypeDescription
player_id_or_nameYesstring
URL-encoded display name (Carlos%20Alcaraz) or numeric ID (68074). Hyphenated slugs such as alcaraz-carlos return {"err":"Player not found"}.

Query Parameter

ParameterRequiredTypeDescription
typeNostring
Use with a numeric player ID to choose the ATP or WTA player with that ID: atp or wta. Example: type=wta. Not needed when you pass a player name.
Example Request: CURL
curl --request GET \
	--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/profile/Novak%20Djokovic/filters' \
	--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com' \
	--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY'

Interesting H2H for Player by Name or ID

GET/tennis/v2/profile/Novak%20Djokovic/interesting
Retrieve a player's most notable head-to-head rivalries, including the opponent's name, overall head-to-head record, tour type, and player profile images.

Path Parameter

ParameterRequiredTypeDescription
player_id_or_nameYesstring
URL-encoded display name (Carlos%20Alcaraz) or numeric ID (68074). Hyphenated slugs such as alcaraz-carlos return {"err":"Player not found"}.

Query Parameter

ParameterRequiredTypeDescription
typeNostring
Use with a numeric player ID to choose the ATP or WTA player with that ID: atp or wta. Example: type=wta. Not needed when you pass a player name.
Example Request: CURL
curl --request GET \
	--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/profile/Novak%20Djokovic/interesting' \
	--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com' \
	--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY'

Advanced H2H Statistics by Name or ID

GET/tennis/v2/h2h/stats/atp/Novak%20Djokovic/Carlos%20Alcaraz
This example uses atp. Use wtafor the women's dataset.Career head-to-head aggregates for two players: match record, serve and return stats, break points, tiebreaks, deciding-set and first-set trends, tournament-level splits, and surface wins. Optional filters: court (preferred; surface is an alias), year, tournament, round, and level.

Path Parameter

ParameterRequiredTypeDescription
atp|wtaYesstring
Dataset to query. atp = men's tennis across all supported levels, including Grand Slams, ATP Tour, Challengers and ITF. wta = women's tennis across all supported levels, including Grand Slams, WTA Tour and ITF. There is no separate itf value.
player1_id_or_nameYesstring
First player: URL-encoded display name (Carlos%20Alcaraz) or numeric ID.
player2_id_or_nameYesstring
Second player: URL-encoded display name (Jannik%20Sinner) or numeric ID.

Query Parameter

ParameterRequiredTypeDescription
courtNostring
Surface name. Prefer this over surface. Example: court=Clay.
surfaceNostring
Filter by surface name. Alias of court. Example: surface=clay or court=Clay.
yearNointeger
Filter to a specific year. Example: year=2026
tournamentNostring
Filter by tournament name. Example: tournament=EFG%20Swiss%20Open%20-%20Gstaad
includeAllNoboolean
Include Challenger/ITF and full history where supported. Example: includeAll=true
pageNointeger
Page number on advanced routes, starting at 1. Do not send pageNo here. Example: page=1
limitNointeger
Results per page on advanced routes (use page + limit, not pageNo + pageSize). Default varies by endpoint. Example: limit=10
levelNointeger
Tournament level id. Example: level=4.
roundNostring
Round filter. Example: round=Final.
weekNointeger
Tour week number when supported. Example: week=12.
Example Request: CURL
curl --request GET \
	--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/h2h/stats/atp/Novak%20Djokovic/Carlos%20Alcaraz' \
	--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com' \
	--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY'

Full H2H History by Name or ID

GET/tennis/v2/h2h/history/atp/Novak%20Djokovic/Carlos%20Alcaraz?surface=hard
This example uses atp. Use wtafor the women's dataset.Returns a full history of past matches played between two players

Path Parameter

ParameterRequiredTypeDescription
atp|wtaYesstring
Dataset to query. atp = men's tennis across all supported levels, including Grand Slams, ATP Tour, Challengers and ITF. wta = women's tennis across all supported levels, including Grand Slams, WTA Tour and ITF. There is no separate itf value.
player1_id_or_nameYesstring
First player: URL-encoded display name (Carlos%20Alcaraz) or numeric ID.
player2_id_or_nameYesstring
Second player: URL-encoded display name (Jannik%20Sinner) or numeric ID.

Query Parameter

ParameterRequiredTypeDescription
courtNostring
Surface name. Prefer this over surface. Example: court=Clay.
surfaceNostring
Filter by surface name. Alias of court. Example: surface=clay or court=Clay.
yearNointeger
Filter to a specific year. Example: year=2026
tournamentNostring
Filter by tournament name. Example: tournament=EFG%20Swiss%20Open%20-%20Gstaad
includeAllNoboolean
Include Challenger/ITF and full history where supported. Example: includeAll=true
pageNointeger
Page number on advanced routes, starting at 1. Do not send pageNo here. Example: page=1
limitNointeger
Results per page on advanced routes (use page + limit, not pageNo + pageSize). Default varies by endpoint. Example: limit=10
levelNointeger
Tournament level id. Example: level=4.
roundNostring
Round filter. Example: round=Final.
weekNointeger
Tour week number when supported. Example: week=12.
Example Request: CURL
curl --request GET \
	--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/h2h/history/atp/Novak%20Djokovic/Carlos%20Alcaraz?surface=hard' \
	--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com' \
	--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY'

H2H Filter Options by Name or ID

GET/tennis/v2/h2h/filters/Novak%20Djokovic/Jannik%20Sinner/atp
This example uses atp. Use wtafor the women's dataset.Retrieve all available filter options for head-to-head comparisons, including court surfaces, tournament rounds, competition levels, tournaments, and seasons. Use these values to build valid filter queries for H2H endpoints.

Path Parameter

ParameterRequiredTypeDescription
player1_id_or_nameYesstring
First player: URL-encoded display name (Carlos%20Alcaraz) or numeric ID.
player2_id_or_nameYesstring
Second player: URL-encoded display name (Jannik%20Sinner) or numeric ID.
atp|wtaYesstring
Dataset to query. atp = men's tennis across all supported levels, including Grand Slams, ATP Tour, Challengers and ITF. wta = women's tennis across all supported levels, including Grand Slams, WTA Tour and ITF. There is no separate itf value.
Example Request: CURL
curl --request GET \
	--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/h2h/filters/Novak%20Djokovic/Jannik%20Sinner/atp' \
	--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com' \
	--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY'

Tournament Details by Name and Year

GET/tennis/v2/tournament/atp/EFG%20Swiss%20Open%20-%20Gstaad/2026
This example uses atp. Use wtafor the women's dataset.Returns general tournament info (surface, level, prize money, dates) for a specific year

Path Parameter

ParameterRequiredTypeDescription
atp|wtaYesstring
Dataset to query. atp = men's tennis across all supported levels, including Grand Slams, ATP Tour, Challengers and ITF. wta = women's tennis across all supported levels, including Grand Slams, WTA Tour and ITF. There is no separate itf value.
tournamentYesstring
Tournament name ("EFG%20Swiss%20Open%20-%20Gstaad")
yearYesinteger
Year Value(2026)
Example Request: CURL
curl --request GET \
	--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/tournament/atp/EFG%20Swiss%20Open%20-%20Gstaad/2026' \
	--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com' \
	--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY'

Past Champions by Name and Year

GET/tennis/v2/tournament/atp/EFG%20Swiss%20Open%20-%20Gstaad/2026/past-champions
This example uses atp. Use wtafor the women's dataset.Returns a list of all previous winners up to and including the specified year.

Path Parameter

ParameterRequiredTypeDescription
atp|wtaYesstring
Dataset to query. atp = men's tennis across all supported levels, including Grand Slams, ATP Tour, Challengers and ITF. wta = women's tennis across all supported levels, including Grand Slams, WTA Tour and ITF. There is no separate itf value.
tournamentYesstring
Tournament name ("EFG%20Swiss%20Open%20-%20Gstaad")
yearYesinteger
Year Value(2026)

Query Parameter

ParameterRequiredTypeDescription
includeAllNoboolean
Include Challenger/ITF and full history where supported. Example: includeAll=true
Example Request: CURL
curl --request GET \
	--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/tournament/atp/EFG%20Swiss%20Open%20-%20Gstaad/2026/past-champions' \
	--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com' \
	--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY'

Tournament Calendar with Filters

โš ๏ธ
level is a name, not an id

level must match a name from /calendar/{tour}/filters (for example Grand Slam or Masters series). Passing the numeric id (level=3) returns an empty list.

GET/tennis/v2/calendar/atp/2026?level=Grand%20Slam&page=1&limit=10
This example uses atp. Use wtafor the women's dataset.Returns the tournament calendar for a year. Each item can include matches played at that event. Filter level by name from /calendar/{tour}/filters โ€” not by numeric id.

Path Parameter

ParameterRequiredTypeDescription
atp|wtaYesstring
Dataset to query. atp = men's tennis across all supported levels, including Grand Slams, ATP Tour, Challengers and ITF. wta = women's tennis across all supported levels, including Grand Slams, WTA Tour and ITF. There is no separate itf value.
yearYesinteger
Year Value(2026)

Query Parameter

ParameterRequiredTypeDescription
levelNostring
Tournament level name from /calendar/{tour}/filters. Example: level=Grand Slam. Numeric ids return an empty list.
surfacesNostring
Surface name from filters, e.g. Hard, Clay, I.hard.
surfaceNostring
Filter by surface name. Alias of court. Example: surface=clay or court=Clay.
searchNostring
Tournament name search. Example: search=Open.
sortOrderNostring
Date sort: ASC or DESC.
pageNointeger
Page number on advanced routes, starting at 1. Do not send pageNo here. Example: page=1
limitNointeger
Results per page on advanced routes (use page + limit, not pageNo + pageSize). Default varies by endpoint. Example: limit=10
Example Request: CURL
curl --request GET \
	--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/calendar/atp/2026?level=Grand%20Slam&page=1&limit=10' \
	--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com' \
	--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY'

Response Properties

FieldTypeDescription
(root)arrayA JSON array of tournaments (not wrapped in data).
namestringTournament name. Reuse this (URL-encoded) on advanced tournament routes.
datestringStart date as ISO-8601.
prizestringPrize-money label when published.
court / rankobjectSurface and level objects (id + name).
gamesarrayMatches played at that event, with nested player objects and stats when available.

Detailed Player Search

GET/tennis/v2/search/Djokovic
Returns detailed player search results matching the provided search keyword. Results are grouped by category and include each player's name, nationality, and date of birth.

Path Parameter

ParameterRequiredTypeDescription
queryYesstring
URL-encoded search text in the path. Example: Djokovic
Example Request: CURL
curl --request GET \
	--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/search/Djokovic' \
	--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com' \
	--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY'

Response Properties

FieldTypeDescription
categorystringplayer_atp, player_wta, tournament_atp, or tournament_wta.
totalintegerTotal hits in that bucket (the result array is capped).
resultarrayPlayers: name, birthday, countryAcr. Tournaments: name, date.