Tennis Scraper - ATP, WTA, ITF Live Scores, Results, H2H avatar

Tennis Scraper - ATP, WTA, ITF Live Scores, Results, H2H

Pricing

$1.20 / 1,000 match rows

Go to Apify Store
Tennis Scraper - ATP, WTA, ITF Live Scores, Results, H2H

Tennis Scraper - ATP, WTA, ITF Live Scores, Results, H2H

Tennis scraper for ATP, WTA, Challenger and ITF: one day feed returned 549 matches from 80 tournaments in a single request. Live scores, set scores, tiebreaks, surface, singles or doubles, head-to-head and odds. 15-day window, no browser, no proxy, no API key.

Pricing

$1.20 / 1,000 match rows

Rating

0.0

(0)

Developer

Snow Leo Data

Snow Leo Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Tennis Scraper: ATP, WTA, Challenger and ITF Live Scores, Results, H2H

Scrape tennis matches without a browser, a proxy or an API key. One request returns a whole day of tennis: on 21 October 2026 a single day feed carried 549 matches from 80 tournaments (ATP, WTA, Challenger, ITF men, ITF women, singles and doubles). The window is 15 days: seven days back, today and seven days ahead.

Every row is one match. You pay per match row that reaches your dataset. There is no start fee and no per-request fee.

What one run returns

  • Who and when: both sides (players or doubles pairs), country of each side, start time in UTC, status (scheduled, live, finished), link to the match.
  • Score: sets won by each side, the score of every set in period_scores, and the tiebreak score of every set that went to one in tiebreaks. A winner_name column saves you the lookup.
  • Tournament, parsed for you: tour (atp, wta, challenger, itf-men, itf-women, teams, exhibition), gender, match_type (singles or doubles), event_name, event_country, prize_level (M15, M25, W35, W100 and so on), surface (hard, clay, grass, carpet), indoor and qualification.
  • Optional extras that you switch on: head-to-head history of both sides per match (includeHeadToHead), bookmaker odds (includeOdds) and the raw feed keys (includeRawFields).

Example row, shortened:

{
"event_id": "zHfvs0hR",
"tour": "atp",
"match_type": "singles",
"event_name": "Almaty",
"event_country": "Kazakhstan",
"surface": "hard",
"indoor": true,
"home_name": "Bellucci M.",
"away_name": "Etcheverry T. M.",
"status": "finished",
"home_score": 2,
"away_score": 1,
"period_scores": [{"period": "1", "home": 7, "away": 6}, {"period": "2", "home": 2, "away": 6}, {"period": "3", "home": 6, "away": 4}],
"tiebreaks": [{"period": "1", "home": 7, "away": 5}],
"winner_name": "Bellucci M."
}

Input

FieldWhat it does
dayOffsetsDays relative to today. 0 today, -1 yesterday, 3 in three days. Allowed from -7 to +7.
toursatp, wta, challenger, itf-men, itf-women. Empty means everything on the feed.
matchTypessingles, doubles, or both.
surfaceshard, clay, grass, carpet.
matchStatusesscheduled, live, finished.
tournamentContainsWords that must appear in the tournament line, for example Almaty or Wimbledon.
playerContainsWords that must appear in either side, for example Sinner. Doubles match on either partner.
includeHeadToHead, includeOdds, includeRawFieldsExtra data, off by default.
onlyChangedIncremental mode: only matches that are new or changed since the previous run with the same monitorStoreName.
compactOutputDrops empty columns, handy for AI agents and narrow CSV files.
maxItemsCaps rows delivered, not rows scanned. Filtered rows are never charged.

A schedule with onlyChanged and matchStatuses: ["live"] gives you a live score feed that pays only for matches whose score moved.

Typical uses

  • Live score widgets and Telegram bots: run every few minutes in incremental mode.
  • Betting models and analytics: daily finished results with set scores, tiebreaks, surface and head-to-head history for training data.
  • Fantasy and media sites: the day's schedule per tournament or per player.
  • AI agents: compactOutput plus maxItems keeps answers short and cheap.

Honest limits

  • The source serves only a window of -7 to +7 days. Older results are not available here.
  • Player names come as the source writes them (Sinner J.). Rankings, point by point statistics and player profiles are not part of this Actor.
  • Odds appear only for matches the source has odds for.
  • Tennis feeds are quiet outside the season: an empty run names the reason in the log and in the REPORT record instead of failing silently.

Price

Pay per event: one match row delivered. Rows removed by your filters, rows that are duplicates inside one run and, in incremental mode, rows already delivered are not charged. There is no start fee. A full day of tennis, about 550 rows, costs well under a dollar.

Need football, basketball, hockey and the other 28 sports from the same source? Use the Flashscore Scraper from the same publisher.