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. Invalid years (non-numeric, < 1900, > 2100) return 400 Bad Request. |
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 |
since Optional |
string | ISO date string (YYYY-MM-DD). When provided, only returns tournaments starting on or after this date. Useful for listing active or upcoming tournaments. Example: since=2025-05-01 |
pageSize Optional |
integer | Results per page. Default: 10. Use pageSize=2000 to retrieve the full year in a single call (ATP has ~950 tournaments per year including ITF/Challenger events). |
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
{
"data": [
{
"id": 20340,
"name": "French Open - Paris",
"countryAcr": "FRA",
"date": "2025-05-26T00:00:00.000Z",
"rankId": 4,
"courtId": 2,
"draw_size": null,
"tier": "Grand Slam",
"link": 19383,
"court": { "id": 2, "name": "Clay" },
"round": { "id": 4, "name": "Grand Slam" },
"country": { "acronym": "FRA", "name": "France" }
}
],
"hasNextPage": true
}
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. "French Open - Paris", "Wimbledon"). |
date | datetime | Tournament start date (Monday of the first week) as ISO 8601 UTC string. |
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. |
tier | string | Tournament tier label (e.g. "Grand Slam", "ATP 250", "Future", "Finals"). |
round | object | Embedded round/tier object: { id, name }. For calendar endpoint, this represents the draw type or tier level. |
country | object | Country object with acronym and name. |
Tournament Info
Path Parameters
| Parameter | Type | Description |
|---|---|---|
type Required | string | atp or wta |
seasonid Required | integer | Tournament season ID (β₯ 1). Non-numeric or zero IDs return 400 Bad Request. Invalid IDs return 404 Not Found. |
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/20340' \
-H 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY' \
-H 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com'
Example Response
{
"id": 20340,
"name": "French Open - Paris",
"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/20340' \
-H 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY' \
-H 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com'
Example Response
{
"data": [
{ "id": 20340, "name": "French Open - Paris", "date": "2025-05-26T00:00:00.000Z" },
{ "id": 8201, "name": "French Open - Paris", "date": "2024-05-27T00:00:00.000Z" },
{ "id": 7610, "name": "French Open - Paris", "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/20340' \
-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": 68074, "name": "Carlos Alcaraz", "countryAcr": "ESP" },
"player2": { "id": 47275, "name": "Jannik Sinner", "countryAcr": "ITA" },
"tournament": { "id": 20340, "name": "French Open - Paris", "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/20340' \
-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": 68074, "name": "Carlos Alcaraz" },
"player2": { "id": 47275, "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. |
result_type | string | null | Structured match outcome: completed, retired, walkover, default, or null if result is empty. |
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. |