Advanced API
Upcoming & Live
This module covers upcoming match data with odds and predictions, live event feeds, live score tracking, and point-by-point statistics. It combines four sub-modules: upcoming, live-events, live-score, and pbp-stat.
Upcoming Matches
Base path:
/tennis/v2/ms-api/upcoming/...Player Images: Some endpoints return player image paths (e.g.,
image, image_p_name). 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.jpgEndpoint Summary
| Method | Path | Description |
|---|---|---|
| GET | .../upcoming/matches | All upcoming matches (no tour filter) |
| GET | .../upcoming/matches/{type} | Upcoming matches by tour |
| GET | .../upcoming/matchodds/{type} | Upcoming match odds by tour |
| GET | .../upcoming/filters | Available filter options (all tours) |
| GET | .../upcoming/filters/{type} | Filter options by tour |
| GET | .../upcoming/match-prediction/{type}/{player1}/{player2} | Match prediction between two players |
| GET | .../upcoming/top-tennis-matches-today/{tnType} | Top matches today |
Filter Options
GET
/tennis/v2/ms-api/upcoming/filters/{type}
Returns available filter values (tournaments, rounds, surfaces) for upcoming matches
Path Parameters
| Parameter | Type | Description |
|---|---|---|
type Optional | string | atp or wta β omit for all tours |
Example Request
cURL
curl --request GET \
--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/ms-api/upcoming/filters/atp' \
--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY' \
--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com'
Example Response
JSON
{
"tournaments": ["Wimbledon", "Eastbourne"],
"rounds": ["First Round", "Second Round", "Quarter-Final"],
"surfaces": ["Grass", "Hard"]
}
Response Properties
| Property | Type | Description |
|---|---|---|
tournaments | array<string> | Tournaments currently active |
rounds | array<string> | Available rounds |
surfaces | array<string> | Surfaces in play |
All Upcoming Matches
GET
/tennis/v2/ms-api/upcoming/matches
Returns all upcoming scheduled matches across both ATP and WTA tours
Query Parameters
| Parameter | Type | Description |
|---|---|---|
page Optional | number | Page number (default: 1) |
limit Optional | number | Results per page |
tournament Optional | string | Filter by tournament name |
Example Request
cURL
curl --request GET \
--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/ms-api/upcoming/matches?limit=10' \
--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY' \
--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com'
Example Response
JSON
{
"total": 10,
"matches": [
{
"tournament": {
"id": 21332,
"name": "Boss Open - Stuttgart",
"date": "2026-06-08T00:00:00.000Z",
"rankId": 2,
"country": "GER",
"court": {
"name": "Grass"
}
},
"court": "Grass",
"roundId": 10,
"rank": 2,
"date": "2026-06-12T20:30:00.000Z",
"type": "atp",
"odds": {
"id_b_o": 2,
"total"null,
"k1": 1.885,
"k2": 1.885
},
"player1": {
"name": "Yannick Hanfmann/Jan-Lennard Struff",
"odd": "1.85",
"countryAcr": "N/A",
"image": "/tennis/api2/uploads/Photo/atp/95126.jpg",
"id": 95126
},
"player2": {
"id": 129144,
"name": "Vasil Kirkov/Lucas Miedler",
"odd": "1.833",
"countryAcr": "N/A"
}
}
]
}
Response Properties
| Property | Type | Description |
|---|---|---|
total | number | Total matches |
matches | array | Array of match objects |
matches[].tournament | object | Tournament information |
matches[].tournament.id | number | Tournament ID |
matches[].tournament.name | string | Tournament name |
matches[].tournament.country | string | Country code |
matches[].court | string | Court surface |
matches[].roundId | number | Round ID |
matches[].date | string | Match date (ISO 8601) |
matches[].type | string | Tour type (atp/wta) |
matches[].odds | object | Betting odds |
matches[].player1 | object | Player 1 information |
matches[].player1.name | string | Player name |
matches[].player1.odd | string | Betting odds |
matches[].player1.image | string | Player image path |
matches[].player2 | object | Player 2 information |
matches[].player2.name | string | Player name |
matches[].player2.odd | string | Betting odds |
Match Odds
GET
/tennis/v2/ms-api/upcoming/matchodds/{type}
Returns upcoming matches enriched with betting odds data for the specified tour
Path Parameters
| Parameter | Type | Description |
|---|---|---|
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/upcoming/matchodds/atp' \
--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY' \
--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com'
Example Response
JSON
{
"odds": [
{
"id_b_o": "1",
"id1_o": "40434",
"id2_o": "28898",
"id_t_o": "21331",
"id_r_o": 9,
"k1": 1.32,
"k2": 3.36,
"total": 23,
"ktm": 1.833,
"ktb": 2.16,
"f1": -6,
"f2": 6
}
]
}
Response Properties
| Property | Type | Description |
|---|---|---|
odds | array | Array of odds objects |
odds[].id_b_o | string | Bookmaker ID |
odds[].id1_o | string | Player 1 ID |
odds[].id2_o | string | Player 2 ID |
odds[].id_t_o | string | Tournament ID |
odds[].id_r_o | number | Round ID |
odds[].k1 | number | Odds for player 1 to win |
odds[].k2 | number | Odds for player 2 to win |
odds[].total | number | Total games/sets line |
odds[].ktm | number | Odds for match total over |
odds[].ktb | number | Odds for match total under |
odds[].f1 | number | Handicap for player 1 |
odds[].f2 | number | Handicap for player 2 |
Upcoming Matches
GET
/tennis/v2/ms-api/upcoming/matches/{type}
Returns all upcoming scheduled matches for the specified tour
Path Parameters
| Parameter | Type | Description |
|---|---|---|
type Required | string | atp or wta |
Query Parameters
| Parameter | Type | Description |
|---|---|---|
page Optional | number | Page number (default: 1) |
limit Optional | number | Results per page |
tournament Optional | string | Filter by tournament name |
Example Request
cURL
curl --request GET \
--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/ms-api/upcoming/matches/atp?limit=5' \
--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY' \
--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com'
Example Response
JSON
{
"total": 10,
"matches": [
{
"tournament": {
"id": 21332,
"name": "Boss Open - Stuttgart",
"date": "2026-06-08T00:00:00.000Z",
"rankId": 2,
"country": "GER",
"court": {
"name": "Grass"
}
},
"court": "Grass",
"roundId": 10,
"rank": 2,
"date": "2026-06-12T20:30:00.000Z",
"type": "atp",
"odds": {
"id_b_o": 2,
"total"null,
"k1": 1.885,
"k2": 1.885
},
"player1": {
"name": "Yannick Hanfmann/Jan-Lennard Struff",
"odd": "1.85",
"countryAcr": "N/A",
"image": "/tennis/api2/uploads/Photo/atp/95126.jpg",
"id": 95126
},
"player2": {
"id": 129144,
"name": "Vasil Kirkov/Lucas Miedler",
"odd": "1.833",
"countryAcr": "N/A"
}
}
]
}
Response Properties
| Property | Type | Description |
|---|---|---|
total | number | Total matches |
matches | array | Array of match objects |
matches[].tournament | object | Tournament information |
matches[].tournament.id | number | Tournament ID |
matches[].tournament.name | string | Tournament name |
matches[].court | string | Court surface |
matches[].roundId | number | Round ID |
matches[].date | string | Match date (ISO 8601) |
matches[].type | string | Tour type (atp/wta) |
matches[].odds | object | Betting odds |
matches[].player1 | object | Player 1 information |
matches[].player1.name | string | Player name |
matches[].player1.odd | string | Betting odds |
matches[].player1.image | string | Player image path |
matches[].player2 | object | Player 2 information |
matches[].player2.name | string | Player name |
matches[].player2.odd | string | Betting odds |
Match Prediction
GET
/tennis/v2/ms-api/upcoming/match-prediction/{type}/{player1}/{player2}
Returns a data-driven prediction for an upcoming match between two players
Path Parameters
| Parameter | Type | Description |
|---|---|---|
type Required | string | atp or wta |
player1 Required | string | First player (lastname-firstname) |
player2 Required | string | Second player (lastname-firstname) |
Query Parameters
| Parameter | Type | Description |
|---|---|---|
includeAll Optional | boolean | Use all historical data for prediction |
onlyImp Optional | boolean | Return only the most important prediction factors |
Example Request
cURL
curl --request GET \
--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/ms-api/upcoming/match-prediction/atp/djokovic-novak/alcaraz-carlos' \
--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY' \
--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com'
Example Response
JSON
{
"player1": "djokovic-novak",
"player2": "alcaraz-carlos",
"player1WinProbability": 44.2,
"player2WinProbability": 55.8,
"predictedWinner": "alcaraz-carlos",
"h2hTotal": 8,
"h2hPlayer1": 3,
"h2hPlayer2": 5,
"recentFormPlayer1": "WLWWL",
"recentFormPlayer2": "WWWWL"
}
Response Properties
| Property | Type | Description |
|---|---|---|
player1 / player2 | string | Player slugs as passed in the request |
player1WinProbability | number | Predicted probability (0β100) that player1 wins |
player2WinProbability | number | Predicted probability (0β100) that player2 wins |
predictedWinner | string | Slug of the predicted match winner |
h2hTotal | integer | Total meetings in their head-to-head history |
h2hPlayer1 / h2hPlayer2 | integer | H2H wins for each player |
recentFormPlayer1 / recentFormPlayer2 | string | Last 5 results for each player as a string (W = win, L = loss) |
Top Matches Today
GET
/tennis/v2/ms-api/upcoming/top-tennis-matches-today/{tnType}
Returns the most significant matches scheduled today, ranked by importance
Path Parameters
| Parameter | Type | Description |
|---|---|---|
tnType Required | string | atp or wta |
Query Parameters
| Parameter | Type | Description |
|---|---|---|
limit Optional | number | Number of matches to return (default: 10) |
Example Request
cURL
curl --request GET \
--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/ms-api/upcoming/top-tennis-matches-today/atp?limit=5' \
--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY' \
--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com'
Example Response
JSON
[
{
"player1": "Carlos Alcaraz",
"player2": "Jannik Sinner",
"tournament": "Wimbledon",
"round": "Semi-Final",
"importanceScore": 98
}
]
Response Properties
| Property | Type | Description |
|---|---|---|
player1 / player2 | string | Display names of the two players |
tournament | string | Tournament name |
round | string | Round of the match |
importanceScore | integer | Score (0β100) used to rank match importance β higher = more significant |
Live Events
Base path:
/tennis/v2/ms-api/live-events/...
GET
/tennis/v2/ms-api/live-events/{type}
Returns all currently live matches for the given tour
Path Parameters
| Parameter | Type | Description |
|---|---|---|
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/live-events/atp' \
--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY' \
--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com'
Example Response
JSON
[
{
"matchId": "m_8820",
"player1": "Carlos Alcaraz",
"player2": "Jannik Sinner",
"tournament": "Wimbledon",
"currentSet": 2,
"score": "6-4 3-2",
"serving": "player1"
}
]
Response Properties
| Property | Type | Description |
|---|---|---|
matchId | string | Unique identifier for this live match |
player1 / player2 | string | Display names of both players |
tournament | string | Tournament where the live match is being played |
currentSet | integer | Current set number being played |
score | string | Current score as a string, e.g. "6-4 3-2" |
serving | string | Indicates which player is currently serving: "player1" or "player2" |
Live Score
Base path:
/tennis/v2/ms-api/live-score/...| Method | Path | Description |
|---|---|---|
| GET | .../live-score/live-list | All currently live matches |
| GET | .../live-score/is-live/{type}/{player1}/{player2} | Check if a specific match is live |
GET
/tennis/v2/ms-api/live-score/is-live/{type}/{player1}/{player2}
Returns whether a match between two players is currently in progress
Path Parameters
| Parameter | Type | Description |
|---|---|---|
type Required | string | atp or wta |
player1 Required | string | First player (lastname-firstname) |
player2 Required | string | Second player (lastname-firstname) |
Example Request
cURL
curl --request GET \
--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/ms-api/live-score/is-live/atp/djokovic-novak/alcaraz-carlos' \
--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY' \
--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com'
Example Response
JSON
{
"isLive": true,
"matchId": "m_8820",
"score": "6-4 3-2",
"serving": "player1"
}
Response Properties
| Property | Type | Description |
|---|---|---|
isLive | boolean | true if the match is currently in progress, false otherwise |
matchId | string | null | Live match identifier if found, otherwise null |
score | string | null | Current live score string if the match is in progress |
serving | string | null | Which player is currently serving: "player1" or "player2" |
Point-by-Point Statistics
Base path:
/tennis/v2/ms-api/pbp-stat/...
GET
/tennis/v2/ms-api/pbp-stat/{type}
Returns point-by-point statistics aggregated across players for the given tour and year
Path Parameters
| Parameter | Type | Description |
|---|---|---|
type Required | string | atp or wta |
Query Parameters
| Parameter | Type | Description |
|---|---|---|
year Optional | number | Filter by year (e.g. 2024) |
limit Optional | number | Results per page |
Example Request
cURL
curl --request GET \
--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/ms-api/pbp-stat/atp?year=2024&limit=10' \
--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY' \
--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com'
Example Response
JSON
[
{
"player": "Carlos Alcaraz",
"slug": "alcaraz-carlos",
"firstServeWonPct": 74.2,
"secondServeWonPct": 56.1,
"breakPointConversionPct": 42.8,
"aceRate": 6.3
}
]
Response Properties
| Property | Type | Description |
|---|---|---|
player | string | Player display name |
slug | string | Player slug |
firstServeWonPct | number | Percentage of points won on first serve |
secondServeWonPct | number | Percentage of points won on second serve |
breakPointConversionPct | number | Percentage of break points converted when returning |
aceRate | number | Average number of aces per match |