v2

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 {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

MethodPathDescription
GET.../profile/{name}Full player profile
GET.../profile/{name}/player-statusActive or retired status
GET.../profile/{name}/statisticsSeason and career statistics
GET.../profile/{name}/interestingInteresting H2H matchups
GET.../profile/{name}/upcomingNext scheduled match
GET.../profile/{name}/breakdownWin/loss performance breakdown
GET.../profile/{name}/surface-summaryWin rates by surface
GET.../profile/{name}/matches-playedPaginated match history
GET.../profile/{name}/filtersAvailable 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.jpg

Get Player Profile

GET /tennis/v2/ms-api/profile/{name} Returns full biographical, ranking, and career data for a player

Path Parameters

ParameterTypeDescription
name RequiredstringPlayer 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

PropertyTypeDescription
namestringFull display name
birthdaystringDate of birth (ISO 8601 format)
informationobjectDetailed player information
information.turnedProstringYear turned professional
information.weightstringWeight in kg
information.heightstringHeight in cm
information.birthplacestringPlace of birth
information.residencestringCurrent residence
information.playsstringPlaying hand (e.g., "Right-Handed")
information.coachstringCoach name
information.playerStatusstringPlayer status (e.g., "Active")
information.backhandstringBackhand style (e.g., "Two-Handed")
countryobjectCountry information
country.namestringFull country name
country.acronymstring3-letter country code
currentRanknumberCurrent ranking position
careerMoneynumberTotal career prize money
typestringTour type (atp/wta)
imagestringPlayer image path
image_p_namestringPlayer image path with name
finalYearsarrayYears 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

PropertyTypeDescription
recentGamesarrayRecent match results (w=win, l=loss)
currentRanknumberCurrent ranking position
bestRankobjectCareer-high ranking with date
bestRank.positionnumberCareer-high ranking position
bestRank.datestringDate achieved (ISO 8601)
mainToursstringWin-loss record on main tours
tourFinalsstringWin-loss record in tour finals
masterstringWin-loss record in Masters events
grandSlamstringWin-loss record in Grand Slams
cupsstringWin-loss record in cup events
futuresstringWin-loss record in Futures
challengersstringWin-loss record in Challengers
totalstringOverall career win-loss record
favouriteCourtobjectBest performing surface
favouriteCourt.winsnumberWins on favourite surface
favouriteCourt.lossesnumberLosses on favourite surface
favouriteCourt.surfaceIdnumberSurface ID
favouriteCourt.surfacestringSurface name (Hard, Clay, Grass)
totalTitlesnumberTotal career titles
totalTitlesWonnumberTotal titles won
totalFinalsWonnumberTotal 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

PropertyTypeDescription
yearnumberYear of the statistics
sumobjectTotal win-loss record for the year
sum.wnumberTotal wins
sum.lnumberTotal losses
hardobjectOutdoor hard court record
hard.wnumberHard court wins
hard.lnumberHard court losses
ihardobjectIndoor hard court record
ihard.wnumberIndoor hard wins
ihard.lnumberIndoor hard losses
clayobjectClay court record
clay.wnumberClay wins
clay.lnumberClay losses
grassobjectGrass court record
grass.wnumberGrass wins
grass.lnumberGrass 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

ParameterTypeDescription
page OptionalintegerPage number. Default: 1
limit OptionalintegerResults per page. Default: 20
year OptionalintegerFilter by season year, e.g. 2024
surface OptionalstringFilter by surface: hard, clay, grass
tournament OptionalstringFilter 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

PropertyTypeDescription
singlesarrayArray of singles matches
singles[].roundIdnumberRound identifier
singles[].resultstringMatch result (w=win, l=loss, w/o=walkover)
singles[].datestringMatch date (ISO 8601)
singles[].player1IdnumberPlayer 1 ID
singles[].player2IdnumberPlayer 2 ID
singles[].tournamentIdnumberTournament ID
singles[].drawnumberDraw type
singles[].best_ofnumber | nullBest of sets
singles[].player1objectPlayer 1 information
singles[].player1.idnumberPlayer ID
singles[].player1.namestringPlayer name
singles[].player1.countryAcrstringCountry code
singles[].player1.currentRanknumberCurrent ranking
singles[].player2objectPlayer 2 information
singles[].player2.idnumberPlayer ID
singles[].player2.namestringPlayer name
singles[].player2.countryAcrstringCountry code
singles[].player2.currentRanknumberCurrent 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

ParameterTypeDescription
name RequiredstringPlayer display name (URL-encoded), e.g. Novak%20Djokovic
year Requiredinteger4-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

PropertyTypeDescription
tournamentstringTournament name
datestringFinal date in YYYY-MM-DD format
opponentstringOpponent in the final
resultstring"W" = title won, "L" = runner-up
scorestringFinal score string
surfacestringCourt surface
levelstringTournament 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

ParameterTypeDescription
name RequiredstringPlayer slug
year Requiredstring4-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

PropertyTypeDescription
acesintegerTotal aces served
doubleFaultsintegerTotal double faults
firstServeInintegerNumber of first serves that landed in
firstServeTotalintegerTotal first serve attempts
firstServeWonintegerPoints won on first serve
secondServeWonintegerPoints won on second serve
secondServeTotalintegerTotal second serve attempts
breakPointsSavedintegerBreak points saved while serving
breakPointsFacedintegerTotal 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

PropertyTypeDescription
slugstringPlayer slug
activebooleantrue if the player is currently competing
statusstring"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

PropertyTypeDescription
opponentstringOpponent display name
tournamentstringTournament name
roundstringScheduled round
scheduledDatestringDate in YYYY-MM-DD
surfacestringCourt 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

ParameterTypeDescription
includeAll OptionalbooleanInclude 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

PropertyTypeDescription
categorystringBreakdown label, e.g. "vs Top 10", "Finals", "Grand Slams"
winsintegerMatches won
lossesintegerMatches lost
winPctnumberWin 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

PropertyTypeDescription
h2hstringHead-to-head record (wins-losses)
opponentstringOpponent display name
typestringTour type (atp/wta)
player1ImagestringPlayer 1 image path
player2ImagestringPlayer 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

PropertyTypeDescription
yearsarray<integer>Available years to filter by
surfacesarray<string>Available court surfaces
roundsarray<string>Available round names
levelsarray<string>Available tournament levels
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

ParameterTypeDescription
name RequiredstringPartial or full player name to search (case-insensitive)
type Requiredstringatp 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

PropertyTypeDescription
namestringFull display name
slugstringPlayer slug to use in other Profile endpoints
countryAcrstring3-letter country code
currentRankinteger | nullCurrent world ranking
GET /tennis/v2/ms-api/profile/team-logo/{teamId} Returns the team logo image for a given team ID

Path Parameters

ParameterTypeDescription
teamId RequiredstringTeam 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.