This tennis match results scraper exports public TennisExplorer results for one or more dates and tours. Get tournament context, both players, final and set scores, and publicly displayed odds in clean dataset rows for a reliable tennis results API workflow.
Who is it for?
This TennisExplorer scraper is for tennis analysts, sports-data teams, journalists, and developers who need a repeatable export of completed matches shown publicly on TennisExplorer.
Use it to create a date-based result archive, refresh a daily ATP or WTA feed, or send normalized match rows to a spreadsheet, database, dashboard, or AI workflow.
What it exports
Each match row includes the requested date, tour filter, tournament and match links, TennisExplorer match ID, player names and links, winner, final score, set-by-set score pairs, and odds where they are publicly displayed.
- Match identity: source URL, match URL, and match ID.
- Tournament context: tournament name, tournament URL, selected tour, and requested date.
- Players and result: both player names, public profile links, winner, score, and set scores.
- Optional public values: odds, round, and status only when they are shown in the source result list.
Input recipes
Daily ATP and WTA results
{
"dates": ["2026-08-27"],
"tours": ["atp-single", "wta-single"],
"maxItems": 50
}
Multi-day results archive
{
"dates": ["2026-08-27", "2026-08-26"],
"tours": ["all"],
"maxItems": 100
}
One tour with a small export limit
{
"dates": ["2026-08-27"],
"tours": ["wta-single"],
"maxItems": 20
}
Input settings
| Input | Description |
|---|---|
dates |
Required list of dates in YYYY-MM-DD format. |
tours |
Optional list: all, atp-single, atp-double, wta-single, wta-double, or mix. |
maxItems |
Maximum matches to save across the whole run. Start with a small limit while testing a workflow. |
includeMatchDetails |
Reserved for a future public-detail enrichment option. The current release exports the public result-list fields described below. |
Example output
{
"eventDate": "2026-08-27",
"tour": "atp-single",
"tournamentName": "US Open",
"player1Name": "Player One",
"player2Name": "Player Two",
"winnerName": "Player One",
"score": "2-0",
"setScores": ["6-4", "6-3"],
"odds": { "player1": 1.62, "player2": 2.3 },
"matchUrl": "https://www.tennisexplorer.com/match-detail/?id=example"
}
The example uses illustrative player and match values to show the row shape. Actual availability of odds, round, status, and profile links varies by public result page.
Tennis results API use cases
- Build historical tennis result datasets by calendar date.
- Monitor daily ATP and WTA completed matches.
- Feed player-performance and score-analysis workflows.
- Join match results to your own player, tournament, or odds data.
- Create scheduled spreadsheet or database imports from an Apify dataset.
API usage
Run the Actor from the Apify API with your normal Actor input, then download the default dataset as JSON, CSV, Excel, or XML.
Node.js
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/tennisexplorer-match-results-scraper').call({
dates: ['2026-08-27'],
tours: ['atp-single'],
maxItems: 20,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
Python
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("fetch_cat/tennisexplorer-match-results-scraper").call(run_input={
"dates": ["2026-08-27"],
"tours": ["wta-single"],
"maxItems": 20,
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)
cURL
curl -X POST \
"https://api.apify.com/v2/acts/fetch_cat~tennisexplorer-match-results-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"dates":["2026-08-27"],"tours":["atp-single"],"maxItems":20}'
MCP and AI agents
Use this Actor from an MCP-compatible AI client through Apify MCP. Add ?tools=fetch_cat/tennisexplorer-match-results-scraper to the MCP server URL so your client can discover this Actor as an available tool:
https://mcp.apify.com?tools=fetch_cat/tennisexplorer-match-results-scraper
Add the server to Claude Code, then scope tool discovery to this Actor:
claude mcp add apify --transport http "https://mcp.apify.com?tools=fetch_cat/tennisexplorer-match-results-scraper"
Or use this MCP configuration:
{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=fetch_cat/tennisexplorer-match-results-scraper"
}
}
}
Example prompts:
- "Export up to 20 ATP singles results for 2026-08-27 and summarize the winners."
- "Fetch public WTA singles results for 2026-08-27, retaining source URLs and any displayed odds."
Give the agent a date, one or more tours, and a conservative maxItems value. Ask it to retain the returned dataset fields and distinguish unavailable public values from missing data.
Tips for reliable exports
- Use ISO dates such as
2026-08-27. - Start with one date and a low
maxItemsvalue to validate your downstream mapping. - Choose
atp-singleorwta-singlewhen you need a single competition category. - Preserve
sourceUrlandmatchUrlin downstream data for review and traceability. - Treat optional values as nullable: public result pages do not display every field for every match.
Data and responsible use
Use this Actor only for public TennisExplorer results and comply with TennisExplorer terms, applicable law, and the limits of the source data. Do not treat a missing public field as a factual value.
Support
For input or output questions, open an issue from this Actor's Apify page and include the date, tour, and a sample public result URL.