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

1

Total users

0

Monthly active users

2 months 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).