Tennis Match Data
Last updated November 9, 2026
ATP and WTA match results, schedules, live status, and rankings by date, with set scores, seeds, round, and court as flat rows. Tested on dates back to 2007, with no login. Filter by player, tournament, draw, and status. Refused reads are free.
Install
npx @mambalabsdev/mcp-tennis-match-dataEvery tool here also runs hosted, with no install at all, through Apify's MCP endpoint.
Features
- Results, schedules, and live status by date, tested back to 2007.
- Set scores, seeds, round, court, and winner on each row.
- Filter by player, tournament, draw, and status.
- Current ATP and WTA rankings in the same actor.
- Pay per event: Match row at $0.0018.
Input
modestringoptionalmatches (default) reads results and schedules by date. rankings returns the current ATP and WTA lists.
date_fromstringoptionalFirst UTC date as YYYY-MM-DD, or today, yesterday, or tomorrow. Needed in matches mode.
date_tostringoptionalLast UTC date. Empty means the same as date from. A run reads at most 366 days.
toursarrayoptionalatp, wta, or both (default both). Mixed doubles appears under either.
drawsarrayoptionalmens-singles, womens-singles, mens-doubles, womens-doubles, mixed-doubles, or the shortcuts singles and doubles. Empty means all.
statusesarrayoptionalfinal, retired, walkover, in_progress, scheduled, other, or the shortcuts finished, live, and upcoming. Empty means all.
tournamentsarrayoptionalKeep tournaments whose name holds one of these words, such as wimbledon.
playersarrayoptionalKeep matches with a player whose name holds one of these words, such as sinner.
include_qualifyingstringoptionalyes (default) or no.
whole_tournamentstringoptionalno (default) keeps matches played on the dates asked for. yes returns every match of each tournament running on those dates.
max_matchesstringoptionalThe most match rows in a run. Default 500.
top_nstringoptionalRankings mode: rows per tour, up to 150. Default 100.
max_charge_usdstringoptionalOptional. The run stops before a charge that would pass this amount. Summary rows are always returned.
Output schema
{
"row_type": "string",
"match_id": "string",
"match_date_utc": "string",
"match_day_utc": "string",
"start_time_confirmed": "string",
"tournament": "string",
"tournament_id": "string",
"grand_slam": "string",
"season": "integer",
"draw": "string",
"draw_slug": "string",
"round": "string",
"qualifying": "string",
"status": "string",
"status_detail": "string",
"player_1": "string",
"player_1_id": "string",
"player_1_country": "string",
"player_1_seed": "integer",
"player_2": "string",
"player_2_id": "string",
"player_2_country": "string",
"player_2_seed": "integer",
"winner": "string",
"score": "string",
"set_scores": "array",
"result_text": "string",
"court": "string",
"location": "string",
"rank": "integer",
"previous_rank": "integer",
"points": "integer",
"rank_trend": "string",
"tour_read": "string",
"source_url": "string",
"reads_total": "integer",
"reads_refused": "integer",
"rows_returned": "integer",
"empty_reads": "integer",
"matches_without_players": "integer",
"row_status": "string",
"error_reason": "string",
"billable_events_json": "string",
"scraped_at": "string"
}Pricing
| Event | Free plan price |
|---|---|
| Match row | $0.0018 |
| Ranking row | $0.001 |
| Empty read | $0.002 |
| Actor Start | $0.006 |
Pay per event on the Apify platform. Paid Apify plans pay less per event. No subscription, no seat license.
On the Apify free plan the actor stops at $1.50 of charges a month, about 833 matchs. Any paid Apify plan removes the cap.
Limits
- This reads ESPN, an unofficial source with no published contract for these addresses. ESPN can change or close them without notice, and then reads return free source_report rows until the actor is updated.
- No point by point data, match statistics, odds, or player profile pages.
- ATP and WTA tours as ESPN lists them, with their qualifying rounds. ITF and most Challenger events are not covered.
- match_day_utc is the UTC date of the start time. A late night match can fall on the next UTC date, and a time ESPN has not confirmed shows start_time_confirmed false.
- A date in a period ESPN holds no record for returns no rows. In testing, Wimbledon final weekends returned matches from 2007 to 2025 and none from 2003 to 2006. Coverage of smaller events in older years was not checked.
- Rankings are the current list only, up to 150 per tour.
- A scheduled match with no named player yet has no row and is counted on the summary row.
- Reading many dates takes time: about 6 seconds a date in testing.