TennisExplorer Scraper: Tennis Results & Betting Odds avatar

TennisExplorer Scraper: Tennis Results & Betting Odds

Pricing

from $1.00 / 1,000 dataset items

Go to Apify Store
TennisExplorer Scraper: Tennis Results & Betting Odds

TennisExplorer Scraper: Tennis Results & Betting Odds

Tennis results and betting odds from TennisExplorer: every ATP, WTA, Challenger, ITF and UTR match since 2005 with set scores, retired/walkover status and closing odds. Optional per-bookmaker odds with opening price and line movement, H2H, fixtures, player seasons, rankings.

Pricing

from $1.00 / 1,000 dataset items

Rating

0.0

(0)

Developer

axly

axly

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Get every professional tennis match from TennisExplorer: ATP, WTA, Challenger, ITF and UTR, singles and doubles, back to 2005, with set and tiebreak scores, retired/walkover status, UTC start times and the average closing odds. Turn on match details to add odds from ~15 bookmakers for match winner, over/under, Asian handicap and correct score, each with its opening price and full line movement, plus head-to-head and player bios.

Built for tennis bettors and modellers who need historical results and odds for backtesting, tipster and odds-comparison sites, and sports-data analysts. One run covers a full date range; no proxy or login needed.

What you get

FieldDescription
matchId, matchUrlTennisExplorer match id and link
date, startTimeLocal, startTimeUtcDay (Central European calendar, as on the site), local time and UTC start
matchTypeatp-single, wta-single, atp-double, wta-double
tournamentname, slug, url, year, countryCode, level (tour, challenger, itf, utr)
player1, player2name, slug, url, seed (doubles: a list of two players)
statusfinished, retired, walkover, scheduled
winner1 or 2
setsWon, sets, scoreSets won, games per set with tiebreak points, score text 7-6(5), 6-4
oddsAverage odds for player 1 / player 2 over the listed bookmakers (closing odds for finished matches)
h2hHead-to-head record before the match (fixtures)

With Include bookmaker odds history, H2H and player bios:

FieldDescription
round, surfacee.g. quarterfinal, clay / hard / indoors / grass
player1/2.rank, birthdate, heightCm, weightKg, plays, fullNamePlayer bio at match time
h2hRecordWins each and the list of meetings with scores, surface and round (includes this match once it is played)
bookmakerOdds.matchWinner[]Per bookmaker: current odds, opening, openingTime, lastChangeTime, trend, best, history[] (every move with UTC time)
bookmakerOdds.overUnder[]Sets and games totals lines, over/under odds per bookmaker
bookmakerOdds.asianHandicap[]Set and game handicaps per bookmaker
bookmakerOdds.correctScore[]Correct score odds per bookmaker
bookmakerOdds.summaryNumber of bookmakers, average, best and average opening odds per player

Players mode returns one row per match of a player's season (date, tournament, surface, round, opponent, result, score, odds for player and opponent) plus the player's profile (country, height, weight, birthdate, current and highest rank). Rankings mode returns rank, movement, player, country and points for ATP/WTA singles, doubles or race, for any published ranking date back to 1998.

Use cases

  • Betting model backtests: years of results with closing odds in one dataset; compare opening vs closing prices to measure line movement and closing-line value.
  • Odds monitoring: schedule fixtures every hour to track pre-match line moves per bookmaker.
  • Tipster and media sites: daily results, upcoming matches with H2H and odds.
  • Player and surface research: full season match lists per player with surface and round.
  • Rankings history: weekly ATP/WTA ranking snapshots for trend analysis.

Input

FieldDefaultNotes
modematchesmatches (results by date range), fixtures (upcoming), players, rankings
startDate, endDateyesterdayYYYY-MM-DD or today, yesterday, tomorrow, -7, +1; up to 366 days per run
matchTypesATP + WTA singlesadd doubles if needed
levelsalltour, challenger, itf, utr
statusesallfinished, retired, walkover, scheduled
onlyWithOddsfalseskip matches without odds
tournaments—name filter, e.g. Wimbledon
players—names, slugs or URLs: filter (results/fixtures) or source (players mode)
seasonscurrentplayers mode, e.g. ["2024", "2025"]
includeMatchDetailsfalsebookmaker odds history, H2H, bios (one extra page per match)
oddsHistorytruefalse keeps only current + opening odds per bookmaker
rankingTours, rankingKind, rankingDate, maxRankATP+WTA, singles, latest, 100rankings mode
maxItems500cap on rows

Example: all tour-level matches of Wimbledon 2025 with bookmaker odds

{
"mode": "matches",
"startDate": "2025-06-30",
"endDate": "2025-07-13",
"matchTypes": ["atp-single", "wta-single"],
"tournaments": ["Wimbledon"],
"includeMatchDetails": true,
"maxItems": 300
}

Example output

{
"matchId": 3353241,
"matchUrl": "https://www.tennisexplorer.com/match-detail/?id=3353241",
"matchType": "atp-single",
"date": "2026-10-20",
"startTimeUtc": "2026-10-20T14:40:00Z",
"tournament": {"name": "Almaty", "slug": "almaty", "year": 2026, "countryCode": "kz", "level": "tour"},
"player1": {"name": "Khachanov K.", "slug": "khachanov", "seed": "5", "rank": 25, "birthdate": "1996-05-21", "heightCm": 198, "plays": "right"},
"player2": {"name": "Sakamoto R.", "slug": "sakamoto-9c9d5", "seed": null, "rank": 124, "birthdate": "2006-06-24", "plays": "right"},
"status": "finished",
"winner": 1,
"setsWon": {"player1": 2, "player2": 0},
"sets": [{"player1": 6, "player2": 2, "player1Tiebreak": null, "player2Tiebreak": null},
{"player1": 6, "player2": 4, "player1Tiebreak": null, "player2Tiebreak": null}],
"score": "6-2, 6-4",
"odds": {"player1": 1.36, "player2": 3.07},
"round": "1. round",
"surface": "indoors",
"bookmakerOdds": {
"matchWinner": [{
"bookmaker": "10Bet",
"player1": {"odds": 1.35, "opening": 1.48, "openingTime": "2026-10-18T17:22:00Z", "trend": "down",
"history": [{"time": "2026-10-18T17:22:00Z", "odds": 1.48}, {"time": "2026-10-19T06:21:00Z", "odds": 1.45}]},
"player2": {"odds": 3.0, "opening": 2.55, "openingTime": "2026-10-18T17:22:00Z", "trend": "up"}
}],
"summary": {"bookmakers": 15, "player1": {"average": 1.361, "max": 1.39, "openingAverage": 1.437},
"player2": {"average": 3.069, "max": 3.33, "openingAverage": 2.67}}
}
}

Scheduling and integrations

Schedule the actor in Apify (e.g. mode: matches, startDate: yesterday every morning, or mode: fixtures hourly) and send results to Google Sheets, Make, Zapier, n8n, a webhook or your database through the Apify API. Interrupted runs resume where they stopped and never duplicate matches.

Use with AI assistants (MCP)

The actor works as a tool in Apify's MCP server, so Claude, ChatGPT or Cursor can call it ("get yesterday's ATP results with closing odds") and receive the dataset directly.

FAQ

How far back does the data go? Results to 2005. Spot checks found odds on every tour-level match back to 2008; lower-level events (ITF, early years) often have none. Rankings to 1998.

Which odds are in odds? The site's average over the bookmakers it lists. For finished matches this is the closing price. bookmakerOdds gives each bookmaker separately with opening price and every move.

How are retired and walkover detected? The site doesn't label them. A result with no games played is a walkover; a result whose final set isn't complete (e.g. 3-6, 6-4, 4-0) is a retirement.

Exhibitions with short sets? Formats with sets to 4 games (Next Gen Finals, Fast4) are marked finished when a player wins 3 sets; a 2-set short-format match can show as retired.

Which time zone are dates in? date follows the site's calendar (Central European time). startTimeUtc and all odds timestamps are UTC.

Do I need a proxy? No. The actor runs without proxy; you can still set one.

Is it legal? The actor reads public pages at a polite rate (about one page per second). Check TennisExplorer's terms and your local rules for your use case, especially for commercial redistribution.

Something broken or missing? Open an issue on the Issues tab.