ParseForge Scrapers

TennisExplorer Match Results Scraper

parseforge/tennisexplorer-scraper

AutomationDeveloper toolsOther

Scrapes TennisExplorer match results by date and tour. Returns each match as a flat row with set-by-set scores, odds, and player details. Export to CSV, JSON, Excel, or XML.

Run this scraper See the API call
Total users
263
Monthly active
145
Total runs
605
Bookmarked
0
Rating
Not rated yet
Last modified
12 days ago

Overview

ParseForge

TennisExplorer Match Results Scraper

Scrape tennis match results from TennisExplorer for any date and tour, up to a million matches per run. Every row includes player names, set scores, match stats, and tournament details. No login or API key. Export to CSV, JSON, Excel, or XML.

TennisExplorer publishes detailed match results for ATP and WTA tours, but manually copying scores or building your own parser is slow and fragile. This Actor reads the public results pages directly for any date you choose, filters by men's or women's tour, and returns every match in a clean, flat schema. It handles tiebreaks, retirements, and walkovers so your dataset is ready for analysis.

Who uses it What they scrape TennisExplorer for
Sports analysts Building a historical database of match outcomes for player performance models.
Betting modelers Gathering match results to backtest betting strategies against real outcomes.
Tennis journalists Pulling daily results to populate match reports and roundups.
App developers Feeding a tennis scores app with structured match data from any date.

What it does

This Actor collects tennis match results from TennisExplorer by date and tour, and returns each match as a flat row with players, scores, and tournament info.

  • ๐Ÿ“… Date-driven scraping: pick any past date in YYYY-MM-DD format, or leave empty for today's results.
  • ๐ŸŽพ Tour filter: choose ATP (men), WTA (women), or both tours in a single run.
  • ๐Ÿ“Š Structured output: every match returns player names, set scores, match stats, and tournament details in a fixed schema.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with TennisExplorer data

๐Ÿ“ˆ Build a historical match database.

A sports analyst runs the Actor for every date in the past five years, collecting ATP and WTA results to train an Elo-based player ranking model.

๐Ÿ“ฐ Populate a daily tennis roundup.

A journalist runs the Actor each morning for yesterday's date, gets all match results, and feeds them into an automated match-report template.

๐Ÿ’ฐ Backtest betting models.

A bettor scrapes a full season of WTA results, joins them with odds data, and measures the profitability of a surface-based betting strategy.

๐Ÿ“ฑ Power a tennis scores app.

A developer schedules the Actor to run hourly, pulling the latest completed matches from TennisExplorer and pushing them to a mobile app's results feed.

Why choose this scraper

What you get
No API key needed Reads public TennisExplorer pages directly, no registration or OAuth.
Handles edge cases Tiebreaks, retirements, and walkovers are parsed into the standard schema.
Flexible volume Collect one day of results or build a multi-year archive with repeated runs.

How it compares

Two other TennisExplorer scrapers on Apify include odds and rankings data, while this Actor focuses on match results with a simple date-and-tour input.

Feature ParseForge Tennisexplorer Scraper - matches, odds, rankings TennisExplorer Scraper - Odds, Line Movement, Players, H2H
Match results by date Yes Yes Yes
Tour filter (ATP/WTA/both) Yes Not listed Not listed
Set-by-set scores with tiebreaks Yes Yes Yes
Match statistics (aces, double faults, etc.) Yes Not listed Not listed
Decimal odds Not listed Yes Yes
Per-bookmaker odds history and line movement Not listed Yes Yes
Player profiles and head-to-head records Not listed Not listed Yes

Configure the run

Drive the Actor with a date and a tour filter, and set a maximum number of matches to cap the run. The Input tab lists every parameter.

A first run with the defaults:

{
 "maxItems": 10
}

A larger pull:

{
 "maxItems": 200
}

Pricing

Pay-per-result: $0.0075 per result collected. You pay only for the results written to your dataset.

Results collected Approximate cost
100 results $0.75
1,000 results $7.50
10,000 results $75.00

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the TennisExplorer Match Results Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to TennisExplorer through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/tennisexplorer-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results for a date I know had matches?

Check that the date is in YYYY-MM-DD format and that matches for that day are published on TennisExplorer. Some lower-tier tournaments may not appear immediately. Try leaving the date empty to confirm today's results work, then retry your specific date.

The run is taking too long or timing out.

Lower the maximum matches setting to reduce the run size. If you need a full day with many tournaments, consider running ATP and WTA separately in two parallel runs.

Some match stats are missing in the output.

TennisExplorer does not always publish full statistics for every match, especially on smaller courts or lower-tier events. Missing stats will appear as empty fields in your dataset.

I'm getting blocked or seeing captchas.

Increase the run's timeout and consider using Apify's residential proxies for the run. You can also reduce the maximum matches to shorten the run duration and lower the request rate.

FAQ

Question Answer
Can I scrape live in-progress matches? No, this Actor reads the daily results pages, which show completed matches. For live scores you would need a different source.
Does it get player statistics like aces and double faults? Yes, match stats that appear on the TennisExplorer results page, such as aces and double faults, are included in the output when available.
How do I scrape multiple dates at once? Run the Actor once per date. You can queue multiple runs with different date inputs using the Apify API or scheduler.
What happens if I leave the date field empty? The Actor defaults to today's date and scrapes the current day's completed results.
Does it include doubles and qualifying matches? The Actor scrapes whatever matches appear on the selected tour's results page for that date, which typically includes all main-draw singles matches. Doubles and qualifying availability depends on what TennisExplorer publishes.
Can I filter by tournament or player? The input lets you filter by tour and date. For tournament-level or player-level filtering, you can apply those filters to the output dataset after the run.
Is there a risk of getting blocked? The Actor runs on Apify's infrastructure with built-in proxy rotation and reasonable request rates to minimize blocking. For very large jobs, using Apify's residential proxies adds extra protection.
What format is the data exported in? You can export your dataset in CSV, JSON, Excel, XML, or RSS from the Apify platform.
Does it handle retirements and walkovers? Yes, retirements and walkovers are captured in the match result fields so you can distinguish them from completed matches.
Can I scrape odds from TennisExplorer? This Actor focuses on match results. For odds data, consider a dedicated odds scraper or one of the TennisExplorer scrapers that includes odds in its listing.

Related actors

Browse the full ParseForge collection for more scrapers.

๐Ÿ†˜ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

โš ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by TennisExplorer.com. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

Input

FieldTypeWhat it doesDefault
date string Results day to scrape, in YYYY-MM-DD format. Leave empty for today's results. not set
tour string (3 options) Which tour's results page to scrape. both
maxItems integer Maximum number of matches to collect per run. 10

Pricing

from $6.79 per 1,000 results

Charged forWhat it isPrice each
result Single result in the default dataset. $0.00679 to $0.0075

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

API

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST ยท run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~tennisexplorer-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "helloWorld": 123
  }'

Examples

Input that runs as-is.

input.json
{
  "helloWorld": 123
}

Reviews

No reviews yet. Be the first.

Issues

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

Related scrapers

Run TennisExplorer Match Results Scraper on Apify All scrapers