API Reference
Tournaments
The Tournaments module provides tournament metadata, season history, past champions, results, and a full year calendar for ATP and WTA events.
id (the seasonid). All year-editions of the same event are linked together via the link field. Use the Calendar endpoint to discover seasonid values for a given year.
Endpoint Summary
| Method | Path | Description |
|---|---|---|
| GET | /tennis/v2/{type}/tournament/info/{seasonid} | Tournament info for a season |
| GET | /tennis/v2/{type}/tournament/seasons/{seasonid} | All seasons of a tournament |
| GET | /tennis/v2/{type}/tournament/past-champtions/{seasonid} | Past champions |
| GET | /tennis/v2/{type}/tournament/results/{seasonid} | Full results draw |
| GET | /tennis/v2/{type}/tournament/calendar/{year} | Year tournament calendar |
Tournament Calendar
Path Parameters
| Parameter | Type | Description |
|---|---|---|
type Required | string | atp or wta |
year Required | integer | 4-digit year, e.g. 2025 |
Query Parameters
| Parameter | Type | Description |
|---|---|---|
include Optional |
string | Comma-separated extras to load. court, rank, and country are always included by default. Additional available options:
include=rating,singlesPrize |
filter Optional |
string | Semicolon-separated filters in Key:value format. Available filters:
filter=TourRank:1,2;TourCourt:2 |
pageSize Optional |
integer | Results per page. Default: 10. |
pageNo Optional |
integer | Page number, 1-indexed. Default: 1. |
Example Request
curl --request GET \
--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/atp/tournament/calendar/2025' \
--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY' \
--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com'
Example Response
[
{
"id": 8871,
"link": 520,
"name": "Roland Garros",
"date": "2025-05-26T00:00:00.000Z",
"site": "Paris",
"countryAcr": "FRA",
"courtId": 2,
"court": { "id": 2, "name": "Clay" },
"rankId": 1,
"rank": { "id": 1, "name": "Grand Slam" },
"prize": "âŦ53,478,000",
"draw_size": 128,
"entry": 104,
"race": 1,
"tier": null,
"url": "https://www.rolandgarros.com",
"latitude": 48.8472,
"longitude": 2.2494
}
]
Response Properties
| Property | Type | Description |
|---|---|---|
id | integer | Unique ID for this specific year-edition of the tournament. Use as seasonid in all other tournament endpoints. |
link | integer | null | Parent tournament / series ID. All year-editions of the same event share the same link value. The /seasons/{seasonid} endpoint uses this to find all editions of a tournament. |
name | string | Official name for this edition (e.g. "Roland Garros", "Wimbledon"). |
date | datetime | Tournament start date (Monday of the first week) as ISO 8601 UTC string. |
site | string | null | Venue city name (e.g. "Paris", "London"). |
countryAcr | string | 3-letter code of the host country. |
courtId | integer | Foreign key for court surface. Cross-reference with Courts. |
court | object | Embedded court object: { id, name }, e.g. { id: 2, name: "Clay" }. |
rankId | integer | Foreign key for tournament tier. Cross-reference with Ranking Tiers. |
rank | object | Embedded tier object: { id, name }. ATP tiers: Grand Slam, Masters 1000, ATP 500, ATP 250. WTA: WTA 1000, WTA 500, WTA 250. |
prize | string | null | Total tournament prize fund as a formatted string (e.g. "âŦ53,478,000"). Currency varies by tournament. |
draw_size | integer | null | Total players in the main draw (e.g. 128, 96, 64, 32). |
entry | integer | null | Direct acceptance cutoff â the world ranking required to enter the main draw without qualifying. |
race | integer | null | 1 = this tournament counts toward the Year-End Championship race (ATP Finals / WTA Finals qualification). null or 0 = does not count. |
tier | string | null | WTA-specific tier label (e.g. "WTA 1000"). ATP events leave this null â use rank.name instead. |
url | string | null | Official tournament website URL. |
latitude / longitude | number | null | Venue GPS coordinates (double precision). Useful for map-based tournament visualisations. |
Tournament Info
Path Parameters
| Parameter | Type | Description |
|---|---|---|
type Required | string | atp or wta |
seasonid Required | integer | Tournament season ID (âĨ 1). Use the Calendar endpoint to find IDs. |
Query Parameters
| Parameter | Type | Description |
|---|---|---|
include Optional |
string | Comma-separated extras to load. court, rank, and country are always included by default. Additional available options:
include=rating,singlesPrize |
Example Request
curl -G 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/atp/tournament/info/8871' \
-H 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY' \
-H 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com'
Example Response
{
"id": 8871,
"name": "Roland Garros",
"date": "2025-05-26T00:00:00.000Z",
"prize": "âŦ53,478,000",
"singlesPrize": {
"winner": 2300000,
"finalist": 1150000,
"semiFinalist": 575000,
"quarterFinalist": 310000,
"fourth": 175000,
"third": 103000,
"second": 62000,
"first": null,
"qualifying": 20000,
"qualifyingSecond": 12000,
"qualifyingFirst": 8000
},
"rating": {
"winner": 2000,
"finalist": 1200,
"semiFinalist": 720,
"quarterFinalist": 400,
"fourth": 200,
"third": 100,
"second": 50,
"first": 10
}
}
Response Properties â Prize & Points Breakdown
In addition to the base tournament fields (same as Calendar), the Info endpoint includes singlesPrize, doublesMoney, and rating objects. All three share the same PointPrize structure:
| Property | Type | Description |
|---|---|---|
singlesPrize | object | null | Prize money per round for singles (currency matches the prize field). |
doublesMoney | object | null | Prize money per round for doubles. Same structure as singlesPrize. |
rating | object | null | ATP/WTA ranking points awarded per round â not prize money. Same structure, values are points integers. |
PointPrize object fields (used by singlesPrize, doublesMoney, and rating):
| Property | Type | Description |
|---|---|---|
winner | integer | Amount for the tournament champion. |
finalist | integer | Amount for the runner-up (final loser). |
semiFinalist | integer | null | Amount for each semi-final loser. |
quarterFinalist | integer | null | Amount for each quarter-final loser. |
fourth | integer | null | R16 losers (last 16). |
third | integer | null | R32 losers (last 32). |
second | integer | null | R64 losers (last 64). |
first | integer | null | R128 losers (last 128 â only present in Grand Slam 128-draw events). |
qualifying | integer | null | Amount for players losing in the final qualifying round. |
qualifyingSecond | integer | null | Amount for players losing in qualifying round 2. |
qualifyingFirst | integer | null | Amount for players losing in qualifying round 1. |
preQualifying | integer | null | Amount for players eliminated before the main qualifying draw. |
Tournament Seasons
Pass any season ID for a tournament to get all other editions of the same event (linked via the link field). Useful for building a "tournament history" page.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
type Required | string | atp or wta |
seasonid Required | integer | Any season ID for this tournament (âĨ 1) |
Example Request
curl -G 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/atp/tournament/seasons/8871' \
-H 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY' \
-H 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com'
Example Response
{
"data": [
{ "id": 8871, "name": "Roland Garros", "date": "2025-05-26T00:00:00.000Z" },
{ "id": 8201, "name": "Roland Garros", "date": "2024-05-27T00:00:00.000Z" },
{ "id": 7610, "name": "Roland Garros", "date": "2023-05-28T00:00:00.000Z" }
]
}
Response Properties
| Property | Type | Description |
|---|---|---|
id | integer | Season ID for this year-edition. Use as seasonid in all other tournament endpoints. |
name | string | Official tournament name for this edition. |
date | datetime | Tournament start date as ISO 8601 UTC string. |
Past Champions
past-champtions (not past-champions) â use the exact spelling shown.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
type Required | string | atp or wta |
seasonid Required | integer | Tournament season ID (âĨ 1) |
Example Request
curl -G 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/atp/tournament/past-champtions/8871' \
-H 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY' \
-H 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com'
Example Response
{
"data": {
"singles": [
{
"id": 390145,
"date": "2025-06-08T00:00:00.000Z",
"result": "6-3 6-2 6-4",
"roundId": 12,
"player1": { "id": 104925, "name": "Carlos Alcaraz", "countryAcr": "ESP" },
"player2": { "id": 106421, "name": "Jannik Sinner", "countryAcr": "ITA" },
"tournament": { "id": 8871, "name": "Roland Garros", "prize": "âŦ53,478,000" }
}
],
"doubles": [ "..." ]
}
}
Response Properties
| Property | Type | Description |
|---|---|---|
data.singles | array | Finals of the singles draw. Each item is a match record (winner = player1, loser = player2). |
data.doubles | array | Finals of the doubles draw. Player names contain a / separator for pair notation (e.g. "Mektic / Pavic"). |
id | integer | Match record ID. |
date | datetime | Match date as ISO 8601 UTC. |
result | string | Score string, e.g. "6-3 6-2 6-4". |
roundId | integer | Round ID. Finals are always 12 for standard events or 16 for Tour Finals round-robin. |
player1 / player2 | object | Embedded player summary: { id, name, countryAcr }. player1 is always the champion (winner). |
tournament | object | null | Embedded tournament summary including prize field (total purse). |
Tournament Results
Path Parameters
| Parameter | Type | Description |
|---|---|---|
type Required | string | atp or wta |
seasonid Required | integer | Tournament season ID (âĨ 1) |
Example Request
curl -G 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/atp/tournament/results/8871' \
-H 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY' \
-H 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com'
Example Response
[
{
"id": 390145,
"date": "2025-06-08T14:00:00.000Z",
"result": "6-3 6-2 6-4",
"roundId": 1,
"round": { "id": 1, "name": "Final" },
"player1": { "id": 104925, "name": "Carlos Alcaraz" },
"player2": { "id": 106421, "name": "Jannik Sinner" }
}
]
Results are from the historical Game archive â player1 is always the winner, player2 is the loser. The result field contains the score string (set scores, e.g. "6-3 6-2 6-4").
Response Properties
The response object has four arrays, each containing match records in the same structure:
| Property | Type | Description |
|---|---|---|
data.singles | array | All singles main-draw results for the tournament. |
data.doubles | array | All doubles main-draw results. Player names contain / for pair notation. |
data.qualifying | array | Singles qualifying draw results (round IDs 0â3). |
data.doublesQualifying | array | Doubles qualifying draw results. |
Each match record:
| Property | Type | Description |
|---|---|---|
id | integer | Match record ID. |
date | datetime | Match date as ISO 8601 UTC. |
result | string | Score string, e.g. "6-3 6-2 6-4". Each space-separated token is a set score. |
roundId | integer | Round ID (1 = Final, 2 = SF, 3 = QF, etc.). |
round | object | null | { id, name } â present when round is included. |
player1Id / player2Id | integer | Player IDs. player1 is always the winner. |
player1 / player2 | object | { id, name, countryAcr }. |
tournament | object | null | Embedded tournament summary when the tournament relation is loaded. |