WTA Tennis Rankings Scraper avatar

WTA Tennis Rankings Scraper

Pricing

from $9.76 / 1,000 ranking extracteds

Go to Apify Store
WTA Tennis Rankings Scraper

WTA Tennis Rankings Scraper

Export current or historical official WTA singles and doubles rankings with player identity, points, movement, country, ranking date, and profile context.

Pricing

from $9.76 / 1,000 ranking extracteds

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

Share

Export current and historical WTA tennis rankings from the official Women's Tennis Association data feed. Each dataset row contains a singles or doubles rank, ranking points, movement, tournaments played, player identity, country, ranking date, and public WTA profile URL.

Use the Actor for weekly ranking snapshots, points-change monitoring, sports analytics, scouting, editorial data, and reproducible spreadsheet or warehouse exports. It returns official published rankings, not a projected live race or match score feed.

What does the WTA Tennis Rankings Scraper do?

The Actor reads the public structured feed used by WTA's official ranking pages and converts it into a flat Apify dataset. You can:

  • export current singles rankings;
  • export current doubles rankings;
  • collect both ranking lists in one run;
  • request a historical ranking date;
  • restrict output to a rank range;
  • filter players by three-letter WTA country code;
  • cap the total result count with maxItems;
  • schedule recurring snapshots for change analysis;
  • download results as JSON, CSV, Excel, XML, or RSS.

When a requested date is not an official ranking publication date, WTA may return the latest available snapshot on or before that date. The output preserves both the requested date and the actual official rankingDate so downstream comparisons remain auditable.

Who is it for?

  • Sports data analysts track rank, points, and movement from one ranking week to the next.
  • Tennis journalists refresh ranking tables and add source-linked player context to articles.
  • Scouts and coaches identify upward movement or compare country cohorts.
  • Fantasy sports teams seed contests with official standings.
  • Tournament operations teams create bounded ranking snapshots for planning.
  • Data engineers schedule weekly exports to a database, spreadsheet, or BI dashboard.
  • Researchers assemble dated, reproducible public sports datasets.

This Actor provides ranking facts. It does not predict outcomes or provide betting advice.

Why use this WTA rankings extractor?

  • Official source: rows come from WTA's own public ranking service.
  • Singles and doubles: select either list or collect both in one run.
  • Historical dates: request a dated snapshot instead of only today's table.
  • Explicit movement: receive numeric movement, previous rank, and direction.
  • Player context: stable player ID, date of birth, age at ranking date, country, and profile URL are included.
  • Efficient HTTP route: no browser or proxy is needed for normal runs.
  • Typed rows: integrations receive a stable schema rather than raw page HTML.
  • Bounded cost: rank range and maxItems stop unnecessary output.

What data can you export?

FieldMeaning
rankingTypesingles or doubles
rankingDateActual official WTA snapshot date
requestedRankingDateUser-requested historical date, or null for latest
rankCurrent position in the selected ranking list
previousRankPrevious position derived from WTA's movement value
movementPositions gained or lost; positive means upward movement
movementDirectionup, down, or unchanged
pointsOfficial WTA ranking points
tournamentsPlayedTournament count supplied in the ranking row
playerIdStable WTA player identifier
playerNameFull player name
firstNamePlayer first name
lastNamePlayer last name
countryCodeThree-letter country code shown by WTA
dateOfBirthPublished birth date, when available
ageAge on the actual official ranking date
profileUrlPublic WTA player profile URL
sourceUrlOfficial API request that produced the row
fetchedAtUTC extraction timestamp

How to export WTA tennis rankings

  1. Open the Actor in Apify Console.
  2. Select Singles, Doubles, or both under Ranking types.
  3. Leave Ranking date empty for the latest official list.
  4. Optionally enter a historical date in YYYY-MM-DD format.
  5. Optionally add country codes such as USA, POL, or CZE.
  6. Set the minimum and maximum rank eligible for output.
  7. Set Maximum rows to control the global dataset limit.
  8. Click Start.
  9. Open the Results dataset and export it in your preferred format.

A 25-row run is a useful first test before connecting a production workflow.

Input parameters

InputTypeDefaultDescription
rankingTypesstring array["singles"]One or both of singles and doubles
rankingDatestringlatestHistorical date in YYYY-MM-DD; WTA can return the nearest prior official list
countriesstring arrayallOptional three-letter WTA country codes
minRankinteger1First rank eligible for output
maxRankinteger5000Last rank eligible for output
maxItemsinteger100Maximum rows across all selected ranking lists, from 1 to 10,000

The global maxItems limit applies after country and rank filters. If both ranking types are selected, singles is processed first and doubles uses the remaining limit.

Current singles top 25

{
"rankingTypes": ["singles"],
"minRank": 1,
"maxRank": 25,
"maxItems": 25
}

Historical singles and doubles for selected countries

{
"rankingTypes": ["singles", "doubles"],
"rankingDate": "2026-08-10",
"countries": ["USA", "POL"],
"minRank": 1,
"maxRank": 250,
"maxItems": 100
}

Output example

A current ranking row looks like this:

{
"rankingType": "singles",
"rankingDate": "2026-08-24",
"requestedRankingDate": null,
"rank": 1,
"previousRank": 1,
"movement": 0,
"movementDirection": "unchanged",
"points": 8575,
"tournamentsPlayed": 18,
"playerId": 320760,
"playerName": "Aryna Sabalenka",
"firstName": "Aryna",
"lastName": "Sabalenka",
"countryCode": "BLR",
"dateOfBirth": "1998-05-05",
"age": 28,
"profileUrl": "https://www.wtatennis.com/players/320760/aryna-sabalenka",
"sourceUrl": "https://api.wtatennis.com/tennis/players/ranked?page=0&pageSize=100&type=rankSingles&sort=asc&metric=SINGLES",
"fetchedAt": "2026-08-29T06:30:00.000Z"
}

Values reflect the source at run time. The source can update after this example was recorded.

How much does it cost to export WTA ranking rows?

The Actor uses pay per event pricing:

  • Start: $0.005 once per run.
  • Ranking row: $0.016264 per saved row at the BRONZE tier.
  • Higher usage tiers reduce the per-row price automatically.
  • Rows rejected by your filters are not charged as ranking events.

To estimate a BRONZE run, multiply the number of saved rows by the active BRONZE row price and add one start event. For example, a 10-row export uses 10 ranking events plus one start event, while a 100-row export uses 100 ranking events plus one start event.

The displayed Apify estimate applies the exact active tier automatically. Your active Apify tier is the authority for the exact charge shown before a run.

Monitor player ranking and points changes

Schedule the Actor after WTA's normal ranking publication cycle and store each run's dataset in your warehouse. Use playerId plus rankingType as the stable comparison key. Compare rankingDate, rank, points, and movement between snapshots.

A practical pipeline is:

  1. run latest singles every week;
  2. export the dataset to your database;
  3. join it to the prior snapshot on playerId and rankingType;
  4. calculate points and rank deltas;
  5. send internal alerts for movement thresholds relevant to your team.

The Actor itself exports snapshots; alert delivery and cross-run diff storage belong in your downstream automation.

Spreadsheet, database, and BI workflows

  • Export CSV or Excel for editorial ranking tables.
  • Send JSON rows to Google Sheets through an Apify integration.
  • Load weekly snapshots into BigQuery, Snowflake, PostgreSQL, or another warehouse.
  • Build country dashboards using countryCode.
  • Track player trajectories using playerId rather than names.
  • Use rankingDate instead of fetchedAt as the official sports-data time dimension.

Run the Actor through the Apify API

Replace APIFY_TOKEN with your token.

cURL

curl -X POST \
"https://api.apify.com/v2/acts/automation-lab~wta-rankings/runs?token=APIFY_TOKEN&waitForFinish=120" \
-H "Content-Type: application/json" \
-d '{"rankingTypes":["singles"],"maxRank":25,"maxItems":25}'

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/wta-rankings').call({
rankingTypes: ['singles', 'doubles'],
rankingDate: '2026-08-10',
countries: ['USA', 'POL'],
maxRank: 250,
maxItems: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient
client = ApifyClient("APIFY_TOKEN")
run = client.actor("automation-lab/wta-rankings").call(run_input={
"rankingTypes": ["doubles"],
"maxRank": 50,
"maxItems": 50,
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)

Use WTA rankings with MCP

Add the Actor to Claude Code through Apify's MCP server:

claude mcp add --transport http apify \
"https://mcp.apify.com?tools=automation-lab/wta-rankings"

Claude Desktop, Cursor, and VS Code setup

Claude Desktop, Cursor, and VS Code can use this equivalent MCP configuration:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=automation-lab/wta-rankings"
}
}
}

Example prompts:

  • "Run the WTA rankings Actor for the current singles top 50 and summarize the largest movers."
  • "Export the official doubles top 100 as JSON."
  • "Get the 2026-08-10 singles and doubles rankings for USA and POL players."

MCP can start and inspect runs; the Actor's dataset remains the source of complete rows.

Reliability and failure behavior

The Actor validates inputs before contacting WTA. Malformed dates, unsupported ranking types, invalid country codes, inverted rank ranges, and out-of-range limits fail clearly.

Transient network failures, HTTP 429 responses, and temporary server errors receive up to three bounded attempts with backoff. Stable HTTP errors and unexpected response shapes fail the run rather than returning a misleading empty success. No proxy or browser is used in the normal route.

Limits and freshness

  • WTA controls ranking publication frequency, corrections, and historical availability.
  • Rankings are official periodic snapshots, not point-by-point live race projections.
  • A requested non-publication date can resolve to the nearest earlier official rankingDate.
  • tournamentsPlayed can be zero or differ in older source snapshots.
  • Date of birth can be absent for some players; dateOfBirth and age can then be null.
  • Country codes are source labels and can reflect WTA's representation rather than citizenship law.
  • Selecting both lists with a small global maxItems can fill the limit from singles before doubles begins.
  • The public WTA feed is undocumented and can change; strict validation is used to surface such changes.

Responsible use and legality

The Actor accesses public ranking facts without login or private player data. Use the data in accordance with WTA's applicable terms, Apify's terms, database rights, and the laws relevant to your use case. Do not imply endorsement by WTA or redistribute protected branding and media without permission. For high-volume republication, commercial licensing, or regulated decisions, obtain appropriate legal advice and source permissions.

Troubleshooting

Why is the dataset empty?

Check whether your country and rank filters overlap. For example, a narrow top-10 range plus a country with no top-10 player naturally returns no rows. Remove countries, widen maxRank, and run a small test.

Why does rankingDate differ from requestedRankingDate?

WTA publishes rankings on specific dates. When you request another day, the source can return the latest available official snapshot on or before it. Use rankingDate for analysis and retain requestedRankingDate for audit context.

Why did a run fail after retries?

Open the run log and inspect the reported HTTP status or response-shape message. A temporary upstream error may succeed later. A repeated shape-validation error can indicate that WTA changed its public service and the Actor needs maintenance.

Why are there no doubles rows when I selected both types?

maxItems is global and singles runs first. Increase maxItems, narrow the singles rank range, or run doubles separately.

  • Tennis Abstract Player Match History Scraper exports public player match histories, opponents, scores, surfaces, rounds, and match statistics. Use it when you need match-level history rather than official WTA ranking snapshots.

FAQ

Does this Actor scrape ATP men's rankings?

No. It is intentionally scoped to official WTA women's singles and doubles rankings.

Can I get both singles and doubles in one run?

Yes. Set rankingTypes to ["singles", "doubles"] and choose a large enough global maxItems limit.

Can I request older rankings?

Yes. Supply rankingDate in YYYY-MM-DD format. Historical availability is controlled by WTA, and the actual returned date is always recorded.

Does it provide live tennis scores?

No. "Live ranking" search language often refers to the latest standings, but this Actor exports published official ranking snapshots, not match scores or unofficial projected rankings.

Does it require an account, API key, proxy, or browser?

No WTA account or proxy is required for the normal public feed. You still need an Apify account and token when calling the Actor through the Apify API.

How should I identify players across runs?

Use playerId as the stable key. Names and rank positions can change.

Can I filter after the run?

Yes. The default dataset supports Apify exports and API filtering, and every row uses the same flat schema. Applying country and rank filters in the Actor reduces saved rows and ranking-event charges.