Tennis Scraper: Scores, Rankings, Stats & Odds (160+ Books)
Pricing
from $1.00 / 1,000 matches
Tennis Scraper: Scores, Rankings, Stats & Odds (160+ Books)
Every ATP, WTA, Challenger and ITF match (singles and doubles): live scores, set-by-set results with tiebreaks, retirements, ATP/WTA rankings, match statistics and odds from 160+ bookmakers with fair odds, value and arbitrage. No browser, fast and cheap.
Pricing
from $1.00 / 1,000 matches
Rating
0.0
(0)
Developer
Elie Rusak
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
16 days ago
Last modified
Categories
Share
Get every ATP, WTA, Challenger and ITF match — singles and doubles — for the days you choose, with:
- Live scores and results: set-by-set games, tiebreak points, sets won, winner, retirements, walkovers, cancellations, start and end time.
- Tournament details: tour, tournament, country, surface, indoor, qualification.
- ATP / WTA rankings: current singles rank and points of both players (free).
- Match statistics (optional): aces, double faults, first serve %, serve and return points won, break points saved and converted, games won... for the match and for each set.
- Odds from 160+ bookmakers in 40+ countries (optional): match winner, set winner, set and game handicaps, total sets, total games, correct score, odd/even — with best price, opening odds, margins, margin-free fair odds, value bets and arbitrage (surebets).
The Actor reads FlashScore's data feeds directly — no browser: a whole day of tennis (150+ matches) takes about 10 seconds.
What can you do with it?
- Live score and results feeds for apps, bots, dashboards and websites.
- Tennis models and backtests: results with rankings, statistics and closing odds of the last 7 days, or schedule the Actor daily to build your own history.
- Odds comparison and value betting research: best price per outcome across all bookmakers of your country, compared with the fair odds of the whole market.
- Arbitrage scanning on upcoming matches.
Input
| Field | Description |
|---|---|
| Days ahead / Past days | Today up to 7 days ahead, and up to 7 days back. |
| Tours | ATP, WTA, Challenger (men/women), ITF (men/women), Other (team events, juniors, exhibitions). Empty = all. |
| Singles / doubles | Empty = both. |
| Match statuses | Upcoming, live, finished (finished includes retirements, walkovers and cancellations). |
| Tournaments | Optional: part of the name or FlashScore URL (Shanghai, /tennis/wta-singles/wuhan/). |
| Players | Optional: part of a player's name, accents ignored (Sinner, Swiatek). |
| Maximum matches | Cost cap (earliest matches first). |
| Include rankings / statistics / odds | Enrichments, see pricing. |
| Bookmaker countries, markets, periods | Which bookmakers and markets to compare when odds are included. |
Example — today's and tomorrow's ATP and WTA singles with statistics and UK + French odds:
{"daysAhead": 1,"tours": ["ATP", "WTA"],"matchTypes": ["singles"],"includeStatistics": true,"includeOdds": true,"countries": ["GB", "FR"]}
Output
One item per match (real run, shortened):
{"matchId": "xUS4LN7s","url": "https://www.flashscore.com/match/tennis/munar-jaume-bgno6t9s/jacquet-kyrian-W6pg4Kwf/?mid=xUS4LN7s","kickoff": "2026-10-04T02:10:00Z","endTime": "2026-10-04T03:50:36Z","status": "finished","tour": "ATP","matchType": "singles","competition": "ATP - SINGLES: Tokyo (Japan), hard","tournament": "Tokyo","tournamentCountry": "Japan","surface": "hard","indoor": false,"qualification": false,"homePlayer": "Munar J.","awayPlayer": "Jacquet K.","homePlayers": [{"name": "Munar J.", "playerId": "zZieQm4D", "country": "Spain","url": "https://www.flashscore.com/player/munar-jaume/zZieQm4D/"}],"homeSets": 2,"awaySets": 0,"sets": [{"home": 6, "away": 4}, {"home": 6, "away": 2}],"winner": "home","homeRank": 49, "homeRankingPoints": 1100,"awayRank": 76, "awayRankingPoints": 781,"bestHome": 1.67, "bestBookmakerHome": "bet365", "fairHome": 1.727,"bestAway": 2.3, "bestBookmakerAway": "William Hill", "fairAway": 2.375,"winnerMarginPercent": 6.62,"bookmakerCount": 20,"statistics": {"match": {"aces": {"home": 3, "away": 1},"double_faults": {"home": 2, "away": 1},"first_serve_percentage": {"home": "60%", "away": "52%"},"first_serve_points_won": {"home": "67% (26/39)", "away": "59% (20/34)"}},"set1": {"aces": {"home": 1, "away": 0}}},"odds": {"countries": ["GB"],"valueBets": [],"arbitrages": [],"markets": [{"market": "winner", "period": "match", "line": null,"outcomes": [{"outcome": "home", "bestOdds": 1.67, "bestBookmaker": "bet365", "fairOdds": 1.727,"fairProbability": 0.5789, "valuePercent": -3.32, "outlier": false,"odds": {"10bet": 1.6, "7BetUK": 1.66, "bet365": 1.67},"openingOdds": {"10bet": 1.55, "7BetUK": 1.57, "bet365": 1.62}}],"fairOddsBookmakerCount": 20,"averageMarginPercent": 6.62,"lowestMarginBookmaker": "Betway","arbitrage": null}]},"scrapedAt": "2026-10-05T21:47:54Z"}
Tiebreaks appear as tiebreakHome / tiebreakAway in the set they decided ({"home": 7, "away": 6, "tiebreakHome": 7, "tiebreakAway": 4}). Doubles list both players of each team in homePlayers / awayPlayers. Handicap lines are given from the first player's side (line: -1.5 = player 1 -1.5 / player 2 +1.5). Rankings are the current ones, not those at the time of past matches.
How fair odds, value and arbitrage are computed
- For each bookmaker that prices both outcomes of a line, its margin is removed (proportional method by default, or the power method).
- The fair probability is the median over bookmakers, normalised to 100 %. Fair odds = 1 / fair probability.
- Value % = best price × fair probability − 1, computed when at least 3 bookmakers price the line.
- Arbitrage is reported when the best prices of both outcomes add up to less than 100 %, with the stake share for each.
- A best price more than 25 % above fair odds is marked
outlier(stale price or palpable error) and is never flagged. - Value bets and arbitrage are flagged for upcoming matches only. For live and finished matches you get each bookmaker's last price (closing odds), taken at slightly different moments.
Pricing
Pay per result, no subscription:
| Event | When |
|---|---|
| Match | each match saved (scores, players, tournament, rankings included) |
| Odds | each match saved with bookmaker odds (only when Include bookmaker odds is on) |
| Statistics | each match saved with statistics (only when Include match statistics is on) |
Matches skipped with Only matches with odds are free. Set Maximum matches to cap the cost of a run.
Tips
- Upcoming start times are FlashScore's schedule; matches later in a day's order of play often start after the time shown.
- Odds markets per set (set 1, set 2…) are only offered by some bookmakers.
- Schedule the Actor (for example every 15 minutes during play) and use webhooks or the API for live data.
FAQ
Is it legal to scrape this data? The Actor collects publicly visible scores, statistics and prices, with no personal data beyond players' public names. Check the terms of the source website and your local laws for your use case.
Is this betting advice? No. Value and arbitrage flags are price comparisons against the market consensus. Bookmakers can change prices, void obvious errors and limit accounts. Gamble responsibly — 18+ only. UK: GamCare 0808 8020 133.
Is this Actor affiliated with FlashScore, the ATP, the WTA or the bookmakers? No.
Something is missing or broken? Open an issue in the Issues tab — fixes are usually quick.