TennisExplorer Scraper — ATP/WTA Results, Fixtures & Odds
Pricing
from $0.003 / match
TennisExplorer Scraper — ATP/WTA Results, Fixtures & Odds
Scrape tennis match results and upcoming fixtures from TennisExplorer: ATP, WTA, Challenger and ITF singles and doubles with set scores, tiebreaks, winners, betting odds, H2H, rankings, surface and round. Any date range. Export CSV, JSON or Excel.
Pricing
from $0.003 / match
Rating
0.0
(0)
Developer
hiper soft
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
4 days ago
Last modified
Categories
Share
TennisExplorer Scraper — ATP & WTA Results, Fixtures, Odds and H2H
TennisExplorer Scraper exports tennis match results and upcoming fixtures from TennisExplorer for any date or date range. It covers ATP, WTA, Challenger and ITF singles and doubles. Each match row includes set-by-set scores with tiebreaks, the winner, closing betting odds, tournament, country and start time. You can also turn on match details to add round, surface, player rankings, age, height, playing hand, head-to-head record and odds from every bookmaker, both opening and current. Export to CSV, Excel, JSON or XML for betting models, backtesting, tennis analytics and fantasy sports.
What does TennisExplorer Scraper do?
TennisExplorer Scraper turns TennisExplorer's daily results and match pages into a clean, flat tennis dataset:
- 🎾 Match results for any day, week, month or season, covering every ATP, WTA, Challenger and ITF match listed.
- 📅 Upcoming matches with scheduled start times, pre-match odds and how many times the players have met.
- 🧮 Set scores with tiebreaks, sets won and the winner, ready for modelling.
- 💰 Betting odds: the main home/away odds on every row, plus per-bookmaker opening and current odds with match details.
- 🧑 Player details: full name, singles and doubles ranking, birthdate, height, weight, playing hand and year turned pro.
- 🔁 Head-to-head record and round and surface for every match.
- 🔎 Filters by tournament name and player name.
What tennis data can you scrape?
| Match data | With match details |
|---|---|
| Match ID and link | Round (final, semifinal, quarterfinal…) |
| Date, local time and UTC start time | Surface (hard, clay, grass, indoors) |
| Match type (men's/women's singles/doubles) | Full player names |
| Tournament name, link and country | Singles and doubles rankings |
| Player 1 and player 2, profile links and seeds | Birthdate, height, weight |
| Winner | Plays (right/left) and turned pro |
| Sets won by each player | Head-to-head wins for each player |
| Set-by-set games and tiebreak points | Odds from every bookmaker: opening and current |
Score string, e.g. 7-6(4), 6-3 | Highlights video link |
| Home/away betting odds | |
| Status (finished, scheduled…) and H2H matches count |
Use cases for tennis data
- Betting models and backtesting: years of results with closing and opening odds for ROI, value-bet and market-movement studies.
- Tennis analytics: serve win rates by surface, upset frequency by ranking gap, tiebreak performance and more.
- Fantasy tennis and tipping: upcoming schedules with odds and head-to-head context.
- Sports media and apps: feed daily results and fixtures into websites, newsletters and bots.
- Machine learning datasets: clean labeled match outcomes with player features.
- Odds comparison: compare bookmaker prices for every match.
How to scrape tennis results from TennisExplorer
- Click Try for free to open TennisExplorer Scraper in Apify Console.
- Choose Match results or Upcoming matches.
- Select the match types (men's/women's, singles/doubles) and a start date and optional end date.
- Optionally filter by tournament or player, and switch on Include match details.
- Click Start, then download your tennis dataset as CSV, Excel or JSON.
Input
Example input
{"mode": "results","matchTypes": ["atp-single", "wta-single"],"startDate": "2026-09-01","endDate": "2026-09-30","tournamentFilter": "","playerFilter": "","includeMatchDetails": true,"maxMatches": 0}
| Field | Description |
|---|---|
| What to scrape | results (finished matches) or upcoming (scheduled matches). |
| Match types | Men's singles, women's singles, men's doubles, women's doubles. ATP/WTA lists include Challenger and ITF events. |
| Start date / End date | The date range. Leave the end date empty for a single day. |
| Tournament contains | Only matches from tournaments whose name contains this text. |
| Player contains | Only matches involving a player whose name contains this text. |
| Include match details | Adds round, surface, rankings, player bio, head-to-head record and per-bookmaker odds. |
| Max matches | Stop after this many matches (0 = no limit). |
| Proxy configuration | Optional, not needed for normal use. |
Scrape a whole tournament or season
Set a date range covering the event and put its name in Tournament contains, for example Wimbledon with dates from 2026-06-29 to 2026-07-12. To get a whole season, set January 1 to December 31.
Get tomorrow's matches every day
Choose Upcoming matches and leave the dates empty, then create an Apify schedule to run it every morning.
Output
Match result example (with match details)
{"matchId": "3338963","matchUrl": "https://www.tennisexplorer.com/match-detail/?id=3338963","matchType": "atp-single","date": "2026-10-04","time": "13:10","startTimeUtc": "2026-10-04T11:10:00.000Z","status": "finished","tournament": "Beijing","tournamentCountry": "CN","player1": "Djokovic N.","player1Seed": "6","player2": "Zverev A.","player2Seed": "1","winner": "Djokovic N.","setsPlayer1": 2,"setsPlayer2": 1,"score": "4-6, 6-4, 6-4","sets": [{ "set": 1, "player1": 4, "player2": 6, "tiebreak": null },{ "set": 2, "player1": 6, "player2": 4, "tiebreak": null },{ "set": 3, "player1": 6, "player2": 4, "tiebreak": null }],"oddsPlayer1": 3.16,"oddsPlayer2": 1.35,"round": "quarterfinal","surface": "hard","player1Details": { "fullName": "Djokovic Novak", "ranking": 11, "birthdate": "22. 5. 1987", "heightCm": 187, "weightKg": 80, "plays": "right", "turnedPro": "2003" },"player2Details": { "fullName": "Zverev Alexander", "ranking": 2, "birthdate": "20. 4. 1997", "heightCm": 198, "weightKg": 90, "plays": "right" },"h2hPlayer1Wins": 11,"h2hPlayer2Wins": 7,"bookmakerOdds": [{ "bookmaker": "10Bet", "player1": 3.1, "player2": 1.33, "player1Opening": 2.63, "player2Opening": 1.45 }]}
Output schema
| Field | Type | Description |
|---|---|---|
matchId | string | TennisExplorer match ID. |
matchUrl | string (URL) | Match page. |
matchType | string | atp-single, wta-single, atp-double or wta-double. |
date | string | Match date (YYYY-MM-DD). |
time | string | Local start time (Central European time). |
startTimeUtc | string (ISO date) | Start time in UTC. |
status | string | finished, incomplete, not-played, scheduled or live-or-finished. |
tournament | string | Tournament name. |
tournamentUrl | string (URL) | Tournament page. |
tournamentCountry | string | Host country code. |
player1, player2 | string | Player names (doubles teams as "A / B"). |
player1Url, player2Url | string (URL) | Player profile pages. |
player1Seed, player2Seed | string | Seed or entry status (e.g. 1, Q, WC). |
winner | string | Winner's name. |
setsPlayer1, setsPlayer2 | integer | Sets won. |
score | string | Score string with tiebreaks, e.g. 7-6(4), 6-3. |
sets | array | Per-set games for each player and tiebreak points. |
oddsPlayer1, oddsPlayer2 | number | Main decimal betting odds. |
h2hMatches | integer | Previous meetings (upcoming matches). |
round | string | Round (with match details). |
surface | string | Court surface (with match details). |
player1Details, player2Details | object | Full name, rankings, birthdate, height, weight, plays, turned pro. |
h2hPlayer1Wins, h2hPlayer2Wins | integer | Head-to-head record. |
bookmakerOdds | array | Per-bookmaker current and opening odds. |
highlightsUrl | string (URL) | Match highlights video, if available. |
scrapedAt | string (ISO date) | When the row was collected. |
How much does it cost to scrape TennisExplorer?
TennisExplorer Scraper uses pay-per-match pricing: a small fixed price for each match row. Higher Apify subscription plans get an automatic discount. See the Pricing tab for the exact price per match. A typical day of ATP and WTA singles has about 300 to 600 matches.
More sports data
- Flashscore Scraper: live scores, results and fixtures across sports.
- ESPN Sports Scraper: scores, schedules and standings.
- UFCStats Scraper: UFC fights, fighters and stats.
- TheSportsDB Scraper: teams, players and events.
FAQ
Which tournaments are covered? Everything TennisExplorer lists: Grand Slams, ATP and WTA tour events, Challengers, WTA 125 and ITF tournaments.
How far back can I go? TennisExplorer has results going back many years. Set any start and end date.
Are the odds opening or closing odds?
The main oddsPlayer1/oddsPlayer2 columns are TennisExplorer's headline odds for the match. With match details on, bookmakerOdds gives each bookmaker's current and opening odds.
What time zone are the times in?
time is shown as on TennisExplorer (Central European time), and startTimeUtc gives the same moment in UTC.
Can I get doubles matches? Yes. Select men's or women's doubles in Match types.
How do I get only one player's matches?
Enter their surname in Player contains, for example Sinner, and set the date range.
What formats can I export? CSV, Excel, JSON, XML, HTML and RSS, or read the results through the Apify API.
Can I integrate TennisExplorer Scraper with other apps? TennisExplorer Scraper can be connected with almost any cloud service or web app thanks to integrations on the Apify platform. It works with Make, Zapier, Slack, Airbyte, GitHub, Google Drive and many more, plus the Apify API, JS/Python clients and MCP. Or use webhooks to trigger an action whenever a run finishes.
Is it legal to scrape TennisExplorer? The scraper only collects publicly available sports results. You are responsible for using the data in line with TennisExplorer's terms.
Related Actors
Notes
Original clean-room implementation. Returns only public data; you are responsible for compliance with TennisExplorer's terms. Not affiliated with TennisExplorer.