WTA Tennis Scraper avatar

WTA Tennis Scraper

Pricing

from $2.80 / 1,000 matches

Go to Apify Store
WTA Tennis Scraper

WTA Tennis Scraper

Extract official WTA tour data by player name: match history with scores, ranking points and prize money, live ranking tables, player profiles and the tournament calendar. Export scraped data, run the scraper via API, schedule and monitor runs, or integrate with other tools or AI workflows.

Pricing

from $2.80 / 1,000 matches

Rating

0.0

(0)

Developer

Matvey

Matvey

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

WTA Tennis Scraper extracts official WTA tour data — match histories, ranking tables, player profiles and the tournament calendar — straight from the women's tour's own public data service. You look players up by name, not by numeric ID, and every row comes back flat and ready for a spreadsheet, a database or an AI agent. No login, no API key, no official API needed.

Most tennis scrapers read a third-party score aggregator. This one reads what the tour itself publishes, so each match row carries the things aggregators do not have: the ranking points earned, the prize money won, the seeding, the entry type, the draw size and the official tournament tier.

What data can WTA Tennis Scraper extract?

Four datasets, chosen with the What to collect input.

ModeOne row isTypical use
🎾 Player matchesOne match a player playedForm guides, head-to-head research, model training data
🏆 RankingsOne player in the current ranking tableRanking snapshots, movement tracking
👤 PlayersOne player profileBuilding a player reference table
📅 TournamentsOne tournament editionCalendars, prize-money analysis, surface breakdowns

Match fields

FieldExample
date2026-08-13
tournamentName / tournamentTitleCINCINNATI / Cincinnati Open
levelGrand Slam, WTA 1000, WTA 500, WTA 250, WTA 125, ITF
surface / indoorOutdoorHARD / outdoor
roundF, SF, QF, R16, R32, R64, R128, Q
playerName / playerRank / playerSeed / playerEntryAryna Sabalenka / 1 / 1 / Q
opponentName / opponentRank / opponentSeedRebeka Masarova / 112 / —
score6-2 7-6(6) — as published, from the winner's side
won / winnerName / loserNametrue / Aryna Sabalenka / Rebeka Masarova
outcomecompleted, retired, walkover, defaulted, bye
rankingPoints195
prizeWon / tournamentPrizeMoney59100 / 1064510
discipline / partnerNamesingles or doubles, with the partner on doubles rows

Ranking fields

rank, points, tournamentsPlayed, movement (places gained or lost since the previous table), rankedAt (the date the table was published), plus the full player profile.

Tournament fields

tournamentName, title, year, level, startDate, endDate, surface, indoorOutdoor, city, country, singlesDrawSize, doublesDrawSize, prizeMoney, prizeMoneyCurrency.

How to scrape WTA tennis data

  1. Click Try for free and open the input form.
  2. Leave What to collect on Player matches.
  3. Type one or more players into Player names — partial names work, swiatek finds Iga Swiatek.
  4. Set Maximum rows to something small like 50 for the first run.
  5. Click Start, then open the Output tab and export to CSV, Excel or JSON.

There is nothing else to configure. No proxy, no cookies, no account.

⬇️ Input

WTA Tennis Scraper input: mode, player names, date window and row limit

{
"mode": "player-matches",
"playerNames": ["Aryna Sabalenka", "Iga Swiatek"],
"dateFrom": "2026-01-01",
"dateTo": "2026-08-31",
"maxItems": 100,
"newestFirst": true
}

Matches inside a date window

Played from and Played until keep only the matches played in that window, in YYYY-MM-DD. Either one works on its own: set only Played from for "everything since the Australian Open", only Played until for form before a given tournament. The window is applied to each player separately, so a request for two players returns both of their seasons, cut the same way. A season number in Season still works and is faster when a whole calendar year is what you want.

Searching by name instead of ID

Other tennis Actors ask for a numeric player or tournament ID and leave you to find it yourself. Here you type the name. The Actor resolves it against the tour's player index (36,000+ players, current and historical) and logs which player it picked when a name is ambiguous, so you can tighten the spelling if needed. IDs still work if you already have them — put them in Player IDs.

Filtering one season

{
"mode": "player-matches",
"playerNames": ["Coco Gauff"],
"year": 2026,
"maxItems": 200
}

Ranking table

{ "mode": "rankings", "rankingType": "singles", "maxItems": 100 }

⬆️ Output

WTA Tennis Scraper output: one row per match with date, tournament, round, players and score

One flat row per match. No nested objects, so CSV and Google Sheets exports stay readable.

{
"type": "match",
"date": "2026-08-13",
"tournamentName": "CINCINNATI",
"tournamentTitle": "Cincinnati Open - Cincinnati, OH, USA",
"level": "WTA 1000",
"surface": "HARD",
"indoorOutdoor": "outdoor",
"round": "R32",
"discipline": "singles",
"playerName": "Aryna Sabalenka",
"playerCountry": "BLR",
"playerRank": 1,
"playerSeed": 1,
"opponentName": "Xinyu Wang",
"opponentCountry": "CHN",
"opponentRank": 36,
"score": "6-1 6-3",
"won": true,
"winnerName": "Aryna Sabalenka",
"loserName": "Xinyu Wang",
"outcome": "completed",
"rankingPoints": 120,
"prizeWon": 81752,
"tournamentPrizeMoney": 7433076
}

The tour publishes a score from the winner's side, so score alone does not say who won. The row states it outright: won is about the player you asked for, and winnerName and loserName name both sides.

How much does it cost to scrape WTA data?

Pay per row, with no charge for a run that returns nothing.

EventPrice per 1,000
Match$4.00
Ranking row$3.00
Player profile$2.00
Tournament$2.00

The Apify free plan includes $5 of monthly usage, which is roughly 1,200 match rows a month at no cost — enough to pull the full recent history of a dozen players. Paid Apify plans get tiered discounts down to $2.80 per 1,000 matches.

This Actor talks to a public JSON service over plain HTTP. It runs no browser and needs no residential proxies, which is why it is priced below scrapers that do.

Use cases for WTA data

Betting and prediction models

Ranking at the time of the match, seeding, surface, round and result in one row — the feature set a match-outcome model actually needs, with a career of history behind it.

Sports media and content

Head-to-head records, career win-loss on a surface, prize money earned in a season. Pull the rows, publish the story.

Player and agency analytics

Ranking points and prize money per tournament, entry type (qualifier, wild card, lucky loser), and how far a player went in each draw.

AI agents and RAG pipelines

Flat, literal field names and a small input schema mean an agent can call this Actor correctly without reading the docs. It works through the Apify MCP server like any other tool.

Integrations

Run it from the Apify API, the Python or JavaScript client, the CLI, or a scheduled task. Connect it to n8n, Make, Zapier, Google Sheets or Slack through the Apify integrations, or wire it to your own service with a webhook that fires when a run finishes.

from apify_client import ApifyClient
client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('lergassy/wta-tennis-scraper').call(run_input={
'mode': 'player-matches',
'playerNames': ['Iga Swiatek'],
'maxItems': 50,
})
for row in client.dataset(run['defaultDatasetId']).iterate_items():
print(row['date'], row['tournamentName'], row['score'])

Error rows

When a player name matches nothing, or the data service fails on one request, the Actor writes an error row instead of stopping the run:

{ "type": "error", "scope": "playerSearch", "query": "Zzzz Nonexistent", "error": "no WTA player matched this name" }

Error rows are never charged. The rest of the run continues, so one bad spelling in a list of forty players does not cost you the run.

❓ FAQ

This Actor reads the public data service behind wtatennis.com. That site's robots.txt allows all crawlers on all paths, the data is published for public viewing, and match results are facts rather than creative work. No login is used and no personal data beyond what the tour publishes about professional players — name, country, date of birth, results — is collected. If your use case is commercial and unusual, check with your own lawyer.

How fresh is the data?

Rankings update weekly, on the tour's own schedule, and the rankedAt field tells you exactly which table you got. Match results lag the live schedule: a tournament that finished in the last week or two may not have landed yet. This Actor is for history and analysis, not live scores. If you need a match in progress, you need a live-scoring feed, not this.

Does it cover ATP or men's tennis?

No. This is the WTA tour: women's singles and doubles, including WTA 125 and the ITF events that count toward WTA rankings. Men's tennis is a separate source with a separate access story.

How far back does the history go?

The tournament calendar reaches back to 1960. Match histories go back to the start of each player's professional record — 988 matches for Aryna Sabalenka, 1,221 for Venus Williams, all reachable in one run.

Can I use it with the Apify API?

Yes. Every Actor on Apify is an API endpoint. See the API tab for ready-made calls in curl, Python, JavaScript and the CLI.

Can I use it through an MCP server?

Yes. It is exposed through the Apify MCP server, so Claude, ChatGPT, Cursor and other MCP clients can call it as a tool. The input schema is small and literal on purpose.

Is one row one match?

Yes — one row per match, per player you asked for. If you request two players who met each other, that match appears twice, once from each player's point of view.

Why is a name matched to the wrong player?

Common surnames can collide. The run log prints every alternative it found, so you can switch to the full name or drop the exact ID into Player IDs.

Your feedback

Found a missing field, a wrong mapping, or a player the search cannot find? Open an issue on the Issues tab or leave a review — both get answered.

You might also like

ActorWhat it does
Agoda Reviews ScraperHotel reviews and ratings from Agoda
Trip.com ScraperHotels, prices and reviews from Trip.com
Google Flights ScraperFlight itineraries, prices and booking links
Trustpilot Reviews APICompany reviews and ratings from Trustpilot
Document Text ExtractorText and OCR from PDFs and documents