API Reference

Players

The Players module exposes player profile data, match statistics, surface performance, titles, finals history, past matches, and performance breakdowns for every ATP and WTA player in the database.

Get All Players

GET/tennis/v2/ms-api/{tourType}/player
Returns a list of all players in the selected tour. The Player entity serves a dual purpose β€” it is both a profile record and a live ranking snapshot. Fields are updated whenever ATP/WTA publish their official weekly ranking lists.

Path Parameter

ParameterType
{tourType}Requiredstring
ENUM("atp", "wta")

Query Parameter

ParameterType
{include}Optionalstring
Comma-separated relations to load. Available: country β€” adds full country object to each player.
Example: include=country
{filter}Optionalstring
Semicolon-separated filters in Key:value format. Available filters:
  • PlayerGroup:singles | doubles | both
  • PlayerCountry:{ESP,ITA} β€” filter by 3-letter country acronym
Example:filter=PlayerGroup:singles;PlayerCountry:ESP,ITA
{pageSize}Optionalinteger
Results per page. Default: 10. Example: pageSize=10.
{pageNo}Optionalinteger
Page number, 1-indexed. Default: 1. Example: pageNo=1. Use hasNextPage in the response to check for more pages.
Example Request: CURL
curl --request GET \
	--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/ms-api/atp/player' \
	--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com' \
	--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY'
Example Response: JSON
[
  {
    "id": 68074,
    "name": "Carlos Alcaraz",
    "countryAcr": "ESP",
    "currentRank": 3,
    "points": 8855,
    "progress": 0
  },
  {
    "id": 47275,
    "name": "Jannik Sinner",
    "countryAcr": "ITA",
    "currentRank": 1,
    "points": 11330,
    "progress": 0
  }
]

Get Player Profile

GET/tennis/v2/ms-api/{tourType}/player/profile/{playerId}
Returns full profile details for a single player including ranking, surface breakdown, and extended biographical data

Path Parameter

ParameterType
{tourType}Requiredstring
ENUM("atp", "wta")
{playerId}Requiredinteger
Player ID (β‰₯ 1). Obtain from the Players module.

Query Parameter

ParameterType
{include}Optionalstring
Comma-separated extras to load. Available:
  • form β€” appends recent form as a form array (e.g.["w","l","w"])
  • ranking β€” appends curRank and bestRank objects with ranking history data
  • country β€” appends a full country object (name, acronym, flag) to the player
Example: include=form,ranking,country
Example Request: CURL
curl --request GET \
	--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/ms-api/atp/player/profile/68074' \
	--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com' \
	--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY'
Example Response: JSON
{
  "data": {
    "playerStatus": "Active",
    "coach": "Samuel Lopez",
    "id": 68074,
    "name": "Carlos Alcaraz",
    "birthday": "2003-05-05T00:00:00.000Z",
    "countryAcr": "ESP",
    "currentRank": 2,
    "progress": 0,
    "points": 1612,
    "height": null,
    "wikidata_id": null,
    "country": {
      "name": "Spain",
      "acronym": "ESP"
    },
    "information": {
      "id": 68074,
      "turnedPro": "2018",
      "weight": "74",
      "height": "183",
      "birthplace": "El Palmar, Murcia, Spain",
      "residence": "El Palmar, Murcia, Spain",
      "plays": "Right-Handed, Two-Handed Backhand",
      "coach": "Samuel Lopez",
      "site": null,
      "twitter": "https://www.atptour.com/en/players/carlos-alcaraz-garfia/a0e2/overview",
      "page": "https://x.com/carlosalcaraz",
      "instagram": "https://www.facebook.com/carlitosalcarazz",
      "facebook": "https://instagram.com/carlitosalcarazz"
    }
  }
}

Get Player Titles

GET/tennis/v2/ms-api/{tourType}/player/titles/{playerId}
Returns all tournament titles won by a player

Path Parameter

ParameterType
{tourType}Requiredstring
ENUM("atp", "wta")
{playerId}Requiredinteger
Player ID (β‰₯ 1). Obtain from the Players module.
Example Request: CURL
curl --request GET \
	--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/ms-api/atp/player/titles/68074' \
	--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com' \
	--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY'
Example Response: JSON
{
  "data": [
    {
      "tourRankId": "1",
      "tourRank": "Grand Slam",
      "titlesWon": "3",
      "titlesLost": "1"
    },
    {
      "tourRankId": "3",
      "tourRank": "Masters 1000",
      "titlesWon": "8",
      "titlesLost": "4"
    }
  ]
}

Get Player Match Statistics

GET/tennis/v2/ms-api/{tourType}/player/match-stats/{playerId}
Returns aggregated match statistics for a player (win/loss records, ace counts, break point stats, etc.)

Path Parameter

ParameterType
{tourType}Requiredstring
ENUM("atp", "wta")
{playerId}Requiredinteger
Player ID (β‰₯ 1). Obtain from the Players module.
Example Request: CURL
curl --request GET \
	--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/ms-api/atp/player/match-stats/68074' \
	--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com' \
	--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY'
Example Response: JSON
{
  "data": {
    "serviceStats": {
      "acesGm": 823,
      "doubleFaultsGm": 245,
      "firstServeGm": 4521,
      "firstServeOfGm": 6102,
      "winningOnFirstServeGm": 3218,
      "winningOnFirstServeOfGm": 4521,
      "winningOnSecondServeGm": 1055,
      "winningOnSecondServeOfGm": 1581
    },
    "rtnStats": {
      "acesGm": 312,
      "doubleFaultsGm": 198,
      "firstServeGm": 3410,
      "firstServeOfGm": 5018,
      "winningOnFirstServeGm": 1820,
      "winningOnFirstServeOfGm": 3410,
      "winningOnSecondServeGm": 780,
      "winningOnSecondServeOfGm": 1250
    },
    "breakPointsServeStats": {
      "breakPointFacedGm": 310,
      "breakPointSavedGm": 187
    },
    "breakPointsRtnStats": {
      "breakPointChanceGm": 298,
      "breakPointWonGm": 142
    }
  }
}

Get Player Past Matches

GET/tennis/v2/ms-api/{tourType}/player/past-matches/{playerId}
Returns completed match results for a player, most recent first.

Path Parameter

ParameterType
{tourType}Requiredstring
ENUM("atp", "wta")
{playerId}Requiredinteger
Player ID (β‰₯ 1). Obtain from the Players module.

Query Parameter

ParameterType
{include}Optionalstring
Comma-separated relations to load. Available: round, tournament,tournament.court, tournament.rank, tournament.country,stat (per-match serve & return stats).
Example:include=round,tournament.court,stat
{filter}Optionalstring
Semicolon-separated filters in Key:value format. Available filters:
  • GameYear:{2024,2025} β€” filter by year(s)
  • GameRound:{1,2} β€” filter by round ID(s)
  • GameCourt:{1,2} β€” filter by court ID(s), requirestournament in include
  • TourRank:{1,2} β€” filter by tournament rank ID(s), requirestournament in include
  • GameTour:{20340} β€” filter by tournament ID(s)
Example: filter=GameYear:2025;GameRound:1,2
{pageSize}Optionalinteger
Results per page. Default: 10. Example: pageSize=10.
{pageNo}Optionalinteger
Page number, 1-indexed. Default: 1. Example: pageNo=1. Use hasNextPage in the response to check for more pages.
Example Request: CURL
curl --request GET \
	--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/ms-api/atp/player/past-matches/68074' \
	--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com' \
	--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY'
Example Response: JSON
{
  "data": [
    {
      "id": 1171896,
      "date": "2025-06-07T18:00:00.000Z",
      "result": "4-6 6-7(4) 6-4 7-6(3) 7-6(2)",
      "best_of": null,
      "odd1": null,
      "odd2": null,
      "player1Id": 68074,
      "player2Id": 47275,
      "tournamentId": 20340,
      "roundId": 12,
      "player1": {
        "id": 68074,
        "name": "Carlos Alcaraz",
        "countryAcr": "ESP"
      },
      "player2": {
        "id": 47275,
        "name": "Jannik Sinner",
        "countryAcr": "ITA"
      },
      "tournament": {
        "id": 20340,
        "name": "French Open - Paris",
        "courtId": 2,
        "rankId": 4
      }
    }
  ],
  "hasNextPage": false
}

Get Player Surface Summary

GET/tennis/v2/ms-api/{tourType}/player/surface-summary/{playerId}
Returns win/loss records broken down by court surface (hard, clay, grass, carpet, indoor hard)

Path Parameter

ParameterType
{tourType}Requiredstring
ENUM("atp", "wta")
{playerId}Requiredinteger
Player ID (β‰₯ 1). Obtain from the Players module.
Example Request: CURL
curl --request GET \
	--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/ms-api/atp/player/surface-summary/68074' \
	--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com' \
	--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY'
Example Response: JSON
{
  "data": [
    {
      "year": "2025",
      "surfaces": [
        {
          "courtId": 1,
          "court": "Hard",
          "courtWins": "21",
          "courtLosses": "4"
        },
        {
          "courtId": 2,
          "court": "Clay",
          "courtWins": "12",
          "courtLosses": "2"
        }
      ]
    },
    {
      "year": "2024",
      "surfaces": [
        "..."
      ]
    }
  ]
}

Get Player Performance Breakdown

GET/tennis/v2/ms-api/{tourType}/player/perf-breakdown/{playerId}
Returns granular performance metrics including serve, return, and pressure statistics.

Path Parameter

ParameterType
{tourType}Requiredstring
ENUM("atp", "wta")
{playerId}Requiredinteger
Player ID (β‰₯ 1). Obtain from the Players module.
Example Request: CURL
curl --request GET \
	--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/ms-api/atp/player/perf-breakdown/68074' \
	--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com' \
	--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY'
Example Response: JSON
{
  "data": {
    "2019": {
      "court": {
        "0": 0,
        "2": {
          "al": 1
        }
      },
      "round": {
        "4": {
          "l": 0,
          "al": 1
        }
      },
      "rank": {
        "top1": {
          "al": 0
        },
        "top5": {
          "al": 0
        },
        "top10": {
          "al": 0
        },
        "top20": {
          "al": 0
        },
        "top50": {
          "al": 0
        },
        "top100": {
          "al": 0
        }
      },
      "level": {
        "masters": {
          "al": 0
        },
        "tourFinals": {
          "al": 0
        },
        "mainTour": {
          "al": 0
        },
        "grandSlam": {
          "al": 0
        },
        "cups": {
          "al": 0
        },
        "futures": {
          "al": 1
        },
        "challengers": {
          "al": 0
        },
        "total": {
          "al": 1
        }
      },
      "levelFinals": {
        "masters": {
          "l": 0
        },
        "tourFinals": {
          "l": 0
        },
        "mainTour": {
          "l": 0
        },
        "grandSlam": {
          "l": 0
        },
        "cups": {
          "l": 0
        },
        "futures": {
          "l": 0
        },
        "challengers": {
          "l": 0
        },
        "total": {
          "l": 1
        }
      }
    }
  }
}

Returns { data: {...} } wheredata is a parsed JSON blob stored in the PlayerStat table. The exact field set varies by player and data source. The object typically contains detailed serve/return performance metrics, pressure statistics, and situational win rates β€” similar in structure to the H2H Stats response. Returns { data: null } if no performance data is available for the player.

Get Player Finals

GET/tennis/v2/ms-api/{tourType}/player/finals/{playerId}
Returns all finals appearances (won and lost) for a player.

Path Parameter

ParameterType
{tourType}Requiredstring
ENUM("atp", "wta")
{playerId}Requiredinteger
Player ID (β‰₯ 1). Obtain from the Players module.

Query Parameter

ParameterType
{filter}Optionalstring
Semicolon-separated filters in Key:value format. Available filters:
  • GameYear:{2024,2025} β€” filter by year(s)
  • GameRound:{1,2} β€” filter by round ID(s)
  • GameCourt:{1,2} β€” requires tournament ininclude
  • TourRank:{1,2} β€” requires tournament ininclude
  • GameTour:{20340} β€” filter by tournament ID(s)
Example: filter=GameYear:2024,2025;TourRank:1
Example Request: CURL
curl --request GET \
	--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/ms-api/atp/player/finals/68074' \
	--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com' \
	--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY'

Returns { data: [...] } β€” same match record structure as Past Matches. Only final-round matches are included (roundId = 12 for standard events, roundId = 16 for Tour Finals round-robin). Includes tournament prize field and optional country object for the host nation.

Get Player Interesting H2H

GET/tennis/v2/ms-api/{tourType}/player/intersting-h2h/{playerId}
Returns notable head-to-head records for a player (most wins, biggest rivals, etc.)

Path Parameter

ParameterType
{tourType}Requiredstring
ENUM("atp", "wta")
{playerId}Requiredinteger
Player ID (β‰₯ 1). Obtain from the Players module.
Example Request: CURL
curl --request GET \
	--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/ms-api/atp/player/intersting-h2h/68074' \
	--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com' \
	--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY'
Example Response: JSON
{
  "data": [
    {
      "id": 8802,
      "player1Wins": 5,
      "player2Wins": 8,
      "player1AllWins": 5,
      "player2AllWins": 8,
      "player1Id": 68074,
      "player2Id": 47275,
      "player1": {
        "id": 68074,
        "name": "Carlos Alcaraz",
        "countryAcr": "ESP",
        "wins": 5
      },
      "player2": {
        "id": 47275,
        "name": "Jannik Sinner",
        "countryAcr": "ITA",
        "wins": 8
      }
    }
  ]
}

Get Player Filter

GET/tennis/v2/ms-api/{tourType}/player/filter/{playerId}
Returns available filter categories and metadata for a player (used to build UI filter panels)

Path Parameter

ParameterType
{tourType}Requiredstring
ENUM("atp", "wta")
{playerId}Requiredinteger
Player ID (β‰₯ 1). Obtain from the Players module.
Example Request: CURL
curl --request GET \
	--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/ms-api/atp/player/filter/68074' \
	--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com' \
	--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY'
Example Response: JSON
{
  "data": {
    "rounds": [
      {
        "roundId": 1,
        "round": "Final"
      },
      {
        "roundId": 2,
        "round": "Semi-Final"
      }
    ],
    "courts": [
      {
        "courtId": 1,
        "court": "Hard"
      },
      {
        "courtId": 2,
        "court": "Clay"
      }
    ],
    "tournaments": [
      {
        "tournamentId": 20340,
        "tournament": "French Open - Paris",
        "tournamentDate": "2025-05-26T00:00:00.000Z"
      }
    ],
    "tournamentRanks": [
      {
        "rankId": 1,
        "rank": "Grand Slam"
      }
    ],
    "gameYears": [
      2025,
      2024,
      2023
    ]
  }
}

Get Player Tournament Record

GET/tennis/v2/ms-api/{tourType}/player/tournament-record/{playerId}/{tourId}
Returns a player's career record at a specific tournament, one entry per year.

Path Parameter

ParameterType
{tourType}Requiredstring
ENUM("atp", "wta")
{playerId}Requiredinteger
Player ID (β‰₯ 1). Obtain from the Players module.
{tourId}Requiredinteger
Any season ID from the tournament family. All historical editions of the same event are automatically included.
Example Request: CURL
curl --request GET \
	--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/ms-api/atp/player/tournament-record/68074/20340' \
	--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com' \
	--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY'
Example Response: JSON
{
  "data": [
    {
      "year": 2025,
      "tournamentId": 20340,
      "tournamentName": "French Open - Paris",
      "bestRoundId": 12,
      "bestRound": "Final",
      "wins": 6,
      "losses": 1
    },
    {
      "year": 2024,
      "tournamentId": 20340,
      "tournamentName": "French Open - Paris",
      "bestRoundId": 12,
      "bestRound": "Final",
      "wins": 7,
      "losses": 0
    }
  ]
}