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
| Method | Path | Description |
|---|---|---|
| GET | /tennis/v2/{type}/ranking/singles | Singles world rankings |
| GET | /tennis/v2/{type}/ranking/doubles | Doubles 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.
| Source | What it contains | Use case |
|---|---|---|
| Player entity | Current ranking: position, points, progress, surface breakdown | Today's live rankings list |
| Rating entity | Historical snapshot: date, position, point per player | Ranking 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
| Parameter | Type | Description |
|---|---|---|
type Required | string | atp or wta |
Query Parameters
| Parameter | Type | Description |
|---|---|---|
filter Optional |
string | Semicolon-separated filters in Key:value format. Available filters:
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
| Property | Type | Description |
|---|---|---|
id | integer | Player ID â use this to fetch full profile, H2H, or fixtures for this player. |
name | string | Player full name as registered in ATP/WTA records. |
countryAcr | string | 3-letter nationality code (e.g. ITA, SRB, ESP). |
currentRank | integer | Current singles world ranking position. The response array is sorted ascending by this field (rank 1 first). |
points | integer | Total ATP/WTA ranking points â the aggregate used to determine currentRank. |
progress | integer | Ranking change since the last official weekly update. Positive = moved up, negative = dropped, 0 = unchanged. Render as up/down arrows in UI. |
ch | integer | null | Career High â the best singles ranking this player has ever achieved. Useful to show alongside current rank. |
hardPoints | integer | null | Ranking points earned on outdoor hard court. Sums with other surface points to total points. |
ihardPoints | integer | null | Points earned on indoor hard court â tracked separately from outdoor hard (e.g. ATP Finals = indoor hard; Australian Open = outdoor hard). |
clayPoints | integer | null | Points earned on clay surfaces. |
grassPoints | integer | null | Points earned on grass surfaces. |
carpetPoints | integer | null | Points earned on carpet (legacy surface â rarely used in modern tennis). |
prize | integer | null | Career 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
| Parameter | Type | Description |
|---|---|---|
type Required | string | atp or wta |
Query Parameters
| Parameter | Type | Description |
|---|---|---|
filter Optional |
string | Semicolon-separated filters in Key:value format. Available filters:
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
| Property | Type | Description |
|---|---|---|
id | integer | Player ID. |
name | string | Player full name. |
countryAcr | string | 3-letter nationality code. |
doublesPosition | integer | Current doubles ranking position. The array is sorted ascending by this field. |
doublesPoints | integer | Total doubles ranking points. |
doublesProgress | integer | Doubles 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.