New · updated every hour

Every match of a player's career, from one name.

Type a name, get the whole career: ATP, WTA, Challenger and ITF singles and doubles back to 1990, newest first. One row per match with the score, round, surface, opponent and duration, both players' Elo before the match with its win probability, and serve and return statistics.

Independent tool, not affiliated with Flashscore, Livesport, the ATP, the WTA or the ITF.

since 1990every ATP and WTA match
544Sinner's career matches, one run
Elobefore every match, per surface
since 2012serve and return statistics
MCPa tool for AI agents
Live data

Straight from the tennis database.

What your runs read: decades of matches, every player with their own row of results, and the Elo leaders of both tours. Matches update every hour.

What you get

One row per match, the whole career.

Score, round, surface, Elo and statistics arrive in the same row, newest match first, ready for a model, a player page or a quote. Here is a real one.

sample match rowWimbledon · Final · 2026-07-12

Sinner J. beat Zverev A. 6-7(7) 7-6(2) 6-3 6-4 228 min

Elo before the match
2717 v 2483
Elo win probability
76%
grass Elo
2157 v 1988
tour · surface
ATP · grass
aces
15 v 17
winners
58 v 49

Match

  • date and start time
  • tour and tournament
  • round Q1 … Final
  • surface and indoor
  • set-by-set score with tiebreak points
  • winner
  • duration

Players

  • both players with ids, links and countries
  • Elo before the match overall and per surface
  • Elo win probability

Statistics

  • aces
  • double faults
  • 1st serve %
  • points won on 1st and 2nd serve
  • break points saved and converted
  • for the match and each set

Doubles

  • both players of each pair with matchType

Filters

players

Head-to-head

Add a rival's name and get every meeting, each with its score, round and both players' Elo at the time.

surfaces

One surface

Hard, clay, grass or carpet: a player's record where it matters.

tournaments

The events you pick

Tournaments whose name contains a word: Wimbledon, Masters, or all four Grand Slams.

status

What's next

Scheduled matches: a player's next matches, or the ones in play right now.

Use cases

A career in one run, for whatever you build.

bettors & modellers

Prediction models

Years of results per player with pre-match Elo and serve statistics, with no result leaking into its own rating.

journalists & scouts

Records that matter

A player's record on a surface, at the Grand Slams or against one rival.

fantasy & apps

Player pages

Career data for every player page, without maintaining your own scraper.

AI agents

Answers with evidence

"How has Sinner done against Alcaraz on clay?" The agent gets every meeting as JSON, not a guess.

How to run

From a name to a whole career in seconds.

  1. 01

    Open it on Apify

    Sign in with a free Apify account. No card needed to try.

  2. 02

    Type the names

    Put players in playerUrls, add filters if you want them, and raise maxItems for whole careers.

  3. 03

    Get your rows

    Download CSV, Excel or JSON, call the API, or save the input as a task and schedule it to keep a dataset current.

More inputs to try

  • { "playerUrls": ["Jannik Sinner"], "players": ["Alcaraz"] }every meeting of two rivals
  • { "playerUrls": ["Carlos Alcaraz", "Iga Swiatek"], "surfaces": ["clay"], "maxItems": 1000 }clay-court matches of several players
  • { "playerUrls": ["Novak Djokovic"], "tournaments": ["Australian Open", "French Open", "Wimbledon", "US Open"], "maxItems": 1000 }Grand Slam matches only
  • { "playerUrls": ["Coco Gauff"], "status": "scheduled" }a player's next scheduled matches
  • { "playerUrls": ["Rajeev Ram"], "matchType": "doubles", "maxItems": 1000 }a doubles career
{
  "playerUrls": ["Jannik Sinner"],
  "maxItems": 2000
}

Jannik Sinner's whole career: 544 singles matches from his first ITF event in 2018, newest first.

Reliability

Runs that don't break.

The same factory promises as every CrawlPlant Actor. How the factory works

Updated every hour

Careers come from our tennis database of more than 900,000 matches, updated every hour.

A career in seconds

A whole career comes back in a few seconds, with no scraping of hundreds of pages during your run.

Names just work

A name shared by several players takes the best-known one and lists the others in the run's warnings.

Checked every 3 hours

Canary checks test the tennis database and watch its freshness around the clock.

Your budget, your cap

Set a maximum cost per run and a large run stops at your budget.

Pricing

Pricing

$1.00per 1,000 matches

Down to $0.70 per 1,000 on Apify's Gold plan. One price per match: statistics and Elo are included. Platform usage is included too.

  • Sinner's whole career, 544 matches: about $0.54
  • Djokovic's whole career, 1,444 matches: about $1.44
  • Sinner v Alcaraz, every meeting: about $0.02
  • No subscription. The free plan is enough to try it
Events and prices per 1,000, on Apify's Free and Gold plans
eventFreeGold
match score, Elo and statistics included$1.00$0.70
FAQ

About this Actor.

General questions are on the home page. Need odds, rankings or player statistics too? See Flashscore Tennis. Something else? piotr@crawlplant.com

How far back does it go?

ATP and WTA matches from 1990, Challenger from 2008 and ITF from 2011. Serve and return statistics cover ATP and WTA matches from 2012.

Can I search by name?

Yes. "Jannik Sinner", "Swiatek" or "Alcaraz" finds the player; paste a Flashscore player URL to pick one exactly. A name shared by several players takes the best-known one and lists the others in the run's warnings.

How is Elo calculated?

Every singles match since 1990 updates both players' ratings, with a K-factor that shrinks as a player plays more matches and a separate rating per surface. Each row keeps the ratings both players had before the match, so a result never counts in its own numbers.

Does it include doubles?

Yes. Set "matchType": "doubles" and both players of each pair are in the row.

Can an AI agent use it?

Yes. Add https://mcp.apify.com?tools=crawlplant/tennis-match-history to any MCP client and the agent can pull any player's history on its own, to answer questions like "how has Sinner done against Alcaraz on clay?".