ATP and WTA Tennis Rankings Scraper avatar

ATP and WTA Tennis Rankings Scraper

Pricing

from $0.80 / 1,000 ranking entries

Go to Apify Store
ATP and WTA Tennis Rankings Scraper

ATP and WTA Tennis Rankings Scraper

Current ATP and WTA tennis rankings from Flashscore: singles, doubles, the race to the finals and doubles team races. Rank, points, movement, country and player links. Filter by player or country. From $1 per 1,000 entries.

Pricing

from $0.80 / 1,000 ranking entries

Rating

0.0

(0)

Developer

CleanScrape

CleanScrape

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Download the current ATP and WTA tennis rankings from Flashscore as CSV, Excel or JSON. Every entry has the rank, ranking points, last week's rank and the movement, the country, and a link to the player.

Eight lists are available:

ListWhat it ranksSize (Oct 2026)
ATP singles rankingsMen, 52-week ranking2,296 players
WTA singles rankingsWomen, 52-week ranking1,547 players
ATP singles raceMen, this season (race to the ATP Finals)2,255 players
WTA singles raceWomen, this season (race to the WTA Finals)373 players
ATP doubles rankingsMen's doubles, one entry per player2,801 players
WTA doubles rankingsWomen's doubles, one entry per player1,800 players
ATP doubles team raceMen's doubles teams this season500 pairs
WTA doubles team raceWomen's doubles teams this season159 pairs

Take the top 100, a whole list, or only the players or countries you follow. A list takes a few seconds; all eight in full take under a minute.

It is built for fantasy and betting models, tennis media and federations, coaches tracking their players, and anyone who needs ranking data in a spreadsheet or an app. No Flashscore account, cookies or API key is needed. This is an independent tool, maintained by CleanScrape, and not affiliated with Flashscore, the ATP or the WTA.

Start with a small run

The form opens with the ATP and WTA singles rankings, top 100 each. Start it as it is to see the output, then change the lists.

  1. In Ranking lists, choose one or more lists.
  2. Set Entries per list: 10 for the top 10, 100 for the top 100, 5000 for the whole list.
  3. Optional: fill in Only these players or Only these countries.

Open the Rankings view on the Output tab, then export to CSV, Excel or JSON.

Examples

The top 100 of both singles rankings:

{ "rankings": ["atp", "wta"], "maxEntries": 100 }

Every list in full, for a weekly snapshot:

{ "rankings": ["atp", "wta", "atp-race", "wta-race", "atp-doubles", "wta-doubles", "atp-doubles-race", "wta-doubles-race"], "maxEntries": 5000 }

Where some players stand in the ranking and in this season's race:

{ "rankings": ["atp", "atp-race", "wta", "wta-race"], "players": ["Jannik Sinner", "Carlos Alcaraz", "Coco Gauff", "Iga Swiatek"] }

Every Spanish and American player in the singles rankings:

{ "rankings": ["atp", "wta"], "countries": ["ESP", "USA"], "maxEntries": 5000 }

Choose a ready-to-run example

Each example opens with its input filled in. Change the lists, players or countries and run it.

ExampleWhat it does
ATP and WTA top 100 rankingsThe current top 100 of both singles rankings with points, movement and country. 200 entries, $0.20.
Where Sinner and Alcaraz stand in the ranking and the raceTwo players' ATP ranking and race position. Type your own players. About $0.008.
All US players in the ATP and WTA rankingsEvery American in both singles rankings (386 entries on Oct 19, 2026). Type another country or code. About $0.39.
ATP and WTA doubles team race standingsEvery pair in both doubles team races with both partners. About 660 pairs, $0.66.

Players and countries

Players: type a name or paste a Flashscore player link, one per line.

  • Names match in any order, without accents and regardless of case: Jannik Sinner, sinner and Sinner Jannik all find the same player, and Swiatek finds Świątek.
  • A single surname finds everyone with that surname. Type the full name or paste the link to be exact.
  • Links from any Flashscore site work, with or without https://.

Countries: country names or the three-letter codes used by the ATP and WTA, one per line. ESP, Spain, USA, United States, GBR, UK, Czechia and CZE all work.

  • Flashscore lists Russian and Belarusian players under the country World (they play without a national flag). Type World to get them. A search for Russia finds nothing, and the run says so.

An entry is kept when it matches any of your players or any of your countries. A doubles pair is kept when either partner matches. With players or countries, the whole list is searched, and Entries per list caps how many matches are saved from each list.

If a player or country is not in any of the chosen lists, the run message names it, for example Not found in the chosen lists: Roger Federer. The other entries are still saved.

What each entry contains

ColumnMeaning
RankPosition in the list. Tied entries share a rank
NamePlayer name as Flashscore writes it, usually surname first. Doubles teams: both partners, separated by /
CountryThe player's country. Doubles teams: both countries. World means no national flag
PointsRanking points
Previous rankRank in the previous edition. Empty for a new entry
Rank changePlaces gained since the previous edition: positive moved up, negative moved down
Ranking list, Ranking name, Tour, Discipline, RaceWhich list the entry comes from
Ranking dateDate of the ranking edition (YYYY-MM-DD)
Player ID, Player linkFlashscore player ID and page. Empty for doubles teams; see Players
PlayersEach player of the entry with name, ID, country and link: one for players, two for teams. In CSV these are the players/0/… and players/1/… columns
Collected atWhen the list was read (UTC)

One entry in JSON:

{
"rankingList": "atp-race",
"rankingName": "ATP singles race",
"tour": "atp",
"discipline": "singles",
"race": true,
"rankingDate": "2026-10-19",
"rank": 2,
"previousRank": 2,
"rankChange": 0,
"points": 7950,
"name": "Sinner Jannik",
"country": "Italy",
"playerId": "6HdC3z4H",
"playerUrl": "https://www.flashscore.com/player/sinner-jannik/6HdC3z4H/",
"players": [{ "name": "Sinner Jannik", "playerId": "6HdC3z4H", "country": "Italy", "playerUrl": "https://www.flashscore.com/player/sinner-jannik/6HdC3z4H/" }],
"sourceUrl": "https://www.flashscore.com/tennis/rankings/atp-race/",
"collectedAt": "2026-10-23T08:08:10.011Z"
}

A doubles team entry has "name": "Dabrowski Gabriela / Luisa Stefani", "country": "Canada / Brazil" and both partners under players.

Every run also saves a Run report with each list's edition date, how many entries it has, how many matched your filters, how many were saved, and why the run stopped. Open it from the Output tab.

Pricing

You pay for each list that loads and for each saved entry:

What is chargedPrice
Ranking entry saved$1.00 per 1,000 entries
Ranking list loaded$0.002 per list

For example:

RunCost
One player in the ATP singles ranking (1 list, 1 entry)$0.003
Four players in the ATP and WTA rankings and races (4 lists, 8 entries)$0.016
Top 100 of the ATP and WTA singles rankings (2 lists, 200 entries)$0.20
All eight lists in full (8 lists, about 11,700 entries)about $11.75

A list is charged when it loads, also when none of its entries match your players or countries; the run message then says how many lists were charged. Nothing is charged for input that can't run, for a list Flashscore did not return, or when the run stops before a list loads. Apify plan discounts apply to both prices: 10% on Bronze, 15% on Silver and 20% on Gold and higher.

Set a spending limit under Run options for large runs. The run stops cleanly before it reaches the limit and keeps everything saved so far.

Schedule it

The ATP and WTA publish new rankings every week, usually on Monday. Create a task with your lists and players, then add a schedule (for example every Monday at 12:00 UTC) to collect each new edition. Each entry has the Ranking date, so weekly runs build a history you can chart.

Use it from an API or an AI agent

Run it from your code with the Apify API or a client library. For example, with curl (replace the token with your own):

curl -X POST "https://api.apify.com/v2/acts/cleanscrape~tennis-rankings-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"rankings": ["atp", "wta"], "maxEntries": 10}'

Or with Python (pip install apify-client):

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("cleanscrape/tennis-rankings-scraper").call(run_input={
"rankings": ["atp", "atp-race"],
"players": ["Jannik Sinner", "Carlos Alcaraz"],
})
for entry in client.dataset(run["defaultDatasetId"]).iterate_items():
print(entry["rankingName"], entry["rank"], entry["name"], entry["points"])

It also works as a tool in Claude, Cursor and other AI assistants that support MCP, through Apify's MCP server. Add this server and sign in with your Apify account when asked:

https://mcp.apify.com?tools=cleanscrape/tennis-rankings-scraper

Then ask in plain words, for example: "Where are Jannik Sinner and Carlos Alcaraz in the ATP ranking and the race this week?" The assistant runs the Actor in your Apify account and reads the results. The prices are the same as in Console.

Match results and statistics

For match results, statistics, point-by-point, form and head-to-head, use the Flashscore Tennis Scraper for Match History and Stats. Both use the same Flashscore player IDs, so rankings and matches can be joined on playerId.

Common questions

How current are the rankings?

They are the edition Flashscore shows when the run starts, usually Monday's official ranking. The Ranking date column says which edition you have.

Can I get past rankings?

No. Flashscore shows the current edition only. A weekly schedule builds your own history from now on.

Are live or projected rankings included?

No. The lists are the published editions.

Why does a doubles team race have pairs while doubles rankings have players?

That is how the tours rank them. The doubles rankings rank each player on their own results with any partner. The team races rank fixed pairs for the season finals.

Is there an official ATP or WTA rankings API?

Not a free public one that we know of. The ATP and WTA show the rankings on their own websites. This Actor reads the same rankings from Flashscore's public pages and gives them to you as a table, CSV or JSON.

Do I need a Flashscore account?

No. The rankings are public. No account, cookies or API key is used.

Can I export to Excel or Google Sheets?

Yes. Export the dataset as Excel (XLSX) or CSV from the Output tab, or connect Google Sheets through an Apify integration.

The Actor reads public pages that anyone can open without an account, at a gentle pace, and it does not get around bot checks. Rankings are facts about public sporting results. Check the rules that apply to how you use and publish the data. This is not legal advice.

How much does it cost?

$1 per 1,000 entries plus $0.002 per list. The top 100 of both singles rankings costs $0.20. See Pricing above.

Good to know

  • Times are UTC.
  • The ATP doubles team race lists up to 500 pairs, as Flashscore publishes it.
  • If Flashscore changes its data feed or refuses requests, the run stops with a clear message instead of saving empty or wrong rows.

More tools from CleanScrape

Support

Questions or a reproducible problem: use the Issues tab or email contact.cleanscrape@gmail.com with the run ID.

If the Actor was useful, an honest review on its Store page helps other people find it.