ActorStack.dev

ATP and WTA ranking tables, including historical weeks

Singles, doubles and the season race, for the current week or a past one — with the constraint that a historical week has to be a date the source actually published.

By Oswaldo Carabano5 min read

Short answer

Ranking tables are a separate entity type from match results, returning 50 rows per page for either the ATP or the WTA, in singles, doubles or race form. Race tables only exist for the current season, because a race is a running total that resets each year. A historical ranking week must be one of the publication dates the source offers — rankings are published weekly, so an arbitrary Wednesday will not resolve. Leaving the ranking date empty returns the latest published table.

Key points

  • Rankings are their own entity type, so they run separately from results and produce their own clean shape.
  • Three table types: singles, doubles and race. Race exists only for the current season.
  • Rankings are published weekly, so a historical week must be one of the actual publication dates.
  • 50 rows per page, and the ranking is also the default source of players when running the player entity type with no explicit URLs.
  • Leaving the date empty returns the latest published table, which is what a scheduled weekly run wants.
On this page4 sections

Rankings are the simplest of the four entity types and have two constraints worth knowing before you write the input.

Rankings are their own run

Set entityType to rankings and the run returns ranking rows only, 50 per page. It cannot be combined with a results run — one entity type per run is the rule across this Actor.

Three tables, one of them seasonal

rankingTypeWhat it is
singlesThe rolling singles ranking.
doublesThe rolling doubles ranking.
raceSeason-to-date standings. Current season only, because a race resets each year.

rankingTour chooses ATP or WTA. The WTA publishes its own singles table as a reader page, which is a useful cross-check when a scraped table looks wrong.

Historical weeks have to be real weeks

Rankings are published weekly. rankingDate must be one of the publication dates the source offers, so an arbitrary Wednesday will not resolve to a table. Leaving it empty returns the latest published table, which is what a scheduled weekly run wants.

Rankings as a player list

Running the player entity type with playerUrls empty takes the players from whichever ranking the input selects. That is the intended way to build a profile set without assembling URLs by hand — what a player run returns.

Frequently asked questions

Can I get historical ATP rankings?
Yes, by setting a ranking week. It has to be one of the dates the source actually published — rankings come out weekly, so an arbitrary date in the middle of a week will not resolve to a table.
What is the race table?
The season-to-date standings, which reset each year, as opposed to the rolling ranking. Because it is a running total for the current season, race tables only exist for the current season.
How do I get the players in a ranking?
Run the player entity type with `playerUrls` left empty, and it takes the players from the ranking selected in the input. That is the intended way to build a profile set without assembling URLs by hand.

Sources

Every URL below was requested and returned a page on the date shown.

  1. Operator claimchecked 9 Sept 2026
    TennisExplorer Scraper — Actor README and input schemaActorStack / Apify Store
  2. Operator claimchecked 9 Sept 2026
    WTA singles rankingsWomen's Tennis Association
Two players mid-rally on an indoor clay tennis court during a competitive match.
TennisExplorerReference

Field reference

What each of the four entity types returns, which fields are derived rather than read, and the one column that is recounted when the source publishes a flag instead.

7 min
A single tennis ball resting on the red clay surface of an empty court.
TennisExplorerReference

Player profiles

Profiles with as many past seasons as you ask for, one request per season each — and a deliberate reduction for players under 18.

5 min
Two players mid-rally on an indoor clay tennis court during a competitive match.
TennisExplorerGuide

Scrape tennis results

A walkthrough of extracting tennis data: one entity type per run, the day boundary that has to be pinned, and the two enrichments that cost an extra request each.

8 min