API Reference

Tours Calendar (Men & Women)

Tournament-level schedule and calendar filters. Use this category for which events are on the calendar โ€” not for individual match start times (see Upcoming Matches).

โ„น๏ธ
Distinct from Upcoming Matches

Tours Calendar (Men & Women) returns tournaments (start/end windows, level, surface). Upcoming Matches returns individual fixtures with players and start times.

Tournament Calendar

GET/tennis/v2/{atp|wta}/tournament/calendar/{year}
This example uses atp. Use wtafor the women's dataset.Returns all tournaments scheduled in a given calendar year.

Path Parameter

ParameterRequiredTypeDescription
atp|wtaYesstring
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.
yearYesinteger
Year Value(2026)

Query Parameter

ParameterRequiredTypeDescription
includeNostring
Comma-separated extras to load. court, rank, and country are always included by default. Additional available options:
  • rating โ€” ranking points awarded per round (winner, finalist, SF, QF, etc.)
  • singlesPrize โ€” prize money per round in USD (ATP only)
Example: include=rating,singlesPrize
filterNostring
Semicolon-separated filters in Key:value format. Available filters:
  • TourRank:4 โ€” rankId from GET /ranking. Live: 1 Challenger/ITF > $10K, 2 Main tour (ATP 250 and 500), 3 Masters, 4 Grand Slam
  • TourCourt:1, 2 โ€” filter by court surface ID(s)
Example: filter=TourRank:4;TourCourt:2
sinceNostring
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
pageSizeNointeger
Results per page. Default: 10. Maximum 500. Walk pages with pageNo until hasNextPage is false โ€” do not request thousands of rows in one call.
pageNoNointeger
Page number, 1-indexed. Default: 1. Example: pageNo=1. Use hasNextPage in the response to check for more pages.
Example Request: CURL
curl --request GET \
	--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/atp/tournament/calendar/2026' \
	--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com' \
	--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY'

Response Properties

FieldTypeDescription
dataarrayThe page of results. An empty array with HTTP 200 means the request was valid and nothing matched that date, filter, or page.
pageNointegerCurrent page, starting at 1. Also returned as page.
pageSizeintegerItems requested for this page. Also returned as limit. Core maximum is 500.
hasNextPagebooleantrue if another page exists. Stop when this is false or data is empty.
idintegerSeason ID for this yearโ€™s edition. Use it on /tournament/info/{season_id}.
namestringTournament name. URL-encode this exact string on advanced draw/seed routes.
datestringStart date as ISO-8601.
tier / rankIdstringtier is the display label (e.g. ATP 250). rankId is the integer from GET /ranking โ€” Grand Slam is 4, not 1.
court / courtIdobjectSurface object (id, name) and its ID.
roundobjectTournament level object (id, name), e.g. Grand Slam, Masters 1000.
countryobjectHost country: acronym (3-letter code) and name.
linkintegerTournament link ID shared across editions (the event, not the season).
data[].court.idnumberCourt-surface ID.
data[].court.namestringCourt-surface name, e.g. Hard, Clay, Grass, I.hard.
data[].round.idnumberRound ID.
data[].round.namestringRound label, e.g. "1/4", "Final".
data[].country.acronymstringThree-letter country code.
data[].country.namestringCountry name.
pagenumberCurrent page number (1-based).
limitnumberItems per page.

Active Tournaments

GET/tennis/v2/calendar/active
Returns tournaments active for the requested date (or date range). There is no stored end date โ€” a tournament is active when its start date falls in the tennis week (Mondayโ€“Sunday) containing that day, matching how Matchstat groups the calendar. If no date is supplied, uses today (UTC). Does not mean a match is live.
0

Query Parameter

ParameterRequiredTypeDescription
tourNostring
Restrict by tour: atp, wta, or both (default; all is accepted as the same). Any other value returns 400. Example: tour=atp.
levelNostring
Tournament level name from /calendar/{tour}/filters. Example: level=Grand Slam.
surfaceNostring
Court surface name (comma-separated). Example: surface=Hard,Clay.
countryNostring
Host country 3-letter code. Example: country=USA.
dateNostring
Anchor day YYYY-MM-DD (defaults to today). The response covers the tennis week that contains this day. Example: date=2026-09-25.
startDateNostring
Range start YYYY-MM-DD. Use with endDate for custom windows (e.g. this week). Example: startDate=2026-09-21.
endDateNostring
Range end YYYY-MM-DD. Example: endDate=2026-09-27.
qualifyingNoboolean
Default no: main-draw / main-week events only (rows whose name contains Qualifying are omitted). Set qualifying=yes to also return qualifying event names and IDs. Accepts yes/no, true/false, 1/0. qualify is accepted as the same parameter (the response field is qualify).
Example Request: CURL
curl --request GET \
	--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/calendar/active?tour=atp' \
	--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com' \
	--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY'

Response Properties

FieldTypeDescription
dataarrayTournaments whose start date falls in the resolved week or range.
weekStart / weekEndstringTennis week (Monโ€“Sun) for a single-date query.
rangeStart / rangeEndstringResolved filter window applied to tournament start dates.
qualifybooleanWhether Qualifying rows were included (qualifying=yes).
countintegerNumber of tournaments in data.
idintegerSeason ID for this yearโ€™s edition. Use it on /tournament/info/{season_id}.
namestringTournament name. URL-encode this exact string on advanced draw/seed routes.
tourstringatp or wta.
date / startDatestringStart date as ISO-8601.
countryAcrstringHost country 3-letter code.
prizestringPrize-money label when published.
court / courtIdobjectSurface object (id, name) and its ID.
rank / rankIdobjectTournament level object (id, name) and its ID โ€” Grand Slam is 4.
data[].court.idnumberCourt-surface ID.
data[].court.namestringCourt-surface name, e.g. Hard, Clay, Grass, I.hard.
data[].rank.idnumberTournament level ID (TourRank).
data[].rank.namestringTournament level name.

Tournament Calendar Filter Options

GET/tennis/v2/calendar/{atp|wta}/filters
This example uses atp. Use wtafor the women's dataset.Returns all available filter options for the calendar endpoints (Tournament Calendar with Filters), including supported years, tournament levels, and court surfaces.

Path Parameter

ParameterRequiredTypeDescription
atp|wtaYesstring
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.
Example Request: CURL
curl --request GET \
	--url 'https://tennis-api-atp-wta-itf.p.rapidapi.com/tennis/v2/calendar/atp/filters' \
	--header 'X-RapidAPI-Host: tennis-api-atp-wta-itf.p.rapidapi.com' \
	--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY'

Response Properties

FieldTypeDescription
yearsarrayAvailable season years (newest first).
levelsarrayTournament-level filter options.
levels[]objectOne item of `levels`; its fields are listed below.
levels[].idnumberTournament level ID (TourRank).
levels[].namestringTournament level name.
surfacesarrayCourt-surface filter options or per-surface rows.
surfaces[]objectOne item of `surfaces`; its fields are listed below.
surfaces[].idnumberCourt-surface ID.
surfaces[].namestringCourt-surface name.
โ„น๏ธ
Grand Slam Champions

Historical Grand Slam winner rows live under Results & Historical Data โ†’ Grand Slam Champions.