tennis-data
ATP and WTA tennis data via ESPN public endpoints — tournament scores, season calendars, player rankings, player profiles, and news. Zero config, no API keys. Use when: user asks about tennis scores, match results, tournament draws, ATP/WTA rankings, tennis player info, or tennis news. Don't use whe
By machina-sports · 634 installs
npx skills add machina-sports/sports-skills --skill tennis-data
Source repository · Upstream listing
Tennis Data (ATP + WTA)
Before writing queries, consult references/api reference.md for endpoints, ID conventions, and data shapes.
Quick Start
Prefer the CLI — it avoids Python import path issues:
CRITICAL: Before Any Query
CRITICAL: Before calling any data endpoint, verify:
The tour parameter is specified ( atp or wta ) — there is no default.
Year is derived from the system prompt's currentDate — never hardcoded.
The tour Parameter
Most commands require tour=atp or tour=wta :
ATP : Men's professional tennis tour
WTA : Women's professional tennis tour
If the user doesn't specify, ask which tour or show both by calling the command twice.
Commands
Command Description
get scoreboard Live/recent tournament scores for a tour
get rankings ATP or WTA player rankings
get calendar Full season tournament calendar
get player info Individual tennis player profile
get news Tennis news articles
See references/api reference.md for full parameter lists and return shapes.
Workflows
Live Tournament Check
1. get scoreboard tour=<atp wta
2. Present current matches by round.
3. For player info, use get player info player id=<id .
Rankings Lookup
1. get rankings tour=<atp wta limit=20
2. Present rankings with points and trend.
Season Calendar
1. get calendar tour=<atp wta year=<year
2. Filter for specific tournament.
Examples
Example 1: Live matches
User says: "What ATP matches are happening right now?"
Actions:
1. Call get scoreboard(tour="atp")
Result: Current tournament matches organized by round with scores and status
Example 2: Women's rankings
User says: "Show me the WTA rankings"
Actions:
1. Call get rankings(tour="wta", limit=20)
Result: Top 20 WTA players with rank, name, points, and trend
Example 3: Upcoming Grand Slam date
User says: "When is the French Open this year?"
Actions:
1. Derive year from currentDate
2. Call get calendar(tour="atp", year=<derived year )
3. Search results for "Roland Garros" (the French Open's official name)
Result: French Open dates, location (Paris), and surface (clay)
Commands that DO NOT exist — never call these
~~ get matches ~~ — does not exist. Use get scoreboard for current match scores.
~~ get draw ~~ — does not exist. Tournament draw data is not available via this API.
~~ get head to head ~~ — does not exist. Head to head records are not available via this API.
~~ get standings ~~ — does not exist. Tennis uses get rankings , not standings.
If a command is not listed in the Commands table above, it does not exist.
Troubleshooting
Error: get scoreboard returns no matches
Cause: Tennis tournaments run specific weeks; no tournament may be scheduled this week
Solution: Call get calendar(tour=...) to find when the next event is scheduled
Error: Rankings are empty
Cause: Rankings update weekly on Mondays; there may be a brief update window
Solution: The command auto retries previous weeks. If still empty, retry in a few minutes
Error: Player profile fails
Cause: Player ID is incorrect
Solution: Use get rankings to find player IDs from the current rankings list, or verify via ESPN tennis URLs
Error: Scores seem delayed or don't update live
Cause: Scores update after each set/match is completed, not point by point
Solution: This is expected behavior. Refresh get scoreboard periodically for updated set scores