Install any skill in seconds. Free to start, no credit card required.
Get Started Free →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 when: user asks about other sports — use football-data (soccer), nfl-data (NFL), nba-data (NBA), wnba-data (WNBA), nhl-data (NHL), mlb-data (MLB), golf-data (golf), cricket-data (cricket), cfb-data (col
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-09 | ✗→✓ | ▲ Improved | 64% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 31% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 3% | 0% |
| case-12 | ✓→✗ | ▼ Worse | 46% | 0% |
| case-16 | ✓→✗ | ▼ Worse | -27% | 0% |
Before writing queries, consult references/api-reference.md for endpoints, ID conventions, and data shapes.
Prefer the CLI — it avoids Python import path issues:
bashsports-skills tennis get_scoreboard --tour=atp sports-skills tennis get_rankings --tour=wta sports-skills tennis get_calendar --tour=atp --year=2026
CRITICAL: Before calling any data endpoint, verify:
tour parameter is specified (atp or wta) — there is no default.currentDate — never hardcoded.tour ParameterMost commands require --tour=atp or --tour=wta:
If the user doesn't specify, ask which tour or show both by calling the command twice.
| 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 |
See references/api-reference.md for full parameter lists and return shapes.
get_scoreboard --tour=<atp|wta>get_player_info --player_id=<id>.get_rankings --tour=<atp|wta> --limit=20get_calendar --tour=<atp|wta> --year=<year>Example 1: Live matches User says: "What ATP matches are happening right now?" Actions:
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:
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:
currentDateget_calendar(tour="atp", year=<derived_year>)Result: French Open dates, location (Paris), and surface (clay)
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.
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
Other measured skills in the registry, with their headline benchmark lift.