API Reference
Players & Profiles
Core player routes use a numeric ID. Use these for profile, stats, matches, surface, and filters. Extra endpoints at the bottom (career statistics, name search, status, next match, photos) are not replacements for the core routes.
- Core routes under
/tennis/v2/{atp|wta}/player/…need a numeric player ID (for example68074). A display name returns400. - Extra endpoints at the bottom of this page (career statistics, status, next match) accept the display name, URL-encoded (
Carlos%20Alcaraz), or the same numeric ID. Hyphenated slugs such asalcaraz-carlosreturn{"err":"Player not found"}. GET /tennis/v2/search?search=Carlos%20Alcarazreturns names, not IDs. Take numeric IDs from rankings, fixtures, or/tennis/v2/{atp|wta}/player.
Players List
/tennis/v2/atp/player?pageSize=10atp. Use wtafor the women's dataset.Returns a paginated list of players on the selected tour, including each player's numeric ID, display name, country, and current ranking snapshot.Path Parameter
| Parameter | Required | Type | Description |
|---|---|---|---|
atp|wta | Yes | string | 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. |
Query Parameter
| Parameter | Required | Type | Description |
|---|---|---|---|
include | No | string | Comma-separated extra objects to add. Available: country — adds a full country object to each player.Example: include=country |
filter | No | string | Semicolon-separated filters in Key:value format. Available filters:
filter=PlayerGroup:singles;PlayerCountry:ESP,ITA |
pageSize | No | integer | Results per page. Default: 10. Core maximum: 500 (larger values are reduced). Example: pageSize=10. |
pageNo | No | integer | Page number, 1-indexed. Default: 1. Example: pageNo=1. Use hasNextPage in the response to check for more pages. |
Response Properties
| Field | Type | Description |
|---|---|---|
data | array | The page of results. An empty array with HTTP 200 means the request was valid and nothing matched that date, filter, or page. |
pageNo | integer | Current page, starting at 1. Also returned as page. |
pageSize | integer | Items requested for this page. Also returned as limit. Core maximum is 500. |
hasNextPage | boolean | true if another page exists. Stop when this is false or data is empty. |
id | integer | Numeric player ID for core player and fixture routes. |
name | string | Display name. URL-encode this on name-based /profile routes. |
countryAcr | string | 3-letter country code, e.g. ESP. |
currentRank | integer | Current singles ranking position, or null if unranked. |
points | integer | Current ranking points, or null if unranked. |
progress | integer | Places gained or lost versus the previous list (negative = dropped). |
Player Profile by ID
/tennis/v2/atp/player/profile/68074atp. Use wtafor the women's dataset.Returns full profile details for one player. Path requires a numeric ID — a display name returns 400.Path Parameter
| Parameter | Required | Type | Description |
|---|---|---|---|
atp|wta | Yes | string | 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. |
player_id | Yes | integer |
Query Parameter
| Parameter | Required | Type | Description |
|---|---|---|---|
include | No | string | Comma-separated extras to load. Available:
include=form,ranking,country |
Response Properties
| Field | Type | Description |
|---|---|---|
data | object | The player profile object. |
id | integer | Numeric player ID. |
name | string | Display name. |
birthday | string | Date of birth as ISO-8601. |
countryAcr | string | 3-letter country code. |
currentRank / points / progress | integer | Latest official ranking snapshot. |
playerStatus | string | e.g. Active. |
information | object | Bio: turnedPro, height, weight, plays, coach, social links. |
country | object | Present when include contains country: name and acronym. |
Player Titles
/tennis/v2/atp/player/titles/68074atp. Use wtafor the women's dataset.Returns a player's finals record grouped by tournament level (ITF, Challenger, main tour, Masters, Grand Slam and more): titles won and finals lost at each level. For the list of individual finals, use Player Finals by ID. No pagination.Path Parameter
| Parameter | Required | Type | Description |
|---|---|---|---|
atp|wta | Yes | string | 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. |
player_id | Yes | integer |
Response Properties
| Field | Type | Description |
|---|---|---|
data | array | One row per tournament level. |
tourRankId | integer | Level ID (0 = ITF $10K, 1 = Challenger/ITF >$10K, 4 = Grand Slam, …). |
tourRank | string | Level name. |
titlesWon / titlesLost | string | Finals won and lost at that level. |
Player Match Stats by ID
/tennis/v2/atp/player/match-stats/68074atp. Use wtafor the women's dataset.Returns aggregated match statistics for a player (win/loss records, ace counts, break point stats, etc.)Path Parameter
| Parameter | Required | Type | Description |
|---|---|---|---|
atp|wta | Yes | string | 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. |
player_id | Yes | integer |
Player Past Matches by ID
/tennis/v2/atp/player/past-matches/68074atp. Use wtafor the women's dataset.Returns completed match results for a player, most recent first. On these rows player1 is the winner.Path Parameter
| Parameter | Required | Type | Description |
|---|---|---|---|
atp|wta | Yes | string | 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. |
player_id | Yes | integer |
Query Parameter
| Parameter | Required | Type | Description |
|---|---|---|---|
include | No | string | Comma-separated extra objects to add. round returns the human-readable tournament round associated with roundId, for example Quarter-Final, Semi-Final or Final (full lookup: GET /tennis/v2/round). Also tournament,tournament.court, tournament.rank, tournament.country,stat (per-match serve & return stats).Example: include=round,tournament.court,stat |
filter | No | string | Semicolon-separated filters in Key:value format. Available filters:
filter=GameYear:2025;GameRound:1,2 |
pageSize | No | integer | Results per page. Default: 10. Core maximum: 500 (larger values are reduced). Example: pageSize=10. |
pageNo | No | integer | Page number, 1-indexed. Default: 1. Example: pageNo=1. Use hasNextPage in the response to check for more pages. |
Response Properties
| Field | Type | Description |
|---|---|---|
data | array | The page of results. An empty array with HTTP 200 means the request was valid and nothing matched that date, filter, or page. |
pageNo | integer | Current page, starting at 1. Also returned as page. |
pageSize | integer | Items requested for this page. Also returned as limit. Core maximum is 500. |
hasNextPage | boolean | true if another page exists. Stop when this is false or data is empty. |
id | integer | Completed-match archive ID (not a live event id). |
date | string | Match date/time as ISO-8601. |
result | string | Score string, e.g. 6-4 6-3. |
player1Id / player2Id | integer | On completed matches, player1 is always the winner and player2 the loser. |
tournamentId / roundId | integer | Event edition and round. |
odd1 / odd2 | string | Pre-match odds when available; often null on older matches. |
Player Surface Summary by ID
/tennis/v2/atp/player/surface-summary/68074atp. Use wtafor the women's dataset.Returns win/loss records broken down by court surface (hard, clay, grass,
carpet, indoor hard)Path Parameter
| Parameter | Required | Type | Description |
|---|---|---|---|
atp|wta | Yes | string | 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. |
player_id | Yes | integer |
Player Performance Breakdown by ID
/tennis/v2/atp/player/perf-breakdown/68074atp. Use wtafor the women's dataset.Returns granular performance metrics including serve, return, and pressure
statistics.Path Parameter
| Parameter | Required | Type | Description |
|---|---|---|---|
atp|wta | Yes | string | 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. |
player_id | Yes | integer |
Returns { data: {...} } with serve, return, pressure, and situational win-rate fields — similar to H2H Stats. The exact keys vary by player. Returns { data: null } if no performance data is available.
Player Finals by ID
/tennis/v2/atp/player/finals/68074atp. Use wtafor the women's dataset.Returns all finals appearances (won and lost) for a player.Path Parameter
| Parameter | Required | Type | Description |
|---|---|---|---|
atp|wta | Yes | string | 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. |
player_id | Yes | integer |
Query Parameter
| Parameter | Required | Type | Description |
|---|---|---|---|
filter | No | string | Semicolon-separated filters in Key:value format. Available filters:
filter=GameYear:2024,2025;TourRank:4 |
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.
Interesting H2H for Player by ID
/tennis/v2/atp/player/intersting-h2h/68074atp. Use wtafor the women's dataset.Returns notable head-to-head records for a player (most wins, biggest rivals,
etc.)The core route is spelled intersting-h2h — that is the live path, not a typo in these docs. There is no /interesting-h2h/ alias.
Path Parameter
| Parameter | Required | Type | Description |
|---|---|---|---|
atp|wta | Yes | string | 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. |
player_id | Yes | integer |
Player Filter Options by ID
/tennis/v2/atp/player/filter/68074atp. Use wtafor the women's dataset.Returns available filter categories and metadata for a player (used to build UI
filter panels)Path Parameter
| Parameter | Required | Type | Description |
|---|---|---|---|
atp|wta | Yes | string | 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. |
player_id | Yes | integer |
Player Tournament Record
/tennis/v2/atp/player/tournament-record/68074/20340atp. Use wtafor the women's dataset.Returns a player's career record at a specific tournament, one entry per
year.Path Parameter
| Parameter | Required | Type | Description |
|---|---|---|---|
atp|wta | Yes | string | 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. |
player_id | Yes | integer | |
tournament_id | Yes | integer | Any season ID from that tournament family. All historical editions of the same event are included. |
Extra player endpoints
These are not the same as the core profile, stats, or match routes above. Use them for career statistics, player search by name, status, the next scheduled match, or photos.
Player Career Statistics
/tennis/v2/profile/Novak%20Djokovic/statisticsPath Parameter
| Parameter | Required | Type | Description |
|---|---|---|---|
player_id_or_name | Yes | string | URL-encoded display name ( Carlos%20Alcaraz) or numeric ID (68074). Hyphenated slugs such as alcaraz-carlos return {"err":"Player not found"}. |
Query Parameter
| Parameter | Required | Type | Description |
|---|---|---|---|
type | No | string | 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. |
includeAll | No | boolean | Include Challenger/ITF and full history where supported. Example: includeAll=true |
Response Properties
| Field | Type | Description |
|---|---|---|
recentGames | array | Last 10 results as w or l (most recent first). |
currentRank | integer | Current singles ranking, or null if unranked. |
bestRank.position / bestRank.date | object | Career-high rank and the date it was reached. |
mainTours / tourFinals / master / grandSlam / cups / futures / challengers / total | object | Win/loss objects for that category. |
favouriteCourt | object | wins, losses, surfaceId, surface. |
totalTitles / totalTitlesWon / totalFinalsWon | integer | Career title counts. |
Search Player Profiles
/tennis/v2/profile/search/Djokovic/atpatp. Use wtafor the women's dataset.Search for tennis players by surname and tour type (atp/wta), returning a list of matching player names.Path Parameter
| Parameter | Required | Type | Description |
|---|---|---|---|
name | Yes | string | Player display name (URL-encoded). |
atp|wta | Yes | string | 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. |
Query Parameter
| Parameter | Required | Type | Description |
|---|---|---|---|
page | No | integer | Page number on advanced routes, starting at 1. Do not send pageNo here. Example: page=1 |
limit | No | integer | Results per page on advanced routes (use page + limit, not pageNo + pageSize). Default varies by endpoint. Example: limit=10 |
Player Status
/tennis/v2/profile/Novak%20Djokovic/player-statusPath Parameter
| Parameter | Required | Type | Description |
|---|---|---|---|
player_id_or_name | Yes | string | URL-encoded display name ( Carlos%20Alcaraz) or numeric ID (68074). Hyphenated slugs such as alcaraz-carlos return {"err":"Player not found"}. |
Query Parameter
| Parameter | Required | Type | Description |
|---|---|---|---|
type | No | string | 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. |
Response Properties
| Field | Type | Description |
|---|---|---|
status | string | Current player status, e.g. Active or Inactive. |
Player Upcoming Match
/tennis/v2/profile/Lucas%20Poullain/upcomingPath Parameter
| Parameter | Required | Type | Description |
|---|---|---|---|
player_id_or_name | Yes | string | URL-encoded display name ( Carlos%20Alcaraz) or numeric ID (68074). Hyphenated slugs such as alcaraz-carlos return {"err":"Player not found"}. |
Query Parameter
| Parameter | Required | Type | Description |
|---|---|---|---|
type | No | string | 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. |
Player Image (JPEG)
/tennis/v2/ms-api/uploads/Photo/atp/05992.jpgatp. Use wtafor the women's dataset.Returns the player photograph as a JPEG. Use the image path from a profile or H2H payload — the file name is the player id padded to five digits (Novak Djokovic is 05992.jpg). HTTP 200 with Content-Type image/jpeg; the body is the image, not JSON.Path Parameter
| Parameter | Required | Type | Description |
|---|---|---|---|
atp|wta | Yes | string | 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. |
player_id | Yes | string | Five-digit player id in the file name. Example: 05992 (id 5992). |
Successful responses are JPEG bytes (Content-Type: image/jpeg), the same image shown in the RapidAPI Image tab.
Response Properties
| Field | Type | Description |
|---|---|---|
Content-Type | string | image/jpeg |
Body | binary | The photograph. Do not parse this response as JSON. |
Team Logo (Davis Cup / BJK Cup)
/tennis/v2/profile/team-logo/12Path Parameter
| Parameter | Required | Type | Description |
|---|---|---|---|
team_id | Yes | integer | Team id. Example: 12 |
Response Properties
| Field | Type | Description |
|---|---|---|
status | string | SUCCESS. |
team_logo | string | Logo path on this host. GET that path to download the image file. |