Advanced API
Profile
The Profile module provides rich player-centric data including full biographical profiles, season statistics, surface performance summaries, performance breakdowns, paginated match history, finals records, and serve/return stats β all queried by the player's name slug.
Player name format
The
Examples:
{name} path parameter must be the player's display name with URL encoding (spaces become %20).Examples:
Novak%20Djokovic, Iga%20Swiatek, Carlos%20Alcaraz
Endpoint Summary
| Method | Path | Description |
|---|---|---|
| GET | .../profile/{name} | Full player profile |
| GET | .../profile/{name}/player-status | Active or retired status |
| GET | .../profile/{name}/statistics | Season and career statistics |
| GET | .../profile/{name}/interesting | Interesting H2H matchups |
| GET | .../profile/{name}/upcoming | Next scheduled match |
| GET | .../profile/{name}/breakdown | Win/loss performance breakdown |
| GET | .../profile/{name}/surface-summary | Win rates by surface |
| GET | .../profile/{name}/matches-played | Paginated match history |
| GET | .../profile/{name}/filters | Available filter options |
| GET | .../profile/{name}/finals/{year} | Finals reached in a given year |
| GET | .../profile/{name}/match-stat/{year} | Serve & return stats by year |
| GET | .../profile/search/{name}/{type} | Search players by name |
| GET | .../profile/team-logo/{teamId} | Team logo image |
Base path: https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/ms-api
Player Images: Some endpoints return player image paths (e.g.,
player1Image, image). These can be accessed via the proxy at /tennis/v2/ms-api/uploads/Photo/{type}/{id}.jpg. Example: https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/ms-api/uploads/Photo/atp/05992.jpgGet Player Profile
GET
/tennis/v2/ms-api/profile/{name}
Returns full biographical, ranking, and career data for a player
Path Parameters
| Parameter | Type | Description |
|---|---|---|
name Required | string | Player display name (URL-encoded), e.g. Novak%20Djokovic |
Example Request
cURL
curl --request GET \
--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/ms-api/profile/Carlos%20Alcaraz' \
--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY' \
--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com'
Example Response
JSON
{
"name": "Carlos Alcaraz",
"birthday": "2003-05-05T00:00:00.000Z",
"information": {
"turnedPro": "2018",
"weight": "74",
"height": "183",
"birthplace": "El Palmar, Murcia, Spain",
"residence": "El Palmar, Murcia, Spain",
"plays": "Right-Handed",
"coach": "Samuel Lopez",
"playerStatus": "Active",
"backhand": "Two-Handed"
},
"country": {
"name": "Spain",
"acronym": "ESP"
},
"currentRank": 2,
"careerMoney": 45568740,
"type": "atp",
"image": "/tennis/api2/uploads/Photo/atp/68074.jpg",
"image_p_name": "/tennis/api2/uploads/Photo/atp_name/carlos_alcaraz.jpg",
"finalYears": [2026, 2025, 2024, 2023, 2022, 2021, 2020, 2019]
}
Response Properties
| Property | Type | Description |
|---|---|---|
name | string | Full display name |
birthday | string | Date of birth (ISO 8601 format) |
information | object | Detailed player information |
information.turnedPro | string | Year turned professional |
information.weight | string | Weight in kg |
information.height | string | Height in cm |
information.birthplace | string | Place of birth |
information.residence | string | Current residence |
information.plays | string | Playing hand (e.g., "Right-Handed") |
information.coach | string | Coach name |
information.playerStatus | string | Player status (e.g., "Active") |
information.backhand | string | Backhand style (e.g., "Two-Handed") |
country | object | Country information |
country.name | string | Full country name |
country.acronym | string | 3-letter country code |
currentRank | number | Current ranking position |
careerMoney | number | Total career prize money |
type | string | Tour type (atp/wta) |
image | string | Player image path |
image_p_name | string | Player image path with name |
finalYears | array | Years player reached finals |
Player Statistics
GET
/tennis/v2/ms-api/profile/{name}/statistics
Returns win/loss record and match count statistics for the current season or full career
Example Request
cURL
curl --request GET \
--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/ms-api/profile/Carlos%20Alcaraz/statistics' \
--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY' \
--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com'
Example Response
JSON
{
"recentGames": ["w", "l", "w", "l", "w", "w", "w", "w", "l", "w"],
"currentRank": 2,
"bestRank": {
"position": 1,
"date": "2022-09-12T00:00:00.000Z"
},
"mainTours": "12-4",
"tourFinals": "0-1",
"master": "8-2",
"grandSlam": "7-1",
"cups": "0-0",
"futures": "3-1",
"challengers": "4-1",
"total": "382-88",
"favouriteCourt": {
"wins": 124,
"losses": 29,
"surfaceId": 1,
"surface": "Hard"
},
"totalTitles": 34,
"totalTitlesWon": 27,
"totalFinalsWon": 7
}
Response Properties
| Property | Type | Description |
|---|---|---|
recentGames | array | Recent match results (w=win, l=loss) |
currentRank | number | Current ranking position |
bestRank | object | Career-high ranking with date |
bestRank.position | number | Career-high ranking position |
bestRank.date | string | Date achieved (ISO 8601) |
mainTours | string | Win-loss record on main tours |
tourFinals | string | Win-loss record in tour finals |
master | string | Win-loss record in Masters events |
grandSlam | string | Win-loss record in Grand Slams |
cups | string | Win-loss record in cup events |
futures | string | Win-loss record in Futures |
challengers | string | Win-loss record in Challengers |
total | string | Overall career win-loss record |
favouriteCourt | object | Best performing surface |
favouriteCourt.wins | number | Wins on favourite surface |
favouriteCourt.losses | number | Losses on favourite surface |
favouriteCourt.surfaceId | number | Surface ID |
favouriteCourt.surface | string | Surface name (Hard, Clay, Grass) |
totalTitles | number | Total career titles |
totalTitlesWon | number | Total titles won |
totalFinalsWon | number | Total finals won |
Surface Summary
GET
/tennis/v2/ms-api/profile/{name}/surface-summary
Returns win/loss breakdown and win percentage per surface type
Example Request
cURL
curl --request GET \
--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/ms-api/profile/Carlos%20Alcaraz/surface-summary' \
--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY' \
--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com'
Example Response
JSON
[
{
"year": 2026,
"sum": {
"w": 22,
"l": 3
},
"hard": {
"w": 17,
"l": 2
},
"ihard": {
"w": 0,
"l": 0
},
"clay": {
"w": 5,
"l": 1
},
"grass": {
"w": 0,
"l": 0
}
},
{
"year": 2025,
"sum": {
"w": 71,
"l": 9
},
"hard": {
"w": 28,
"l": 4
},
"ihard": {
"w": 10,
"l": 3
},
"clay": {
"w": 22,
"l": 1
},
"grass": {
"w": 11,
"l": 1
}
}
]
Response Properties
| Property | Type | Description |
|---|---|---|
year | number | Year of the statistics |
sum | object | Total win-loss record for the year |
sum.w | number | Total wins |
sum.l | number | Total losses |
hard | object | Outdoor hard court record |
hard.w | number | Hard court wins |
hard.l | number | Hard court losses |
ihard | object | Indoor hard court record |
ihard.w | number | Indoor hard wins |
ihard.l | number | Indoor hard losses |
clay | object | Clay court record |
clay.w | number | Clay wins |
clay.l | number | Clay losses |
grass | object | Grass court record |
grass.w | number | Grass wins |
grass.l | number | Grass losses |
Matches Played
GET
/tennis/v2/ms-api/profile/{name}/matches-played
Returns paginated match history with opponent names, scores, tournament info, and round
Query Parameters
| Parameter | Type | Description |
|---|---|---|
page Optional | integer | Page number. Default: 1 |
limit Optional | integer | Results per page. Default: 20 |
year Optional | integer | Filter by season year, e.g. 2024 |
surface Optional | string | Filter by surface: hard, clay, grass |
tournament Optional | string | Filter by tournament name substring |
Example Request
cURL
curl --request GET \
--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/ms-api/profile/Novak%20Djokovic/matches-played?year=2024&limit=5' \
--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY' \
--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com'
Example Response
JSON
{
"singles": [
{
"roundId": 5,
"result": "w/o",
"date": "2026-04-15T00:00:00.000Z",
"player1Id": 58327,
"player2Id": 68074,
"tournamentId"21323,
"draw": 1,
"best_of": null,
"player1": {
"id": 58327,
"name": "Tomas Machac",
"countryAcr": "CZE",
"currentRank": 43
},
"player2": {
"id": 68074,
"name": "Carlos Alcaraz",
"countryAcr": "ESP",
"currentRank"2
}
}
]
}
Response Properties
| Property | Type | Description |
|---|---|---|
singles | array | Array of singles matches |
singles[].roundId | number | Round identifier |
singles[].result | string | Match result (w=win, l=loss, w/o=walkover) |
singles[].date | string | Match date (ISO 8601) |
singles[].player1Id | number | Player 1 ID |
singles[].player2Id | number | Player 2 ID |
singles[].tournamentId | number | Tournament ID |
singles[].draw | number | Draw type |
singles[].best_of | number | null | Best of sets |
singles[].player1 | object | Player 1 information |
singles[].player1.id | number | Player ID |
singles[].player1.name | string | Player name |
singles[].player1.countryAcr | string | Country code |
singles[].player1.currentRank | number | Current ranking |
singles[].player2 | object | Player 2 information |
singles[].player2.id | number | Player ID |
singles[].player2.name | string | Player name |
singles[].player2.countryAcr | string | Country code |
singles[].player2.currentRank | number | Current ranking |
Finals by Year
GET
/tennis/v2/ms-api/profile/{name}/finals/{year}
Returns all tournament finals the player reached in the given year, with result (won/lost)
Path Parameters
| Parameter | Type | Description |
|---|---|---|
name Required | string | Player display name (URL-encoded), e.g. Novak%20Djokovic |
year Required | integer | 4-digit season year, e.g. 2023 |
Example Request
cURL
curl --request GET \
--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/ms-api/profile/Novak%20Djokovic/finals/2023' \
--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY' \
--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com'
Example Response
JSON
[
{
"tournament": "Australian Open",
"date": "2023-01-29",
"opponent": "Stefanos Tsitsipas",
"result": "W",
"score": "6-3 7-6 7-6",
"surface": "Hard",
"level": "Grand Slam"
}
]
Response Properties
| Property | Type | Description |
|---|---|---|
tournament | string | Tournament name |
date | string | Final date in YYYY-MM-DD format |
opponent | string | Opponent in the final |
result | string | "W" = title won, "L" = runner-up |
score | string | Final score string |
surface | string | Court surface |
level | string | Tournament tier, e.g. "Grand Slam", "Masters 1000" |
Match Stats by Year
GET
/tennis/v2/ms-api/profile/{name}/match-stat/{year}
Returns aggregated serve and return statistics for a player across all matches in a given year
Path Parameters
| Parameter | Type | Description |
|---|---|---|
name Required | string | Player slug |
year Required | string | 4-digit year (e.g. 2024) or all for career totals |
Example Request
cURL
curl --request GET \
--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/ms-api/profile/medvedev-daniil/match-stat/2024' \
--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY' \
--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com'
Example Response
JSON
{
"aces": 312,
"doubleFaults": 74,
"firstServeIn": 1840,
"firstServeTotal": 2620,
"firstServeWon": 1356,
"secondServeWon": 512,
"secondServeTotal": 780,
"breakPointsSaved": 198,
"breakPointsFaced": 289
}
Response Properties
| Property | Type | Description |
|---|---|---|
aces | integer | Total aces served |
doubleFaults | integer | Total double faults |
firstServeIn | integer | Number of first serves that landed in |
firstServeTotal | integer | Total first serve attempts |
firstServeWon | integer | Points won on first serve |
secondServeWon | integer | Points won on second serve |
secondServeTotal | integer | Total second serve attempts |
breakPointsSaved | integer | Break points saved while serving |
breakPointsFaced | integer | Total break points faced while serving |
Player Status
GET
/tennis/v2/ms-api/profile/{name}/player-status
Returns whether the player is currently active or retired
Example Request
cURL
curl --request GET \
--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/ms-api/profile/federer-roger/player-status' \
--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY' \
--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com'
Example Response
JSON
{
"slug": "federer-roger",
"active": false,
"status": "retired"
}
Response Properties
| Property | Type | Description |
|---|---|---|
slug | string | Player slug |
active | boolean | true if the player is currently competing |
status | string | "active" or "retired" |
Next Upcoming Match
GET
/tennis/v2/ms-api/profile/{name}/upcoming
Returns the player's next scheduled match if one is available
Example Request
cURL
curl --request GET \
--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/ms-api/profile/Carlos%20Alcaraz/upcoming' \
--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY' \
--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com'
Example Response
JSON
{
"opponent": "Jannik Sinner",
"tournament": "Wimbledon",
"round": "Final",
"scheduledDate": "2025-07-13",
"surface": "Grass"
}
Response Properties
| Property | Type | Description |
|---|---|---|
opponent | string | Opponent display name |
tournament | string | Tournament name |
round | string | Scheduled round |
scheduledDate | string | Date in YYYY-MM-DD |
surface | string | Court surface |
Performance Breakdown
GET
/tennis/v2/ms-api/profile/{name}/breakdown
Returns win/loss records broken down by round, tournament level, and opponent ranking range
Query Parameters
| Parameter | Type | Description |
|---|---|---|
includeAll Optional | boolean | Include all career years (default: current season) |
Example Request
cURL
curl --request GET \
--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/ms-api/profile/Novak%20Djokovic/breakdown' \
--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY' \
--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com'
Example Response
JSON
[
{
"category": "vs Top 10",
"wins": 218,
"losses": 112,
"winPct": 66.1
},
{
"category": "Finals",
"wins": 98,
"losses": 39,
"winPct": 71.5
}
]
Response Properties
| Property | Type | Description |
|---|---|---|
category | string | Breakdown label, e.g. "vs Top 10", "Finals", "Grand Slams" |
wins | integer | Matches won |
losses | integer | Matches lost |
winPct | number | Win percentage |
Interesting H2H Matchups
GET
/tennis/v2/ms-api/profile/{name}/interesting
Returns a curated list of notable H2H matchups for the player β useful for editorial features
Example Request
cURL
curl --request GET \
--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/ms-api/profile/Carlos%20Alcaraz/interesting' \
--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY' \
--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com'
Example Response
JSON
[
{
"h2h": "10-7",
"opponent": "Jannik Sinner",
"type": "atp",
"player1Image": "/tennis/api2/uploads/Photo/atp/68074.jpg",
"player2Image": "/tennis/api2/uploads/Photo/atp/47275.jpg"
},
{
"h2h": "7-6",
"opponent": "Alexander Zverev",
"type": "atp",
"player1Image": "/tennis/api2/uploads/Photo/atp/68074.jpg",
"player2Image": "/tennis/api2/uploads/Photo/atp/24008.jpg"
}
]
Response Properties
| Property | Type | Description |
|---|---|---|
h2h | string | Head-to-head record (wins-losses) |
opponent | string | Opponent display name |
type | string | Tour type (atp/wta) |
player1Image | string | Player 1 image path |
player2Image | string | Player 2 image path |
Profile Filters
GET
/tennis/v2/ms-api/profile/{name}/filters
Returns available filter options for this player's match history β use values with the Matches Played endpoint
Example Request
cURL
curl --request GET \
--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/ms-api/profile/Carlos%20Alcaraz/filters' \
--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY' \
--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com'
Example Response
JSON
{
"years": [2025, 2024, 2023, 2022],
"surfaces": ["Hard", "Clay", "Grass"],
"rounds": ["Final", "Semi-Final", "Quarter-Final"],
"levels": ["Grand Slam", "Masters", "ATP 500"]
}
Response Properties
| Property | Type | Description |
|---|---|---|
years | array<integer> | Available years to filter by |
surfaces | array<string> | Available court surfaces |
rounds | array<string> | Available round names |
levels | array<string> | Available tournament levels |
Search Players
GET
/tennis/v2/ms-api/profile/search/{name}/{type}
Search for players by partial or full name within the ATP or WTA database
Path Parameters
| Parameter | Type | Description |
|---|---|---|
name Required | string | Partial or full player name to search (case-insensitive) |
type Required | string | atp or wta |
Example Request
cURL
curl --request GET \
--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/ms-api/profile/search/djokovic/atp' \
--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY' \
--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com'
Example Response
JSON
[
{
"name": "Novak Djokovic",
"slug": "djokovic-novak",
"countryAcr": "SRB",
"currentRank": 2
}
]
Response Properties
| Property | Type | Description |
|---|---|---|
name | string | Full display name |
slug | string | Player slug to use in other Profile endpoints |
countryAcr | string | 3-letter country code |
currentRank | integer | null | Current world ranking |
Team Logo
GET
/tennis/v2/ms-api/profile/team-logo/{teamId}
Returns the team logo image for a given team ID
Path Parameters
| Parameter | Type | Description |
|---|---|---|
teamId Required | string | Team identifier |
Example Request
cURL
curl --request GET \
--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/ms-api/profile/team-logo/12345' \
--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY' \
--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com'
Response Properties
Returns an image file (PNG/JPG) of the team logo.