Tennis Match Scraper - Scores, Odds, H2H & Form avatar

Tennis Match Scraper - Scores, Odds, H2H & Form

Pricing

from $5.60 / 1,000 match-intels

Go to Apify Store
Tennis Match Scraper - Scores, Odds, H2H & Form

Tennis Match Scraper - Scores, Odds, H2H & Form

Tennis match intel with betting context: scores, rankings, form, H2H, odds & point-by-point. ATP/WTA/Challenger/ITF.

Pricing

from $5.60 / 1,000 match-intels

Rating

5.0

(1)

Developer

Team Kamkod

Team Kamkod

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

🎾 Tennis Match Scraper β€” Scores, Odds, H2H & Form

Extract complete tennis match context from Flashscore in one call: live/finished scores, set-by-set results, head-to-head history, per-player form (last 20 matches), surface splits (clay/grass/hard) and betting odds β€” covering ATP, WTA, Challenger & ITF, singles & doubles.

Built for betting analysts, prediction models and pre-match research. Where other tennis scrapers stop at raw scores, this actor adds the decision layer: who is in form, on which surface, and what the odds say β€” all from a single matchId.

Why this actor?

Full betting context in one call β€” no stitching of separate feeds:

FeatureIncluded
Scores, sets & fixtures (live/finished/scheduled)βœ…
Head-to-head (H2H)βœ…
Player form (last 20 matches)βœ…
Form by surface (clay/grass/hard)βœ… optional
Betting odds snapshotβœ… when available
Match statistics (winners, aces, breaks)βœ…
Rankings at match timeβœ…
Point-by-point logβœ… live & finished
No proxy neededβœ…

Two entry points β€” Match Intel

Every intel block below (H2H, form, odds, stats, rankings, point-by-point) is available two ways:

1. list β€” find matches, then enrich (filterable)

Returns every match for a date with ids, tournament, players, status and scores. Set enrich: true to turn each returned match into the full intel report below (billed as match-intel per match) β€” one run, no second call needed.

Input example β€” yesterday's & today's finished ATP matches:

{
"mode": "list",
"dayOffsets": ["-1", "0"],
"tours": ["atp"],
"matchStatuses": ["finished"]
}

One result per match:

{
"match_id": "nTLFUd87",
"match_date": "2026-09-05",
"event": "US Open (USA), hard",
"category": "ATP - SINGLES",
"is_doubles": false,
"home_players": ["Shelton B."],
"away_players": ["Shapovalov D."],
"status": "finished",
"time": null,
"score_home": "3",
"score_away": "1",
"match_url": "https://www.flashscore.com/match/tennis/...",
"player_slugs": [
{"slug": "shapovalov-denis", "player_id": "zXddgn9o"},
{"slug": "shelton-ben", "player_id": "QNuG0Gzb"}
]
}

Filters (all optional, combinable):

  • dayOffsets β€” days relative to date/today, from -3 to 3. Default ["0"].
  • matchStatuses β€” finished, live, scheduled. Empty = all.
  • tours β€” atp, wta, challenger, itf. Empty = all active tours.
  • tournaments β€” case-insensitive name match, e.g. ["Wimbledon"].
  • date β€” anchor date (YYYY-MM-DD). Empty = today.
  • maxMatches β€” cap on results.

2. match β€” full intel by id (no list step)

Takes a matchId (from a list run) and returns the same complete intel package as list + enrich: true β€” in one call.

Input:

{ "mode": "match", "matchId": "nTLFUd87" }

Output fields:

  • home_players / away_players β€” names + rankings at match time
  • status, score, sets β€” score detail
  • stats β€” winners, aces, double faults, break points, serve %
  • venue β€” stadium, round
  • h2h.home_form / h2h.away_form β€” last ~20 matches per player (date, tournament, opponent, score, W/L)
  • h2h.head_to_head β€” previous meetings between the two
  • h2h.by_surface β€” optional ("surfaces": true): form filtered by CLAY / GRASS / HARD
  • odds β€” pre-match & live odds rows (home/away; bookmaker named when the site shows it)

Form entry example:

{
"date": "05.09.26",
"tournament": "USO",
"home": "Shelton B.",
"away": "Shapovalov D.",
"score_home": "3",
"score_away": "1",
"result": "W"
}

Use cases

  • Betting models β€” pre-match features: form, surface affinity, H2H, odds in one API call
  • Pre-match research β€” "how has the underdog performed on clay vs hard?"
  • Daily result digests β€” schedule list runs and filter by tour/status
  • Prediction bots / MCP agents β€” machine-readable intel, no HTML parsing

Pricing

Pay-per-event β€” you pay only for what you use:

  • match-listed β€” $0.001 per listed match (mode list, scores/sets/tournament context)
  • match-intel β€” $0.007 per full match report (mode list + enrich:true, or mode match): form (last 20), H2H, odds, rankings, stats, venue, point-by-point

Failed runs are not charged. No proxy cost, no subscription.

Notes & limitations

  • Data source: Flashscore public pages. Unofficial actor, not affiliated with Flashscore.
  • Live odds appear when Flashscore publishes them (pre-match and in-play snapshots).
  • Per-surface form and in-depth H2H exist for matches where Flashscore provides the tab.
  • Historical depth: matches reachable within the Flashscore day navigation window (Β±3 days for lists; match pages keep full detail once you have the matchId).