v2

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.jpg

Endpoint Summary

MethodPathDescription
GET.../upcoming/matchesAll upcoming matches (no tour filter)
GET.../upcoming/matches/{type}Upcoming matches by tour
GET.../upcoming/matchodds/{type}Upcoming match odds by tour
GET.../upcoming/filtersAvailable 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

ParameterTypeDescription
type Optionalstringatp 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

PropertyTypeDescription
tournamentsarray<string>Tournaments currently active
roundsarray<string>Available rounds
surfacesarray<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

ParameterTypeDescription
page OptionalnumberPage number (default: 1)
limit OptionalnumberResults per page
tournament OptionalstringFilter 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

PropertyTypeDescription
totalnumberTotal matches
matchesarrayArray of match objects
matches[].tournamentobjectTournament information
matches[].tournament.idnumberTournament ID
matches[].tournament.namestringTournament name
matches[].tournament.countrystringCountry code
matches[].courtstringCourt surface
matches[].roundIdnumberRound ID
matches[].datestringMatch date (ISO 8601)
matches[].typestringTour type (atp/wta)
matches[].oddsobjectBetting odds
matches[].player1objectPlayer 1 information
matches[].player1.namestringPlayer name
matches[].player1.oddstringBetting odds
matches[].player1.imagestringPlayer image path
matches[].player2objectPlayer 2 information
matches[].player2.namestringPlayer name
matches[].player2.oddstringBetting 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

ParameterTypeDescription
type Requiredstringatp 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

PropertyTypeDescription
oddsarrayArray of odds objects
odds[].id_b_ostringBookmaker ID
odds[].id1_ostringPlayer 1 ID
odds[].id2_ostringPlayer 2 ID
odds[].id_t_ostringTournament ID
odds[].id_r_onumberRound ID
odds[].k1numberOdds for player 1 to win
odds[].k2numberOdds for player 2 to win
odds[].totalnumberTotal games/sets line
odds[].ktmnumberOdds for match total over
odds[].ktbnumberOdds for match total under
odds[].f1numberHandicap for player 1
odds[].f2numberHandicap for player 2

Upcoming Matches

GET /tennis/v2/ms-api/upcoming/matches/{type} Returns all upcoming scheduled matches for the specified tour

Path Parameters

ParameterTypeDescription
type Requiredstringatp or wta

Query Parameters

ParameterTypeDescription
page OptionalnumberPage number (default: 1)
limit OptionalnumberResults per page
tournament OptionalstringFilter 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

PropertyTypeDescription
totalnumberTotal matches
matchesarrayArray of match objects
matches[].tournamentobjectTournament information
matches[].tournament.idnumberTournament ID
matches[].tournament.namestringTournament name
matches[].courtstringCourt surface
matches[].roundIdnumberRound ID
matches[].datestringMatch date (ISO 8601)
matches[].typestringTour type (atp/wta)
matches[].oddsobjectBetting odds
matches[].player1objectPlayer 1 information
matches[].player1.namestringPlayer name
matches[].player1.oddstringBetting odds
matches[].player1.imagestringPlayer image path
matches[].player2objectPlayer 2 information
matches[].player2.namestringPlayer name
matches[].player2.oddstringBetting 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

ParameterTypeDescription
type Requiredstringatp or wta
player1 RequiredstringFirst player (lastname-firstname)
player2 RequiredstringSecond player (lastname-firstname)

Query Parameters

ParameterTypeDescription
includeAll OptionalbooleanUse all historical data for prediction
onlyImp OptionalbooleanReturn 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

PropertyTypeDescription
player1 / player2stringPlayer slugs as passed in the request
player1WinProbabilitynumberPredicted probability (0–100) that player1 wins
player2WinProbabilitynumberPredicted probability (0–100) that player2 wins
predictedWinnerstringSlug of the predicted match winner
h2hTotalintegerTotal meetings in their head-to-head history
h2hPlayer1 / h2hPlayer2integerH2H wins for each player
recentFormPlayer1 / recentFormPlayer2stringLast 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

ParameterTypeDescription
tnType Requiredstringatp or wta

Query Parameters

ParameterTypeDescription
limit OptionalnumberNumber 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

PropertyTypeDescription
player1 / player2stringDisplay names of the two players
tournamentstringTournament name
roundstringRound of the match
importanceScoreintegerScore (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

ParameterTypeDescription
type Requiredstringatp 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

PropertyTypeDescription
matchIdstringUnique identifier for this live match
player1 / player2stringDisplay names of both players
tournamentstringTournament where the live match is being played
currentSetintegerCurrent set number being played
scorestringCurrent score as a string, e.g. "6-4 3-2"
servingstringIndicates which player is currently serving: "player1" or "player2"

Live Score

ℹ️
Base path: /tennis/v2/ms-api/live-score/...
MethodPathDescription
GET.../live-score/live-listAll 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

ParameterTypeDescription
type Requiredstringatp or wta
player1 RequiredstringFirst player (lastname-firstname)
player2 RequiredstringSecond 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

PropertyTypeDescription
isLivebooleantrue if the match is currently in progress, false otherwise
matchIdstring | nullLive match identifier if found, otherwise null
scorestring | nullCurrent live score string if the match is in progress
servingstring | nullWhich 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

ParameterTypeDescription
type Requiredstringatp or wta

Query Parameters

ParameterTypeDescription
year OptionalnumberFilter by year (e.g. 2024)
limit OptionalnumberResults 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

PropertyTypeDescription
playerstringPlayer display name
slugstringPlayer slug
firstServeWonPctnumberPercentage of points won on first serve
secondServeWonPctnumberPercentage of points won on second serve
breakPointConversionPctnumberPercentage of break points converted when returning
aceRatenumberAverage number of aces per match