Tennis Live Scores - ATP, WTA, Challenger & ITF avatar

Tennis Live Scores - ATP, WTA, Challenger & ITF

Pricing

from $0.70 / 1,000 matches

Go to Apify Store
Tennis Live Scores - ATP, WTA, Challenger & ITF

Tennis Live Scores - ATP, WTA, Challenger & ITF

Every tennis match in play right now: set and game score, who serves, status, ATP and WTA rank and Elo, with optional in-play odds from your country's bookmakers. Or any day's matches: today's scores, results and fixtures. ATP, WTA, Challenger and ITF. Works as an MCP tool for AI agents.

Pricing

from $0.70 / 1,000 matches

Rating

0.0

(0)

Developer

CrawlPlant

CrawlPlant

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Independent tool, not affiliated with, endorsed by or connected to Flashscore, Livesport, the ATP, the WTA, the ITF or any bookmaker. It reads the public match data that flashscore.com shows to every visitor.

Every tennis match in play right now, one row per match. ATP, WTA, Challenger and ITF singles and doubles with the set-by-set score, the live game score and who is serving, the status ("Set 2", "Set 3 - Tiebreak"), both players' ranking and Elo rating, and optional in-play odds from the bookmakers of your country. The default run lists today's matches, with the live score of every match in play; live mode keeps only the matches in play, and any other day gives its results or fixtures.

Explore the same tennis research workflows in our example repository. These recipes currently call the broader Flashscore Tennis Scraper or Match Dataset Actor; they are companion examples, not direct calls to this specialized Actor.

Follow the Python setup and .env guide with your own APIFY_TOKEN, or browse the complete catalog and AI assistant instructions. Actor runs follow Apify pricing; the quickstart explains per-run spending limits.

Why this one

  • Live in seconds. A live run returns every match in play with its current set score, game score and server: schedule it every few minutes for a scoreboard, an alert or a dataset of match flow.
  • Scores for any day too. Today, yesterday, tomorrow or a past date; the whole day in one run.
  • All tours. ATP, WTA, Challenger, WTA 125, ITF men and women, Davis Cup and Billie Jean King Cup ties.
  • Context on every row. ATP / WTA rank and points, Elo rating and Elo win probability, and serve and return statistics once a match is under way.
  • Odds when you want them. Switch on Bookmaker odds for in-play and pre-match prices, the best price per player with the bookmaker offering it, and the win probability without the margin. Off by default, so a plain run is cheapest.
  • Filters. By tour, singles or doubles, player name or tournament name.
  • Safe to schedule. Today's matches by default, finished and upcoming included, so a run always has something to show; in live mode a moment with no match in play returns 0 rows and a note in the log, never a failed run.
  • See it live. Today's matches with each favourite by Elo and the Elo leaders of both tours, from the same database your runs read: crawlplant.com/tennis-live-scores.

What can you use it for?

  • Live score widgets and alerts: current set and game score, who serves, a notification when a match goes to a tiebreak.
  • Betting and trading tools: in-play odds next to the score, from the bookmakers of one country.
  • Fantasy and media sites: today's results and tomorrow's order of play without maintaining your own scraper.
  • AI agents: ask "who is playing right now?" and get JSON.

Quick start

  1. Click Try for free with the default input (today's matches with live scores for those in play, up to 50).
  2. Narrow it with Tours, Player name contains or Tournament name contains, or switch Mode to live now for only the matches in play.
  3. Download the table as CSV, Excel or JSON, or save the input as a task and schedule it every few minutes.

Copy to your AI assistant

Paste this into ChatGPT, Claude or any agent so it knows how to use the Actor:

crawlplant/tennis-live-scores on Apify: live tennis scores (ATP, WTA, Challenger, ITF). Input: mode (matches = a day's
matches, the default | live = matches in play now), dateFrom / dateTo (matches mode: today, yesterday, tomorrow, 2026-09-28, -3),
tours (atp, wta, challenger-men, challenger-women, itf-men, itf-women, teams, other), matchType (singles | doubles | all),
status (all | scheduled | live | finished), players / tournaments (name contains), includeStatistics, includeRankings,
includeOdds (default false) with oddsCountry (GB, DE, PL, US...), sortBy (tour | time), maxItems (default 50).
Row: matchId, url, date, startTime, tour, tournament, round, surface, status, statusText, isLive, player1Name, player2Name,
player1Rank, player2Rank, player1Elo, player2Elo, player1EloWinProbability, score, sets, currentGame {player1, player2,
serving}, winnerName, statistics, odds {player1Best, player2Best, player1Average, player2Average, ...}.
Price: $1.00 per 1,000 matches on the Free plan, plus $1.50 per 1,000 matches that carry odds.

Ready-to-use examples

1. Live tennis scores right now (up to 50 matches, $0.05)

{ "mode": "live" }

2. Today's ATP and WTA singles scores (up to 300 matches, $0.30)

{ "mode": "matches", "tours": ["atp", "wta"], "maxItems": 300 }

3. One tournament's matches of the last three days (up to 200 matches, $0.20)

{ "mode": "matches", "dateFrom": "-3", "dateTo": "today", "tournaments": ["Paris Masters"], "maxItems": 200 }

4. Live ATP and WTA matches with in-play odds from UK bookmakers (up to 50 matches, $0.13)

{ "mode": "live", "tours": ["atp", "wta"], "includeOdds": true, "oddsCountry": "GB" }

5. Live matches of one player, ordered by start time (a few matches, under $0.01)

{ "mode": "live", "players": ["Sinner"], "sortBy": "time" }

How to…

Get live tennis scores

mode: "live" (example 1) returns every match in play: score (sets), currentGame (points and who serves), statusText and isLive. Schedule the task every few minutes to keep a scoreboard or a dataset current. The default mode: "matches" returns all of today's matches, with the same live fields on those in play.

Get today's tennis results

mode: "matches" returns the matches of the days you pick. Add "status": "finished" for results only or "status": "scheduled" for the order of play (example 2).

Follow one tournament or one player

tournaments keeps matches whose tournament name contains any of the words (example 3); players keeps matches of a player by name (example 5).

Input options

OptionDefaultDescription
modematchesmatches (a day's matches) or live (in play now)
dateFrom, dateTotodayScores by day: first and last day (UTC), e.g. yesterday, 2026-09-28, -3
toursallatp, wta, challenger-men, challenger-women, itf-men, itf-women, teams, other
matchTypesinglessingles, doubles, all
statusallall, scheduled, live, finished (scores by day)
players[]Player name contains, e.g. Sinner
tournaments[]Tournament name contains, e.g. US Open, Challenger
includeStatisticstrueServe and return statistics (included in the price)
includeRankingstrueATP / WTA rank and points of each player (included in the price)
includeOddsfalseBookmaker odds, charged per match that has them
oddsCountryGBBookmakers licensed in this country
sortBytourtour (ATP first, then WTA...) or time
maxItems50Maximum matches in total

Output fields

FieldDescription
matchId, urlFlashscore's match id and page
date, startTimeDay (UTC) and start time (ISO)
tour, tournament, round, surfaceatp, wta, challenger-men...; "Final", "Semi-finals", "Q1"; hard / clay / grass / carpet
status, statusText, isLivescheduled, live, finished, retired, walkover...; "Set 2", "Set 3 - Tiebreak"
player1Name, player2Name, player1Rank, player2RankBoth sides and their ATP / WTA singles rank
score, sets, currentGameSet-by-set score, each set with tiebreak points, the game in progress and who serves
player1Elo, player2Elo, player1EloWinProbabilityElo before the match and the win probability it gives
statisticsServe and return statistics of the match so far
oddsWith Bookmaker odds: best and average prices, the bookmaker offering each, win probability without the margin
scrapedAt, sourceWhen the run read it; live = read from Flashscore in the run

How much does tennis live score data cost?

Pay per result: platform usage is included. One price per match, statistics and rankings included; odds are charged only on matches that have them, and only when you switch them on.

EventNo discount (Free plan)Bronze (Starter)Silver (Scale)Gold (Business)
Match (per 1,000)$1.00$0.90$0.80$0.70
Bookmaker odds (per 1,000)$1.50$1.35$1.20$1.05
Actor start (per run)$0.00005$0.00005$0.00005$0.00005
Example on the Free planRowsCost
Default run: today's matchesup to 50~$0.05
Live ATP and WTA with oddsup to 50 + 50 with oddsup to ~$0.13
A busy day, every tour300-450~$0.30-0.45

Set a maximum cost per run in the run options to stop a large run at your budget.

Run it through the API

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('crawlplant/tennis-live-scores').call({ mode: 'live', tours: ['atp', 'wta'] });
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.length, items[0]);

Python:

from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("crawlplant/tennis-live-scores").call(run_input={"mode": "matches", "tours": ["wta"], "status": "finished"})
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
print(row["tournament"], row["player1Name"], row["player2Name"], row["score"])

Use with AI agents

The Actor works as a tool in the Apify MCP server for Claude, ChatGPT, Cursor and others:

https://mcp.apify.com?tools=crawlplant/tennis-live-scores

Try "who is playing on Centre Court right now, and what is the score?".

Use it when you need the scores of matches in play or of one day.

Not for a player's career or a long range of past results (use Tennis Match History).

More tennis data

FAQ

How fresh is a live run?

It reads the live feed when it starts: the scores are as current as a Flashscore page opened at that second.

What if nothing is in play?

A live run gives 0 rows and a note in the log; the run still succeeds, so a schedule keeps going.

Does it include doubles?

Yes, matchType: "doubles" or "all"; both players of each pair are in the row.

The data is public sporting results read without logging in, at a polite pace. How you use and publish them is your responsibility, so check the source's terms for your use case.

Questions, a missing field or a source you need? Open an issue on this Actor: we reply within a day. If it saved you time, a short review helps others find it.

Privacy

The data is about professional players' public sporting results. Each run sends the developer anonymous feature-usage statistics (the options used, never the players you asked for); your Apify account id is replaced by a one-way hash.