Flashscore Tennis Scraper: Scores, Stats, Point-by-Point & H2H avatar

Flashscore Tennis Scraper: Scores, Stats, Point-by-Point & H2H

Pricing

from $0.60 / 1,000 matches

Go to Apify Store
Flashscore Tennis Scraper: Scores, Stats, Point-by-Point & H2H

Flashscore Tennis Scraper: Scores, Stats, Point-by-Point & H2H

ATP, WTA, Challenger and ITF scores and sets from Flashscore, with optional statistics, point-by-point and H2H where available. Main lists: up to 7 days back and 2 ahead, UTC; live scores are snapshots.

Pricing

from $0.60 / 1,000 matches

Rating

0.0

(0)

Developer

Datasmithlab

Datasmithlab

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Categories

Share

Get ATP, WTA, Challenger and ITF results, live snapshots and fixtures from Flashscore, with set/tiebreak scores and optional statistics, point-by-point and H2H where available.

Main match lists cover up to 7 days back and 2 ahead, in UTC. Filters, availability and match limits determine coverage; counts and completion times vary. H2H is a separate detail source, not a complete historical archive. No proxy or browser is required.

Quick start

This example returns up to 20 finished matches from today and yesterday UTC, without a tour filter or paid details. daysBack=1 includes today as well as yesterday. Check DAYS and HEALTH. Live scores are snapshots; scheduled/live matches and matches awaiting requested details may return again in monitoring mode.

{
"daysBack": 1,
"daysAhead": 0,
"statuses": [
"finished"
],
"includeStatistics": false,
"includePointByPoint": false,
"includeH2H": false,
"onlyNewResults": false,
"maxItems": 20
}

Export tennis results to CSV with Python

Use the standard-library Python example to export a completed Actor dataset into a reproducible match table. The default returns up to 20 finished matches from today and yesterday UTC with paid details off. Set a small run charge cap, inspect HEALTH and DAYS, then export the JSON or read the dataset with your own APIFY_TOKEN environment variable. No credentials are included. A real 20-match run was exported with matching IDs and preserved nested set scores. This is a bounded sample, not a historical archive, odds feed or ranking feed.

What you get

  • Matches within the selected scope and limit across ATP, WTA, ATP Challenger, WTA 125 / Challenger, ITF Men and ITF Women, singles and doubles, main draw and qualifying.
  • Clean set scores with tiebreaks. sets: [{"set": 2, "home": 7, "away": 6, "tiebreakHome": 7, "tiebreakAway": 1}] and a readable score: "3-6 7-6(1) 5-7".
  • How the match ended. resultType: normal, retired, walkover, cancelled, disqualified, plus Flashscore's note when there is one.
  • Tournament context. Tour, tournament, host country, surface, indoor flag, qualifying flag.
  • Optional match details (charged separately, only when you turn them on):
    • Match statistics: aces, double faults, 1st/2nd serve %, serve and return points won, break points saved and converted, total points, for the whole match and each set, plus set durations.
    • Point-by-point: every game with server, game winner, whether serve was broken, and the point sequence (15:0, 30:0, 30:15, 40:15).
    • Head-to-head and recent form: earlier meetings of the two players and each player's last matches, going back years (not limited to the 7-day window).
  • Only new results. Turn on Only new results since last run and schedule it, e.g. every hour: you get each finished match once. Scheduled and live matches keep coming until they finish. If you asked for match details and Flashscore didn't have them yet, the finished match comes again on the next run so you get the details too.
  • Reports in the run's key-value store: DAYS (matches per day) and HEALTH (matches by status, details fetched or missing, empty-field ratios). If Flashscore changes its format, the run fails with a clear message instead of returning an empty dataset.

Input

FieldWhat it does
Days back / Days aheadFlashscore keeps 7 days back and 2 days ahead. Days are UTC
Match statusfinished, live, scheduled. Live is a snapshot at run time
ToursATP, WTA, ATP Challenger, WTA 125 / Challenger, ITF Men, ITF Women, Other
Singles / doubles, Surfaces, Include qualifyingNarrow the draw
Tournaments, PlayersSubstring match, e.g. Shanghai, Sinner
Match statistics / Point-by-point / Head-to-headOptional details, one extra request each per match
H2H / recent matches per listRows per head-to-head and recent-form list (default 10)
Only new results since last runFinished results tracked; pending details may return again
Max matchesCaps match rows; start and detail charges still apply

Output example

{
"id": "flashscore:Y9DqWWxe",
"tournament": "Beijing", "tournamentCountry": "China", "tour": "atp", "matchType": "singles",
"surface": "hard", "isIndoor": false, "isQualification": false,
"startTime": "2026-10-05T09:30:00Z",
"status": "finished", "resultType": "retired",
"homePlayer": "De Minaur A.", "awayPlayer": "Hurkacz H.",
"homeCountry": "Australia", "awayCountry": "Poland",
"homeSetsWon": 1, "awaySetsWon": 0, "winner": "home",
"sets": [{"set": 1, "home": 6, "away": 4}, {"set": 2, "home": 3, "away": 2}],
"score": "6-4 3-2",
"statistics": [{"period": "Match", "group": "Service", "name": "Aces", "home": "3", "away": "8"}],
"setDurations": [{"set": "Set 1", "duration": "0:38"}, {"set": "Set 2", "duration": "0:33"}],
"pointByPoint": [{"set": 1, "gamesHome": 1, "gamesAway": 0, "server": "away", "gameWinner": "home",
"serviceBroken": true, "points": ["15:0", "30:0", "30:15", "40:15"], "markers": ["B1"]}],
"url": "https://www.flashscore.com/match/Y9DqWWxe/#/match-summary"
}

Good to know

  • No rankings. Flashscore's match lists don't carry world rankings, so they are not included.
  • Odds are not included.
  • Live scores are snapshots. Schedule the Actor to poll; there is no continuous stream.
  • Player names are short forms as shown by Flashscore (e.g. Djokovic N.). Umpire names and other personal data are not collected.
  • Polite by design. Requests go one at a time with a pause in between; a day list is one request, details are one request each.

Pricing

FREE-tier event rates checked on 11 October 2026 (FREE is the tier name, not a free run):

  • apify-actor-start: $0.001 per event.
  • result: $0.001 per event.
  • match-details: $0.002 per event.

Start event count depends on memory: one per GB, minimum one. Zero output can still incur start and applicable run costs. Row prices do not guarantee the total invoice. Store pricing is authoritative; rates and tier discounts may change.

Available requested details are charged once per match, not once per detail type.

  • Match: one event per match returned.
  • Match details: one extra event per match for which you asked for statistics, point-by-point or head-to-head and at least one of them was available. Matches without details are not charged for them.

Feedback

Missing a field or a filter? Open an issue on this Actor's page. We read every one and reply.

Not affiliated with or endorsed by Flashscore or Livesport.