Skip to content
Data
Skill

/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

From plugin
sports-skills
20225 skills
Install
$ npx -y skills add machina-sports/sports-skills --skill tennis-data --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/tennis-data

Context preview

The summary Claude sees to decide when to auto-load this skill.

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

SKILL.md

tennis-data.SKILL.md
name: tennis-data
description: |
  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 (college football), cbb-data (college basketball), or fastf1 (F1). For betting odds use polymarket or kalshi. For news use sports-news. Don't use for live point-by-point data — scores update after each set/match.
license: MIT
metadata:
  author: machina-sports
  version: "0.1.0"

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:

sports-skills tennis get_scoreboard --tour=atp
sports-skills tennis get_rankings --tour=wta
sports-skills tennis get_calendar --tour=atp --year=2026

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 |

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

Read more
Ships withsports-skills

Open-source agent skills for live sports data and prediction markets. Built for the Agent Skills spec. Works with sportsclaw, OpenClaw, Claude Code, Cursor, Copilot, Gemini CLI, Hermes Agent, and every major AI agent. Zero API keys. Zero signup.

Get the whole plugin
Stats
205
Stars
28
Forks
Active
Maintenance
Python
Language
MIT
License
19h ago
Last commit
6mo ago
Created

Repo: machina-sports/sports-skills

Other skills on sports-skills.