Tennis Scraper
Pricing
from $3.00 / 1,000 matches
Tennis Scraper
The Tennis Scraper extracts ATP, WTA, Challenger and ITF matches — results, live scores and fixtures — with players, tournaments, surfaces and set scores, plus optional match stats, point-by-point, durations, tiebreaks and head-to-head for betting and analytics.
Pricing
from $3.00 / 1,000 matches
Rating
0.0
(0)
Developer
FalconScrape
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
11 days ago
Last modified
Categories
Share
🎾 Tennis Scraper
Get tennis match data for every tour as clean, structured JSON. The Tennis Scraper returns ATP, WTA, Challenger and ITF matches — finished results, live scores and upcoming fixtures — with players, tournaments, surfaces, set-by-set scores and winners, and optionally match statistics, point-by-point, set durations, tiebreak scores and head-to-head history. Built for betting models, sports analytics, fantasy tools and live-score apps.
✨ Features
- 🌍 Every level of the game: ATP, WTA, Challenger, ITF, juniors and exhibitions, singles and doubles — typically 100–400 matches a day.
- 📅 Results, live and upcoming: Up to 7 days back for finished results and 7 days ahead for the schedule, with live scores (current game points and who is serving) for matches in play.
- 📊 Match statistics: Aces, double faults, first-serve %, points won on serve and return, break points saved and converted, games won — for the whole match and for every set.
- 🎯 Point-by-point: Every game with its server, winner, breaks of serve and the full point sequence, with break points, set points and match points flagged.
- ⏱️ Durations and tiebreaks: Match and set durations, tiebreak scores and the chair umpire.
- 🤝 Head-to-head: Previous meetings of the two players with date, tournament, surface, winner and score.
- 🔎 Simple filters: Tour, singles or doubles, match status and player names.
- 💸 Fair billing: Pay per match saved. Runs with no matching matches are free.
🛠️ How It Works
- Pick the days –
daysBack(results) anddaysAhead(schedule), 0–7 each.0and0means today only. - Filter – Choose
tours(empty = all),matchType(singles by default),status(finished, live, scheduled or all) and, optionally,players(part of a name is enough). - Add details (optional) – Turn on
includeMatchDetailsfor statistics, point-by-point, durations, tiebreaks and head-to-head. - Run it – Matches stream into the dataset; export as JSON, CSV or Excel, or schedule runs for a live feed.
💰 Pricing
| Event | Price | What you get |
|---|---|---|
match | $0.003 | One match: tournament, tour, surface, players, status, winner, set scores and live score |
match-details | $0.006 | Charged instead of match when details are on: adds statistics, point-by-point, durations, tiebreaks and head-to-head |
Example: yesterday's ATP and WTA singles results (about 50 matches) cost $0.15, or $0.30 with full match details. A run that finds no matching matches is not charged.
⚠️ Good to know
- The schedule covers 7 days back and 7 days ahead of today. Older results are not available.
- Statistics and point-by-point exist for matches that have been played; for scheduled matches, details contain the head-to-head only. Lower-level ITF matches often have no statistics.
player1/player2follow the order the match is listed in;winnerand every per-player value use the same sides.countryisWorldfor players competing under a neutral flag.- Times are UTC.
📊 Sample Output Data
{"matchId": "G2W1cGK6","url": "https://www.flashscore.com/match/G2W1cGK6/#/match-summary","startsAt": "2026-10-02T05:10:00.000Z","status": "finished","statusDetail": "finished","tour": "atp","category": "ATP - SINGLES","matchType": "singles","tournament": {"id": "3473162","name": "Beijing (China)","surface": "hard","indoor": false,"url": "https://www.flashscore.com/tennis/atp-singles/beijing/"},"player1": {"id": "drgiRTl7","name": "Molcan A.","country": "Slovakia","slug": "molcan-alex","partner": null},"player2": {"id": "4bNPtZT5","name": "Khachanov K.","country": "World","slug": "khachanov-karen","partner": null},"winner": "player2","setsWon": {"player1": 0,"player2": 2},"sets": [{"player1": 5,"player2": 7,"tiebreak": null,"durationMinutes": 41},{"player1": 3,"player2": 6,"tiebreak": null,"durationMinutes": 34}],"live": null,"updatedAt": "2026-10-02T06:25:16.000Z","scrapedAt": "2026-10-03T13:03:16.781Z","durationMinutes": 75,"umpire": "Lahyani M.","statistics": [{"period": "Match","group": "Service","name": "Aces","player1": "1","player2": "7"},{"period": "Match","group": "Service","name": "Double Faults","player1": "1","player2": "0"},{"period": "Match","group": "Service","name": "1st serve percentage","player1": "59%","player2": "77%"},{"period": "Match","group": "Service","name": "1st serve points won","player1": "83% (25/30)","player2": "85% (34/40)"}],"pointByPoint": [{"set": 1,"gamesScore": {"player1": 0,"player2": 1},"server": "player2","winner": "player2","brokenServe": false,"points": [{"score": "0:15","breakPoint": false,"setPoint": false,"matchPoint": false},{"score": "0:30","breakPoint": false,"setPoint": false,"matchPoint": false},{"score": "0:40","breakPoint": false,"setPoint": false,"matchPoint": false}]}],"headToHead": [{"matchId": "j5TAU6tU","date": "2022-05-18","tournament": "Lyon 2","surface": "clay","winner": "player1","score": "0:2"}]}
Start building your tennis dataset with the Tennis Scraper! 🎾