v2

Tennis Predictions API

Upcoming & Predictions

This module covers upcoming match data with odds and predictions, including match filters, match odds, match predictions, and top matches today. All endpoints use the Tennis Predictions API product.

⚠️

Plan Restriction

Predictions and Odds endpoints (including matchodds, match-prediction) are only available to ULTRA and MEGA plan subscribers. If you encounter access errors, please upgrade your plan or contact support.

Upcoming Matches

ℹ️
Product: Tennis Predictions API (tennis-predictions-api.p.rapidapi.com)
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-stats-api.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-predictions-api.p.rapidapi.com/tennis/v2/ms-api/upcoming/filters/atp' \
  --header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY' \
  --header 'X-RapidAPI-Host: tennis-predictions-api.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-predictions-api.p.rapidapi.com/tennis/v2/ms-api/upcoming/matches?limit=10' \
  --header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY' \
  --header 'X-RapidAPI-Host: tennis-predictions-api.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

Query Parameters

ParameterTypeDescription
tournamentId OptionalnumberFilter by tournament ID (e.g. 21331)
roundId OptionalnumberFilter by round ID (e.g. 9)
player1Id OptionalnumberFilter by player 1 ID (e.g. 40434)
player2Id OptionalnumberFilter by player 2 ID (e.g. 28898)

Example Request

cURL
curl --request GET \
  --url 'https://tennis-predictions-api.p.rapidapi.com/tennis/v2/ms-api/upcoming/matchodds/atp?tournamentId=21331&roundId=9&player1Id=40434' \
  --header 'Content-Type: application/json' \
  --header 'x-rapidapi-host: tennis-predictions-api.p.rapidapi.com' \
  --header 'x-rapidapi-key: YOUR_RAPIDAPI_KEY'

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-predictions-api.p.rapidapi.com/tennis/v2/ms-api/upcoming/matches/atp?limit=5' \
  --header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY' \
  --header 'X-RapidAPI-Host: tennis-predictions-api.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-predictions-api.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-predictions-api.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-predictions-api.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-predictions-api.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
ℹ️
Looking for live data? Live Events, Live Score, and Point-by-Point Stats have moved to the Tennis Live API page.