Tennis Rankings Scraper — ATP & WTA Rankings avatar

Tennis Rankings Scraper — ATP & WTA Rankings

Pricing

from $1.00 / 1,000 ranking records

Go to Apify Store
Tennis Rankings Scraper — ATP & WTA Rankings

Tennis Rankings Scraper — ATP & WTA Rankings

Scrape current ATP (men's) and WTA (women's) tennis rankings: rank, previous rank, rank change, points, player name, age and country. Covers the top 150 per tour from ESPN's public JSON data, with no browser.

Pricing

from $1.00 / 1,000 ranking records

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

11

Total users

4

Monthly active users

19 days ago

Last modified

Categories

Share

What is Tennis Rankings Scraper?

Tennis Rankings Scraper returns the current ATP and WTA singles rankings as one row per player: rank, previous rank, rank change, trend, ranking points, player name, country, and optionally age, birthplace, headshot and player page. Sports apps, fantasy and betting analysts, journalists, data teams and AI agents use it to keep tennis rankings up to date in their own tools, with no API key.

Why sports data teams use it

  • Both tours in one run. ATP (men) and WTA (women) rankings together, or one at a time.
  • Movement built in. previousRank, rankChange and trend show who is rising and falling.
  • Player details. Age, birthplace, headshot and player page with includeAthleteDetails.
  • As deep as you need. From the top 10 to the top 150 per tour.
  • Pay per player row. One small charge per ranking row.

How to use it

Top 50 on both tours:

{
"tours": ["atp", "wta"],
"maxResultsPerTour": 50
}

WTA top 150 with player details:

{
"tours": ["wta"],
"maxResultsPerTour": 150,
"includeAthleteDetails": true
}
InputWhat it controls
toursatp, wta or both (default both)
maxResultsPerTourPlayers per tour, in rank order (default 150)
maxResultsTotal players across tours (default 300)
includeAthleteDetailsAdd age, birthplace, headshot and player page (default on)

Output: tennis ranking data you receive

A real ATP row:

{
"tour": "atp",
"tourName": "ATP (men)",
"rank": 1,
"previousRank": 1,
"rankChange": 0,
"trend": "same",
"points": 11000,
"playerId": "3623",
"playerName": "Jannik Sinner",
"country": "Italy",
"countryCode": "ITA",
"age": 25,
"birthPlace": "San Candido, Italy",
"headshotUrl": "https://a.espncdn.com/i/headshots/tennis/players/full/3623.png",
"playerUrl": "https://www.espn.com/tennis/player/_/id/3623/jannik-sinner",
"scrapedAt": "2026-10-01T19:02:59.963Z"
}
FieldWhat it contains
tour, tourNameATP or WTA
rank, previousRank, rankChange, trendCurrent rank and movement since the last ranking
pointsRanking points
playerId, playerName, firstName, lastNameThe player
country, countryCodeNationality
age, birthPlace, headshotUrl, playerUrlPlayer details, with includeAthleteDetails

OUTPUT in the default key-value store reports the run outcome and rows saved per tour.

Example workflow: a weekly rankings widget

A tennis blog shows a live top-20 table on its homepage. A task runs every Monday after the ranking update with maxResultsPerTour at 20, and an integration pushes rank, rankChange and headshotUrl into the site's widget. Big movers (rankChange of 5 or more) get a short write-up. For deeper sports data such as fixtures and results, they pair it with Flashscore Scraper.

Pricing

This Actor uses Pay per event. Apify platform usage is included in the event price. You pay one event per player row, plus a start event per run. The live Pricing tab on this page shows the current price.

  • Top 50 on both tours = 100 result events.
  • maxResults caps each run, so it doubles as a cost ceiling.

Sports data with AI agents (MCP)

Connect this Actor to an AI agent through Apify MCP and ask in plain language:

Who are the top 10 in the WTA rankings this week, and who moved up the most?

Agent checklist:

  1. Set tours and maxResultsPerTour from the question.
  2. Read rows with get-dataset-items; sort by rankChange for movers.
  3. Quote points and rank together.

API example

curl -X POST "https://api.apify.com/v2/acts/khadinakbar~tennis-rankings-scraper/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"tours": ["atp"], "maxResultsPerTour": 20}'
Your next stepUseWhy
When you then want matches and resultsFlashscore ScraperFixtures, scores and results across sports

Best results

Starting situationHelpful actionExpected outcome
A homepage tableUse a small maxResultsPerTourJust the top players
Weekly updatesSchedule a task after the ranking releaseA fresh ranking each week
Lighter rowsTurn off includeAthleteDetailsRank, points and country only

Builder's note

I found that most people want to know who moved, not only who leads, so every row carries the previous rank and the change. I learned that apps need images and links for each player, so headshots and player pages come in the same row.

FAQ

Do I need an API key?

No. The Actor reads public ranking data.

How often do rankings change?

The ATP and WTA publish new rankings weekly, usually on Mondays, with extra updates during big events.

Does it include doubles?

It returns singles rankings.

How deep can I go?

Up to 150 players per tour.

Responsible use

This Actor collects public tennis ranking data. Use it with attribution where your publication requires it and follow the source's terms. Read Apify's guide on whether web scraping is legal for more context. ATP and WTA are trademarks of their owners. This independent Actor is not affiliated with, associated with, or endorsed by the ATP, the WTA or ESPN. For questions or bugs, open a ticket in the Issues tab.