482 scrapers live47.7K runs1,562 usersRebuilt in the last 30 days: 482 of 482

Scrapers / Finance & Crypto

TennisExplorer Scraper logo

TennisExplorer Scraper

hipersoft/tennisexplorer-scraper

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.

Total users

1

Monthly users

0

Total runs

47

Per match

$0.006

Last rebuilt

Oct 26, 2026

Overview

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

  1. Click Try for free to open TennisExplorer Scraper in Apify Console.
  2. Choose Match results or Upcoming matches.
  3. Select the match types (men's/women's, singles/doubles) and a start date and optional end date.
  4. Optionally filter by tournament or player, and switch on Include match details.
  5. 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

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.

Notes

Original clean-room implementation. Returns only public data; you are responsible for compliance with TennisExplorer's terms. Not affiliated with TennisExplorer.

Input

FieldTypeDescription
mode
What to scrape
string · results, upcomingFinished match results or upcoming fixtures (with pre-match odds and head-to-head count).
Default: "results"
matchTypes
Match types
arrayWhich tours to include. ATP and WTA lists also cover Challenger and ITF events.
Default: ["atp-single", "wta-single"]
startDate
Start date
stringFirst day to scrape (YYYY-MM-DD). Defaults to yesterday for results and today for upcoming matches.
endDate
End date
stringLast day to scrape (YYYY-MM-DD). Leave empty to scrape only the start date. Long ranges such as a whole season are supported.
tournamentFilter
Tournament contains
stringOnly keep matches whose tournament name contains this text, e.g. Beijing, Wimbledon, Challenger.
playerFilter
Player contains
stringOnly keep matches where a player name contains this text, e.g. Djokovic.
includeMatchDetails
Include match details
booleanAlso open each match page to add round, surface, full player names, rankings, age, height, weight, playing hand, head-to-head record, highlights and odds from every bookmaker (current and opening). Slower.
Default: false
maxMatches
Max matches
integerStop after this many matches. 0 means no limit.
Default: 0
proxyConfiguration
Proxy configuration
objectNot required. Use a proxy only for very large date ranges if you run into rate limits.
Default: {"useApifyProxy": false}

API

curl -X POST "https://api.apify.com/v2/acts/hipersoft~tennisexplorer-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "mode": "results",
  "matchTypes": [
    "atp-single",
    "wta-single"
  ]
}'

Pricing

EventPricePaid plans from
Match
One tennis match row in the dataset.
$0.006$0.003

You pay only for what the run returns. Set a maximum cost per run and it stops cleanly at that limit.

Related scrapers

Google Autocomplete Keyword Scraper

Generate long-tail keyword ideas from Google Autocomplete: alphabet-soup, question and preposition expansions with relevance scores. Fast SEO keyword research, per country and language. Clean, no setup.

118 runs · 7 users · $0.0013 / keyword scraped

ESPN Sports Scraper

Scrape live and past scores, teams, standings and news across NBA, NFL, MLB, NHL, EPL, La Liga and more via ESPN's public data. For sports analytics, betting and fantasy. No setup.

111 runs · 1 users · $0.001 / item scraped

StockTwits Scraper

Scrape StockTwits messages and retail Bullish/Bearish sentiment for any ticker in bulk (stocks, ETFs, crypto, forex). One row per message with body, author, timestamp, sentiment, likes and replies. Fast, reliable and account-free.

73 runs · 2 users · $0.0008 / message scraped

JWT Decoder & Verifier

Decode JWT header and payload, and optionally verify the signature and expiry against a secret or JWKS. Debug and audit auth tokens in bulk.

70 runs · 2 users · $0.001 / jwt processed

Exchange Rates Scraper

Fetch live and historical foreign-exchange rates published by the European Central Bank: any base currency, any target symbols, plus full time series over a date range. Clean structured JSON, CSV or Excel for finance, invoicing, dashboards and n8n.

64 runs · 2 users · $0.0005 / rate scraped

Congress Stock Trades Scraper

Scrape U.S. Congress members' stock trades & financial disclosures: member, ticker, buy/sell, amount range and dates. One clean row per trade or filing as JSON, CSV or Excel.

62 runs · 1 users · $0.003 / item scraped
Need a source that isn't here?

Send the site and the fields. We build it and you get it first.

Request a build