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