v2

API Reference

Rankings

The Rankings module provides live world rankings for both singles and doubles categories across ATP and WTA tours. Rankings data is updated regularly to reflect the latest tournament results.

Endpoint Summary

MethodPathDescription
GET/tennis/v2/{type}/ranking/singlesSingles world rankings
GET/tennis/v2/{type}/ranking/doublesDoubles world rankings

How Rankings Work

Rankings are not a separate table. They are served directly from the Player entity, which stores the current ranking snapshot on each player row. The database is updated whenever ATP/WTA publish their official weekly ranking lists.

A separate Rating table stores historical ranking snapshots — one row per player per date — enabling you to reconstruct ranking history or build charts showing how a player's position changed over time.

SourceWhat it containsUse case
Player entityCurrent ranking: position, points, progress, surface breakdownToday's live rankings list
Rating entityHistorical snapshot: date, position, point per playerRanking history charts, "peak ranking" analysis

Singles Rankings

GET /tennis/v2/{type}/ranking/singles Returns the current ATP or WTA singles world rankings, ordered by position

Path Parameters

ParameterTypeDescription
type Requiredstringatp or wta

Query Parameters

ParameterTypeDescription
filter Optional string Semicolon-separated filters in Key:value format. Available filters:
  • RankingDate:{YYYY-MM-DD} — returns the ranking snapshot on or before this date
  • PlayerCountry:{USA,GBR} — filter by 3-letter country acronym
Example: filter=RankingDate:2025-01-06;PlayerCountry:ESP,ITA
pageSize Optional integer Results per page. Default: 10.
pageNo Optional integer Page number, 1-indexed. Default: 1.

Example Request

cURL
curl --request GET \
  --url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/atp/ranking/singles' \
  --header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY' \
  --header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com'
JavaScript
const res = await fetch(
  'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/atp/ranking/singles',
  { headers: { 'X-RapidAPI-Key': 'YOUR_KEY', 'X-RapidAPI-Host': 'tennis-api-atp-wta-itf.p.rapidapi.com' } }
);
const rankings = await res.json();
Python
import requests
r = requests.get(
  "https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/atp/ranking/singles",
  headers={"X-RapidAPI-Key": "YOUR_KEY", "X-RapidAPI-Host": "tennis-api-atp-wta-itf.p.rapidapi.com"}
)
print(r.json())

Example Response

JSON
[
  {
    "id": 106421,
    "name": "Jannik Sinner",
    "countryAcr": "ITA",
    "currentRank": 1,
    "points": 11330,
    "progress": 0,
    "ch": 1,
    "hardPoints": 6200,
    "ihardPoints": 800,
    "clayPoints": 4330,
    "grassPoints": 0,
    "prize": 28400000
  },
  {
    "id": 100644,
    "name": "Novak Djokovic",
    "countryAcr": "SRB",
    "currentRank": 2,
    "points": 9520,
    "progress": 0,
    "ch": 1
  }
]

Response Properties

PropertyTypeDescription
idintegerPlayer ID — use this to fetch full profile, H2H, or fixtures for this player.
namestringPlayer full name as registered in ATP/WTA records.
countryAcrstring3-letter nationality code (e.g. ITA, SRB, ESP).
currentRankintegerCurrent singles world ranking position. The response array is sorted ascending by this field (rank 1 first).
pointsintegerTotal ATP/WTA ranking points — the aggregate used to determine currentRank.
progressintegerRanking change since the last official weekly update. Positive = moved up, negative = dropped, 0 = unchanged. Render as up/down arrows in UI.
chinteger | nullCareer High — the best singles ranking this player has ever achieved. Useful to show alongside current rank.
hardPointsinteger | nullRanking points earned on outdoor hard court. Sums with other surface points to total points.
ihardPointsinteger | nullPoints earned on indoor hard court — tracked separately from outdoor hard (e.g. ATP Finals = indoor hard; Australian Open = outdoor hard).
clayPointsinteger | nullPoints earned on clay surfaces.
grassPointsinteger | nullPoints earned on grass surfaces.
carpetPointsinteger | nullPoints earned on carpet (legacy surface — rarely used in modern tennis).
prizeinteger | nullCareer prize money in USD as an integer (e.g. 28400000 = $28.4M).

Doubles Rankings

GET /tennis/v2/{type}/ranking/doubles Returns the current ATP or WTA doubles world rankings, ordered by position

Path Parameters

ParameterTypeDescription
type Requiredstringatp or wta

Query Parameters

ParameterTypeDescription
filter Optional string Semicolon-separated filters in Key:value format. Available filters:
  • PlayerCountry:{USA,GBR} — filter by 3-letter country acronym
Example: filter=PlayerCountry:ESP,ITA

Example Request

cURL
curl --request GET \
  --url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/atp/ranking/doubles' \
  --header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY' \
  --header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com'

Example Response

JSON
[
  {
    "id": 105012,
    "name": "Rohan Bopanna",
    "countryAcr": "IND",
    "doublesPosition": 1,
    "doublesPoints": 7820,
    "doublesProgress": 0
  }
]

Response Properties

PropertyTypeDescription
idintegerPlayer ID.
namestringPlayer full name.
countryAcrstring3-letter nationality code.
doublesPositionintegerCurrent doubles ranking position. The array is sorted ascending by this field.
doublesPointsintegerTotal doubles ranking points.
doublesProgressintegerDoubles ranking movement since the last weekly update. Positive = moved up, negative = dropped.
â„šī¸
Tip The /tennis/v2/ranking endpoint in the Miscellaneous module returns ranking tier definitions (Grand Slam, Masters 1000, etc.) — not player rankings.