TennisExplorer Match Results Scraper

Export public TennisExplorer match results by date and tour, with players, scores, set results, tournament context, odds, and source links.

Data fields

FieldTypeDescription
sourceUrlstringValue exported as sourceUrl.
matchUrlstringValue exported as matchUrl.
matchIdstringValue exported as matchId.
tournamentNamestringValue exported as tournamentName.
tournamentUrlstringValue exported as tournamentUrl.
tourstringValue exported as tour.
eventDatestringValue exported as eventDate.
roundstring | nullValue exported as round.

Input preview

datesResult dates *
toursTours
maxItemsMaximum matches
includeMatchDetailsInclude public match details

API and agents

This actor can be run through Apify API, datasets, webhooks, schedules, and the official Apify MCP server.

Ready-to-run examples

Open a saved Apify example, adjust the input, and run the actor in your own Apify account.

View all examples

How this actor works

See example inputs, outputs, API usage, and practical limits before running this actor on Apify.

Open Apify page

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 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 maxItems value to validate your downstream mapping.
  • Choose atp-single or wta-single when you need a single competition category.
  • Preserve sourceUrl and matchUrl in 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.

Common questions

Questions and answers reused from the canonical actor README.

Why is odds missing?

TennisExplorer does not display odds for every match; the Actor does not invent them.

Does it require a login?

No. This Actor only requests publicly available result pages.

How can I export TennisExplorer match results by date?

Add one or more ISO dates to dates, choose the tours you need, and set maxItems for the whole export.

Can I use TennisExplorer match results in an API workflow?

Yes. Use the Apify API example above or download the default dataset; each row includes stable match and source links for downstream mapping.

Why did a selected date return no rows?

The public page may have no completed matches for that date and tour, or may not list the requested result category.