TennisExplorer APItennisexplorer.com ↗
Access ATP/WTA tournament schedules, today's match listings, player profiles, ATP rankings, and player search via the TennisExplorer API.
What is the TennisExplorer API?
The TennisExplorer API covers 7 endpoints that expose tennis schedules, match data, player profiles, and live ATP rankings from tennisexplorer.com. The get_today_matches endpoint lets you pull all matches scheduled for today and filter by tour type — ATP singles, WTA singles, ATP doubles, or WTA doubles — while get_atp_rankings returns the current top 50 men's singles rankings with points, country, and a slug for profile lookup.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/b78070b1-9399-4616-9b1a-6b6ce1a05a66/get_weekly_tournaments' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace tennisexplorer-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.tennisexplorer_api import TennisExplorer, TourType
tennis = TennisExplorer()
# Get the weekly tournament schedule
schedule = tennis.tournaments.list_weekly()
for tournament in schedule.atp_main:
print(tournament.name, tournament.match_count)
# List today's ATP singles matches
for match in tennis.matches.list_today(tour_type=TourType.ATP_SINGLE):
print(match.tournament, match.time, match.players)
# Search for a player and get their full profile
for result in tennis.players.search(query="Sinner"):
player = result.details()
print(player.name, player.country, player.birthdate)
# Get ATP rankings and navigate to a player profile
for ranking in tennis.rankings.list_atp():
profile = ranking.player_profile()
print(ranking.rank, ranking.player, ranking.points, profile.country)
Fetch all tournaments scheduled for the current week, categorized by tour (ATP/WTA) and level (Main/Lower). Returns a single schedule object with four arrays. Each tournament entry includes the name, URL, and number of scheduled matches.
No input parameters required.
{
"type": "object",
"fields": {
"atp_main": "array of ATP main-level tournament objects",
"wta_main": "array of WTA main-level tournament objects",
"atp_lower": "array of ATP lower-level tournament objects",
"wta_lower": "array of WTA lower-level tournament objects"
},
"sample": {
"data": {
"atp_main": [
{
"url": "https://www.tennisexplorer.com/stuttgart/2026/atp-men/",
"name": "Stuttgart",
"match_count": 10
}
],
"wta_main": [
{
"url": "https://www.tennisexplorer.com/queen-s-club/2026/wta-women/",
"name": "Queen's Club",
"match_count": 9
}
],
"atp_lower": [
{
"url": "https://www.tennisexplorer.com/ilkley-challenger/2026/atp-men/",
"name": "Ilkley challenger",
"match_count": 12
}
],
"wta_lower": [
{
"url": "https://www.tennisexplorer.com/ilkley-wta/2026/wta-women/",
"name": "Ilkley WTA",
"match_count": 13
}
]
},
"status": "success"
}
}About the TennisExplorer API
Tournament and Match Scheduling
Two schedule-focused endpoints cover weekly tournament coverage. get_weekly_tournaments returns a single object with four arrays — atp_main, wta_main, atp_lower, and wta_lower — each containing tournament name, URL, and match count. get_atp_main_tournaments and get_atp_lower_level_tournaments provide more focused slices: the latter returns up to three ATP lower-level tournaments sorted by ascending match count, which is useful for isolating smaller challenger or ITF events.
Match Listings and Tour Filtering
get_today_matches is the primary endpoint for live scheduling. It returns an array of match objects, each with tournament name, scheduled time, and both player names. The optional tour_type parameter accepts four values — atp-single, wta-single, atp-double, wta-double — letting you narrow results to a specific tour and format. Omitting the parameter returns all matches across all tours.
Player Search and Profiles
search_player accepts a name query (e.g. 'Djokovic' or 'Sinner') and returns matching players with their name, profile URL, and slug. That slug feeds directly into get_player_profile, which returns the player's full name, country, birthdate, and an array of recent_matches — each including tournament, round, and date. The same slug format appears in get_atp_rankings results, so any of the top 50 ranked players can be profiled without a search step.
ATP Rankings
get_atp_rankings returns the current top 50 ATP men's singles rankings. Each item in the items array includes rank, player name, country, ranking points, and the player's slug. Rankings reflect the current standings and do not include historical ranking snapshots or doubles rankings.
The TennisExplorer API is a managed, monitored endpoint for tennisexplorer.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when tennisexplorer.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official tennisexplorer.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Display today's ATP and WTA match schedule in a tennis app, filtered by tour type using the
tour_typeparameter. - Build a weekly tournament calendar showing ATP and WTA events at both main and lower competition levels.
- Look up a player's country, birthdate, and recent match history by combining
search_playerwithget_player_profile. - Render a live ATP top-50 leaderboard with rankings, points, and country flags using
get_atp_rankings. - Identify the smallest ATP events of the week by checking lower-level tournaments sorted by ascending match count.
- Enrich a fantasy tennis application with current ranking points and player slugs for profile drill-down.
- Monitor upcoming matches for a specific player by retrieving their profile slug and checking
recent_matches.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does TennisExplorer have an official developer API?+
What does `get_today_matches` return and how does filtering work?+
tour_type parameter with one of four values — atp-single, wta-single, atp-double, wta-double — to restrict results. Omitting it returns all matches across every tour and format.Does the API cover WTA rankings or only ATP rankings?+
get_atp_rankings. WTA tournament schedules and match data are available through the scheduling and match endpoints. You can fork this API on Parse and revise it to add a WTA rankings endpoint.Does the API return historical match results or tournament draws?+
Are player rankings other than the top 50 accessible?+
get_atp_rankings returns the top 50 players only. Rankings beyond position 50 are not currently included. You can fork this API on Parse and revise it to extend coverage to a deeper ranking range.