API Reference
Tournaments & Draws
The Tournaments module provides tournament metadata, season history, past champions, results, and a full year calendar for ATP and WTA events.
Core tournament routes take a seasonid โ one year-edition of an event (Wimbledon 2025 is a different ID from Wimbledon 2024). Discover IDs from the Calendar endpoint. Draw and seed routes use the exact tournament name from the calendar (URL-encoded), not that season ID.
Core past champions is /tournament/past-champtions/{season_id} โ use that exact spelling.
rankId is the integer from GET /ranking. Grand Slam is 4. Challenger/ITF > $10K is 1. ATP 250 and ATP 500 both use rankId 2 (Main tour); the calendar tier string is the marketing label. Use filter=TourRank:4 for slams โ not TourRank:1.
Endpoint Summary
|
|
|
|
|
|
Tournament Calendar
/tennis/v2/atp/tournament/calendar/2025atp. Use wtafor the women's dataset.Returns all tournaments scheduled in a given calendar year.Path Parameter
| Parameter | Required | Type | Description |
|---|---|---|---|
atp|wta | Yes | string | Dataset to query. atp = men's tennis across all supported levels, including Grand Slams, ATP Tour, Challengers and ITF. wta = women's tennis across all supported levels, including Grand Slams, WTA Tour and ITF. There is no separate itf value. |
year | Yes | integer | Year Value(2026) |
Query Parameter
| Parameter | Required | Type | Description |
|---|---|---|---|
include | No | string | Comma-separated extras to load. court, rank, and country are always included by default. Additional available options:
include=rating,singlesPrize |
filter | No | string | Semicolon-separated filters in Key:value format. Available filters:
filter=TourRank:4;TourCourt:2 |
since | No | 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 | No | integer | Results per page. Default: 10. Maximum 500. Walk pages with pageNo until hasNextPage is false โ do not request thousands of rows in one call. |
pageNo | No | integer | Page number, 1-indexed. Default: 1. Example: pageNo=1. Use hasNextPage in the response to check for more pages. |
Response Properties
| Field | Type | Description |
|---|---|---|
data | array | The page of results. An empty array with HTTP 200 means the request was valid and nothing matched that date, filter, or page. |
pageNo | integer | Current page, starting at 1. Also returned as page. |
pageSize | integer | Items requested for this page. Also returned as limit. Core maximum is 500. |
hasNextPage | boolean | true if another page exists. Stop when this is false or data is empty. |
id | integer | Season ID for this yearโs edition. Use it on /tournament/info/{season_id}. |
name | string | Tournament name. URL-encode this exact string on advanced draw/seed routes. |
date | string | Start date as ISO-8601. |
tier / rankId | string | tier is the display label (e.g. ATP 250). rankId is the integer from GET /ranking โ Grand Slam is 4, not 1. |
court / courtId | object | Surface object (id, name) and its ID. |
country / countryAcr | object | Host country object and 3-letter code. |
Tournament Details by Season ID
/tennis/v2/atp/tournament/info/20340?include=singlesPrizeatp. Use wtafor the women's dataset.Returns details for one tournament season ID (this yearโs edition). Prize-money breakdown is added with include=singlesPrize.Path Parameter
| Parameter | Required | Type | Description |
|---|---|---|---|
atp|wta | Yes | string | Dataset to query. atp = men's tennis across all supported levels, including Grand Slams, ATP Tour, Challengers and ITF. wta = women's tennis across all supported levels, including Grand Slams, WTA Tour and ITF. There is no separate itf value. |
season_id | Yes | number | Tournament season ID (โฅ 1). Non-numeric or zero IDs return 400 Bad Request. Invalid IDs return 404 Not Found. |
Query Parameter
| Parameter | Required | Type | Description |
|---|---|---|---|
include | No | string | Comma-separated extras to load. court, rank, and country are always included by default. Additional available options:
include=rating,singlesPrize |
Response Properties
| Field | Type | Description |
|---|---|---|
id | integer | Season ID for this yearโs edition. Use it on /tournament/info/{season_id}. |
name | string | Tournament name. URL-encode this exact string on advanced draw/seed routes. |
date | string | Start date as ISO-8601. |
tier / rankId | string | tier is the display label (e.g. ATP 250). rankId is the integer from GET /ranking โ Grand Slam is 4, not 1. |
court / courtId | object | Surface object (id, name) and its ID. |
country / countryAcr | object | Host country object and 3-letter code. |
singlesPrize | object | USD prize money per round when include=singlesPrize (ATP). |
rating | object | Ranking points per round when include=rating. |
Tournament Seasons
/tennis/v2/atp/tournament/seasons/20340atp. Use wtafor the women's dataset.Returns all yearly editions (seasons) of the same tournament event.Path Parameter
| Parameter | Required | Type | Description |
|---|---|---|---|
atp|wta | Yes | string | Dataset to query. atp = men's tennis across all supported levels, including Grand Slams, ATP Tour, Challengers and ITF. wta = women's tennis across all supported levels, including Grand Slams, WTA Tour and ITF. There is no separate itf value. |
season_id | Yes | number | Tournament season ID (โฅ 1). Non-numeric or zero IDs return 400 Bad Request. Invalid IDs return 404 Not Found. |
Past Champions by Season ID
/tennis/v2/atp/tournament/past-champtions/20340atp. Use wtafor the women's dataset.Returns a list of past winners (champions) for a recurring tournament.The core route is spelled past-champtions โ that is the live path, not a typo in these docs. There is no core /past-champions/ alias.
Path Parameter
| Parameter | Required | Type | Description |
|---|---|---|---|
atp|wta | Yes | string | Dataset to query. atp = men's tennis across all supported levels, including Grand Slams, ATP Tour, Challengers and ITF. wta = women's tennis across all supported levels, including Grand Slams, WTA Tour and ITF. There is no separate itf value. |
season_id | Yes | number | Tournament season ID (โฅ 1). Non-numeric or zero IDs return 400 Bad Request. Invalid IDs return 404 Not Found. |
Tournament Results
/tennis/v2/atp/tournament/results/20340atp. Use wtafor the women's dataset.Returns the full match results draw for a tournament season.Path Parameter
| Parameter | Required | Type | Description |
|---|---|---|---|
atp|wta | Yes | string | Dataset to query. atp = men's tennis across all supported levels, including Grand Slams, ATP Tour, Challengers and ITF. wta = women's tennis across all supported levels, including Grand Slams, WTA Tour and ITF. There is no separate itf value. |
season_id | Yes | number | Tournament season ID (โฅ 1). Non-numeric or zero IDs return 400 Bad Request. Invalid IDs return 404 Not Found. |
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").
Extra tournament endpoints
These are not replacements for core calendar, info, seasons, past champions, or results.
Tournament Available Years
/tennis/v2/tournament/atp/EFG%20Swiss%20Open%20-%20Gstaadatp. Use wtafor the women's dataset.Returns all available years for which historical data exists for a specific tournament.Path Parameter
| Parameter | Required | Type | Description |
|---|---|---|---|
atp|wta | Yes | string | Dataset to query. atp = men's tennis across all supported levels, including Grand Slams, ATP Tour, Challengers and ITF. wta = women's tennis across all supported levels, including Grand Slams, WTA Tour and ITF. There is no separate itf value. |
tournament | Yes | string | Tournament name ("EFG%20Swiss%20Open%20-%20Gstaad") |
Tournament Draw
/tennis/v2/tournament/atp/EFG%20Swiss%20Open%20-%20Gstaad/2026/draws?includeAll=trueatp. Use wtafor the women's dataset.Returns the complete tournament draw for the selected event, including all rounds, matchups, player information, seeds, scores, and match status. This endpoint can be used to display the tournament bracket from the opening round through the final.Path Parameter
| Parameter | Required | Type | Description |
|---|---|---|---|
atp|wta | Yes | string | Dataset to query. atp = men's tennis across all supported levels, including Grand Slams, ATP Tour, Challengers and ITF. wta = women's tennis across all supported levels, including Grand Slams, WTA Tour and ITF. There is no separate itf value. |
tournament | Yes | string | Tournament name ("EFG%20Swiss%20Open%20-%20Gstaad") |
year | Yes | integer | Year Value(2026) |
Query Parameter
| Parameter | Required | Type | Description |
|---|---|---|---|
includeAll | No | boolean | Include Challenger/ITF and full history where supported. Example: includeAll=true |
Tournament Seeds by Name and Year
/tennis/v2/tournament/atp/Rennes%20Challenger/2026/seeds?includeAll=trueatp. Use wtafor the women's dataset.Returns the list of seeded players for a specific tournament. Each record includes the player's name and their official seed number in the tournament draw.Path Parameter
| Parameter | Required | Type | Description |
|---|---|---|---|
atp|wta | Yes | string | Dataset to query. atp = men's tennis across all supported levels, including Grand Slams, ATP Tour, Challengers and ITF. wta = women's tennis across all supported levels, including Grand Slams, WTA Tour and ITF. There is no separate itf value. |
tournament | Yes | string | Tournament name ("EFG%20Swiss%20Open%20-%20Gstaad") |
year | Yes | integer | Year Value(2026) |
Tournament Most Victories
/tennis/v2/tournament/atp/EFG%20Swiss%20Open%20-%20Gstaad/most-victoriesatp. Use wtafor the women's dataset.Returns the list of players with the most wins at a given tournament across all yearsPath Parameter
| Parameter | Required | Type | Description |
|---|---|---|---|
atp|wta | Yes | string | Dataset to query. atp = men's tennis across all supported levels, including Grand Slams, ATP Tour, Challengers and ITF. wta = women's tennis across all supported levels, including Grand Slams, WTA Tour and ITF. There is no separate itf value. |
tournament | Yes | string | Tournament name ("EFG%20Swiss%20Open%20-%20Gstaad") |
Current Tournament Seeds
/tennis/v2/tournament/atp/Rennes%20Challenger/seedsatp. Use wtafor the women's dataset.Returns the current seedings for a tournament (omit year for current edition)Path Parameter
| Parameter | Required | Type | Description |
|---|---|---|---|
atp|wta | Yes | string | Dataset to query. atp = men's tennis across all supported levels, including Grand Slams, ATP Tour, Challengers and ITF. wta = women's tennis across all supported levels, including Grand Slams, WTA Tour and ITF. There is no separate itf value. |
tournament | Yes | string | Tournament name ("EFG%20Swiss%20Open%20-%20Gstaad") |
Tournament Ranking Points
/tennis/v2/tournament/atp/EFG%20Swiss%20Open%20-%20Gstaad/2026/pointsatp. Use wtafor the women's dataset.Returns the ranking points awarded per round in a given tournament and year.Path Parameter
| Parameter | Required | Type | Description |
|---|---|---|---|
atp|wta | Yes | string | Dataset to query. atp = men's tennis across all supported levels, including Grand Slams, ATP Tour, Challengers and ITF. wta = women's tennis across all supported levels, including Grand Slams, WTA Tour and ITF. There is no separate itf value. |
tournament | Yes | string | Tournament name ("EFG%20Swiss%20Open%20-%20Gstaad") |
year | Yes | integer | Year Value(2026) |
Response Properties
| Field | Type | Description |
|---|---|---|
winner / finalist / semiFinalist / quarterFinalist / fourth / third / second / first | object | points and prize for that round. |
qualifying / qualifyingSecond / qualifyingFirst / preQualifying | object | Qualifying-round points and prize. |