Tennis Scraper: Live Scores, Results & Odds from 40+ Books avatar

Tennis Scraper: Live Scores, Results & Odds from 40+ Books

Pricing

Pay per usage

Go to Apify Store
Tennis Scraper: Live Scores, Results & Odds from 40+ Books

Tennis Scraper: Live Scores, Results & Odds from 40+ Books

Every ATP, WTA, Challenger and ITF match: live scores, results with tiebreaks, current rankings, opening and closing odds from up to 42 bookmakers, no-vig consensus and line movement. Optional serve stats and point-by-point. Recent matches or full tournament history with odds back to 2009.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Sports Odds Lab

Sports Odds Lab

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

17 hours ago

Last modified

Share

Tennis Scraper: Live Scores, Results & Odds from 40+ Bookmakers

🎁 Free until 8 October 2026. Press Start — the prefilled input returns 30 matches with odds in under a minute.

Sample output: Wimbledon 2024 with fair odds, line movement and best prices

Get every ATP, WTA, Challenger and ITF match with opening and closing match-winner odds from up to 42 bookmakers, a no-vig market consensus, line movement, live scores (server and points of the current game), current ATP/WTA rankings, set scores with tiebreaks, optional serve/return statistics and optional point-by-point progression — one clean row per match, ready for a spreadsheet, a database or a model.

Most tennis scrapers give you scores. Most odds scrapers cover US sports. This Actor joins the two for tennis, including the ITF and Challenger levels where historical odds are hardest to find.

Two modes:

  • Recent matches — every tour, from 7 days back to 7 days ahead (upcoming matches with current prices)
  • Tournament history — complete past editions of any tournament (qualifying included), with odds back to 2009; ATP: all covers every ATP tournament

What you get for each match

  • Match: start time (UTC), tour (ATP / WTA / Challenger / ITF / team events), singles or doubles, tournament, surface, players and their countries, Flashscore IDs and link
  • Result: status (finished, retired, walkover, cancelled, live, scheduled), set-by-set score with tiebreak points, sets won, winner, end time
  • Live: for matches in progress, who is serving and the points of the current game (live) — run it every few minutes for a live scoreboard
  • Rankings: current ATP / WTA singles ranking of both players (player1Rank, player2Rank), recent matches only
  • Odds per bookmaker: opening price and latest price for both players, plus the bookmaker margin. Once a match has started the latest price is the closing line
  • Market consensus (median across bookmakers, margin removed):
    • fair opening and closing odds for both players
    • win probability at the open and at the close
    • line movement in percentage points
    • best available odds at the open and at the close
    • median bookmaker margin
  • Statistics (optional): aces, double faults, first-serve %, first/second serve points won, break points saved/converted, return points won, service and return games won and more
  • Point-by-point (optional): every game — server, winner, break or hold, and the score before each point with break, set and match points marked — plus every tiebreak point, for finished and live matches

Tournament history: odds back to 2009

List tournaments and years and get every match of those editions — main draw and qualifying — with the opening and closing odds each bookmaker published at the time.

EditionBookmakers per match (examples)
2009 – 20137–9 (Wimbledon ATP and WTA) · 6–7 (Challenger Genova)
2015 – 20198–10 (Wimbledon, French Open WTA, Challenger Genova)
2023up to 10 (ITF M15 Monastir)
2024 and later17–18 (Wimbledon)

Tournaments are named as on Flashscore: ATP: Wimbledon, WTA: French Open (Roland Garros), ATP: Indian Wells, Challenger Men: Genova, ITF Women: W15 Monastir — or paste the tournament's Flashscore URL. ATP: all expands to every ATP tournament. Years can be single (2024) or ranges (2015-2024).

A Grand Slam edition (239 matches with qualifying) takes about 2 minutes. For many tournaments and years, raise the run timeout (the default is 6 hours).

Coverage

Measured on a sample of 250 matches (all levels, singles and doubles):

LevelShare of matches with oddsBookmakers per match (avg.)
ATP singles100%~35
WTA singles100%~37
Challenger singles100%~36
ITF singles98%~20
Doubles (all levels)93–100%10–36

Bookmakers include 1xBet, 7BetUK, Betway, bwin, BetMGM, Betclic, Betfred, Betano, bet365, DraftKings, FanDuel, Fanatics, Interwetten, Ladbrokes, Midnite, Neobet, Skybet, Stake, STS, Superbet, Winamax and more (up to 42 listings, depending on the match). Brands that appear under several licences (Betano .br / .ca / .de / .dk, BetMGM .uk / .us…) are counted once in the consensus (brandCount), so they cannot outvote the rest.

Use cases

  • Build and backtest tennis models — train on closing-line probabilities, the most efficient price the market produces
  • Closing Line Value (CLV) — compare the price you bet with the consensus close to measure whether you beat the market
  • Line movement and steam — find matches where the market moved sharply between open and close
  • Market research — compare bookmaker margins, find the best price, study how efficient ITF markets are
  • Live dashboards and alerts — poll live matches (statuses: ["live"]) for the score, the server and the current game
  • Point-by-point models — hold/break rates, pressure points (break, set and match points) and tiebreak performance per player
  • Your own odds history — schedule the Actor daily and keep appending to a dataset; after a few weeks you own a history nobody else sells for these levels

How to use it

  1. Pick the days (up to 7 back and 7 ahead), tours, singles/doubles and statuses. With Max matches set, the most important matches are kept first (ATP and WTA, then Challenger, team events and ITF).
  2. Click Start. A typical day of ATP + WTA + Challenger finishes in about a minute; a full day including ITF in a few minutes.
  3. Download the results as JSON, CSV or Excel, or read them through the Apify API.

Tip — build a history automatically: create a Schedule that runs every morning with daysBack: 1, daysAhead: 0, statuses: ["finished"]. Each run adds yesterday's matches with their closing lines.

Ready-made examples

One click, preconfigured — open, press Start, adjust if you like:

Input example — recent matches

{
"daysBack": 1,
"daysAhead": 0,
"tours": ["ATP", "WTA", "CHALLENGER"],
"formats": ["SINGLES"],
"statuses": ["finished"],
"includeOdds": true,
"includeStats": true,
"onlyWithOdds": true
}

Input example — tournament history

{
"mode": "tournaments",
"tournaments": ["ATP: Wimbledon", "WTA: Wimbledon", "ATP: Indian Wells"],
"years": ["2015-2024"],
"includeQualifying": false,
"includeStats": true
}

Output example (shortened)

{
"matchId": "8079sqDc",
"startTime": "2026-09-23T03:05:00Z",
"tour": "WTA",
"format": "SINGLES",
"tournament": "Seoul (South Korea)",
"surface": "hard",
"player1": "Tararudee L.",
"player2": "Park S.",
"player1Rank": 92,
"player2Rank": 187,
"status": "finished",
"score": "7-6 6-0",
"sets": [[7, 6], [6, 0]],
"tiebreaks": [[7, 4], null],
"winner": 1,
"endTime": "2026-09-23T04:41:12Z",
"live": null,
"consensus": {
"bookmakerCount": 39,
"consensusOpeningProb1": 0.8283,
"consensusLastProb1": 0.8393,
"fairLastOdds1": 1.192,
"fairLastOdds2": 6.221,
"probMovementPts": 1.09,
"bestLastOdds1": 1.14,
"bestLastOdds2": 7.2,
"medianMarginPct": 6.09
},
"odds": [
{"bookmaker": "1xBet", "opening1": 1.15, "opening2": 5.4, "last1": 1.13, "last2": 5.9, "lastMarginPct": 5.44},
{"bookmaker": "7BetUK", "opening1": 1.13, "opening2": 5.0, "last1": 1.13, "last2": 5.0, "lastMarginPct": 8.5}
],
"stats": {
"aces": {"player1": 2, "player2": 0},
"firstServePointsWon": {"player1": {"pct": 78, "won": 25, "total": 32}, "player2": {"pct": 57, "won": 17, "total": 30}}
},
"pointByPoint": [
{"set": 1, "type": "game", "score": "0-1", "server": 2, "winner": 2, "break": false, "points": ["0:15", "15:15", "15:30", "15:40"]},
{"set": 1, "type": "game", "score": "1-1", "server": 1, "winner": 1, "break": false, "points": ["15:0", "30:0", "30:15", "40:15"]},
{"set": 1, "type": "tiebreak", "score": "7-4", "winner": 1, "points": ["1:0", "…", "6:4 SP"], "servers": [1, 2, "…"]}
]
}

A live match looks like this: "status": "live_set_2", "score": "6-4 3-2", "live": {"server": 1, "points1": "30", "points2": "15", "currentSetSince": "2026-09-25T17:18:20Z"}.

Pricing

🎾 Free until 8 October 2026 — during the launch period you only pay Apify's platform usage, typically well under $0.01 per run.

From 9 October 2026 you pay per match saved — platform usage included, nothing else:

Apify planPrice per 1,000 matches
Free$5.00
Starter$4.50
Scale$4.00
Business and higher$3.50

💡 On Apify's free plan the monthly $5 platform credit covers about 1,000 matches — enough to try the data properly before paying anything.

Every match comes with the odds of all bookmakers that priced it, the consensus and (optionally) the statistics, at no extra cost. Nothing is charged for matches you filter out: turn on Skip matches without odds to pay only for priced matches. Set a spending limit on the run if you want a hard cap — the Actor stops as soon as the limit is reached.

FAQ

What is the "closing line"? The last price before the match starts. For finished and live matches the last1 / last2 fields are the closing odds; for scheduled matches they are the current prices.

How is the consensus calculated? For each bookmaker the margin is removed proportionally, then the median is taken across bookmaker brands (each brand once, via its lowest-margin listing). The median keeps one stale or mispriced book from skewing the result.

How far back can I go? In Recent matches mode 7 days back and 7 ahead. In Tournament history mode every edition Flashscore lists — odds go back to 2009 (fewer bookmakers in older editions, see the table above).

Which time zone? All timestamps are UTC.

How fresh are live scores? As fresh as the Flashscore scoreboard at the moment of the run. For a live feed, schedule the Actor every few minutes with statuses: ["live"], daysBack: 0, includeOdds: false.

Which ranking is player1Rank? The current ATP or WTA singles ranking at the time of the run (not added to doubles or to past tournament editions).

Is Pinnacle included? No — the source does not list Pinnacle. The consensus of 20–40 books is a solid reference, and the Actor reports the best available price as well.

Where does the data come from? From publicly available match and odds information shown on Flashscore. This Actor is not affiliated with Flashscore or any bookmaker.

More from Sports Odds Lab

⭐ Did this Actor save you time? A short review on this page helps other bettors and analysts find it — and tells us what to build next.

Changelog

  • 0.4 — Live scores (server and points of the current game), current ATP/WTA rankings, tiebreak points per set, match end time, optional point-by-point (games, breaks, break/set/match points, tiebreak points); new Live scoreboard dataset view.
  • 0.3 — Tournament history mode: complete past editions of any tournament with opening/closing odds back to 2009, ATP: all, year ranges; season and qualification fields; Include qualifying option.
  • 0.2 — faster and cheaper runs (about 2× less CPU per request); the consensus counts each bookmaker brand once (brandCount); Max matches keeps the most important matches first; new tour option Other (exhibitions, juniors).
  • 0.1 — first release (free launch period): ATP, WTA, Challenger, ITF and team events; singles and doubles; opening/closing odds from up to 42 bookmakers; no-vig consensus and line movement; optional match statistics.