/esports
Esports data — Dota 2 (OpenDota) and League of Legends esports (Leaguepedia). Pro matches, tournaments, teams, and structured LoL competitive data. Use when: user asks about Dota 2 pro matches/teams/leagues, or LoL esports tournaments/rosters/results. Don't use when: user asks
$ npx -y skills add machina-sports/sports-skills --skill esports --agent claude-codeHow 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
/esports
Context preview
The summary Claude sees to decide when to auto-load this skill.
Esports data — Dota 2 (OpenDota) and League of Legends esports (Leaguepedia). Pro matches, tournaments, teams, and structured LoL competitive data. Use when: user asks about Dota 2 pro matches/teams/leagues, or LoL esports tournaments/rosters/results. Don't use when: user asks
SKILL.md
esports.SKILL.mdname: esports
description: |
Esports data — Dota 2 (OpenDota) and League of Legends esports (Leaguepedia).
Pro matches, tournaments, teams, and structured LoL competitive data.
Use when: user asks about Dota 2 pro matches/teams/leagues, or LoL esports
tournaments/rosters/results.
Don't use when: user asks about esports betting/odds — use the `kalshi`
(get_esports_odds) or `polymarket` (get_esports_events) skills (no keyless
bookmaker-odds source exists). Don't use for non-Dota/LoL titles (only Dota 2
and LoL are covered).
license: MIT
metadata:
author: machina-sports
version: "0.1.0"
Esports Data
Keyless, public sources. **No API key, no signup.**
- **Dota 2** → OpenDota (`api.opendota.com`). Real JSON. Free tier ~60 req/min.
- **League of Legends esports** → Leaguepedia Cargo (`lol.fandom.com`). Structured
rows. **CC-BY-SA — attribute Leaguepedia when you reuse the data.**
CRITICAL
- **Dota 2 only** for match/team/league data (OpenDota). LoL uses Leaguepedia Cargo.
- **Leaguepedia is aggressively rate-limited.** The throttle comes back as an
*in-body* error (`Leaguepedia API error: ...`) on an HTTP 200 — not a 4xx. Results are cached ~30 min; don't hammer it.
- **No odds here.** Bookmaker odds for esports are not available keyless. For
implied-probability signals, use `kalshi get_esports_odds --game=cs2` or `polymarket get_esports_events`.
- **Personal use.** Third-party ToS apply (OpenDota MIT; Leaguepedia CC-BY-SA).
Quick Start
CLI:
sports-skills esports get_pro_matches --limit=10
sports-skills esports get_pro_teams --limit=10
sports-skills esports get_leagues --tier=premium
sports-skills esports get_lol_tournaments --region=Korea --limit=5
sports-skills esports lol_cargo_query --tables=Teams --fields=Name,Region --limit=5
Python:
from sports_skills import esports
esports.get_pro_matches(limit=10)
esports.get_lol_tournaments(region="Brazil")
Commands
| Command | Description | |---|---| | `get_pro_matches` | Recent Dota 2 professional matches (OpenDota) | | `get_leagues` | Dota 2 leagues/tournaments, filter by tier (OpenDota) | | `get_pro_teams` | Top Dota 2 teams by rating (OpenDota) | | `get_match` | Detailed Dota 2 match by id (OpenDota) | | `get_lol_tournaments` | Recent LoL esports tournaments (Leaguepedia) | | `lol_cargo_query` | Raw Leaguepedia Cargo query (any table/fields) |
Leaguepedia Cargo reference
`lol_cargo_query` needs `tables` + `fields`. Common tables (fields vary — verify with a small query first): `Tournaments` (Name, DateStart, DateEnd, League, Region, Prizepool), `MatchSchedule` (Team1, Team2, Winner, DateTime_UTC, BestOf), `ScoreboardGames`, `Players`, `Teams`. Full schema: <https://lol.fandom.com/wiki/Special:CargoTables>.
Troubleshooting
- `Leaguepedia API error: You've exceeded your rate limit` → you're being
throttled. Wait and retry; the connector caches for ~30 min to help.
- Empty `matches`/`teams` from OpenDota → transient; OpenDota is volunteer-run
best-effort infra with no SLA. Retry.
Read more
name: esports description: | Esports data — Dota 2 (OpenDota) and League of Legends esports (Leaguepedia). Pro matches, tournaments, teams, and structured LoL competitive data. Use when: user asks about Dota 2 pro matches/teams/leagues, or LoL esports tournaments/rosters/results. Don't use when: user asks about esports betting/odds — use the `kalshi` (get_esports_odds) or `polymarket` (get_esports_events) skills (no keyless bookmaker-odds source exists). Don't use for non-Dota/LoL titles (only Dota 2 and LoL are covered). license: MIT metadata: author: machina-sports version: "0.1.0"
Esports Data
Keyless, public sources. **No API key, no signup.**
- **Dota 2** → OpenDota (`api.opendota.com`). Real JSON. Free tier ~60 req/min.
- **League of Legends esports** → Leaguepedia Cargo (`lol.fandom.com`). Structured
rows. **CC-BY-SA — attribute Leaguepedia when you reuse the data.**
CRITICAL
- **Dota 2 only** for match/team/league data (OpenDota). LoL uses Leaguepedia Cargo.
- **Leaguepedia is aggressively rate-limited.** The throttle comes back as an
*in-body* error (`Leaguepedia API error: ...`) on an HTTP 200 — not a 4xx. Results are cached ~30 min; don't hammer it.
- **No odds here.** Bookmaker odds for esports are not available keyless. For
implied-probability signals, use `kalshi get_esports_odds --game=cs2` or `polymarket get_esports_events`.
- **Personal use.** Third-party ToS apply (OpenDota MIT; Leaguepedia CC-BY-SA).
Quick Start
CLI:
sports-skills esports get_pro_matches --limit=10 sports-skills esports get_pro_teams --limit=10 sports-skills esports get_leagues --tier=premium sports-skills esports get_lol_tournaments --region=Korea --limit=5 sports-skills esports lol_cargo_query --tables=Teams --fields=Name,Region --limit=5
Python:
from sports_skills import esports esports.get_pro_matches(limit=10) esports.get_lol_tournaments(region="Brazil")
Commands
| Command | Description | |---|---| | `get_pro_matches` | Recent Dota 2 professional matches (OpenDota) | | `get_leagues` | Dota 2 leagues/tournaments, filter by tier (OpenDota) | | `get_pro_teams` | Top Dota 2 teams by rating (OpenDota) | | `get_match` | Detailed Dota 2 match by id (OpenDota) | | `get_lol_tournaments` | Recent LoL esports tournaments (Leaguepedia) | | `lol_cargo_query` | Raw Leaguepedia Cargo query (any table/fields) |
Leaguepedia Cargo reference
`lol_cargo_query` needs `tables` + `fields`. Common tables (fields vary — verify with a small query first): `Tournaments` (Name, DateStart, DateEnd, League, Region, Prizepool), `MatchSchedule` (Team1, Team2, Winner, DateTime_UTC, BestOf), `ScoreboardGames`, `Players`, `Teams`. Full schema: <https://lol.fandom.com/wiki/Special:CargoTables>.
Troubleshooting
- `Leaguepedia API error: You've exceeded your rate limit` → you're being
throttled. Wait and retry; the connector caches for ~30 min to help.
- Empty `matches`/`teams` from OpenDota → transient; OpenDota is volunteer-run
best-effort infra with no SLA. Retry.
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.
Other skills on sports-skills.
- /betting
Betting analysis — odds conversion, de-vigging, edge detection, Kelly criterion, arbitrage detection, parlay analysis, and line movement. Pure computation, no API calls. Works with odds from any source: ESPN (American odds), Polymarket (decimal probabilities), Kalshi (integer
Open skill - /cbb-data
College Basketball (CBB) data via ESPN public endpoints and the NCAA's official endpoints — scores, standings, rosters, schedules, game summaries, play-by-play, win probability, rankings, futures, team/player stats, and news for Division I men's basketball, plus official D2/D3
Open skill - /cfb-data
College Football (CFB) data via ESPN public endpoints and the NCAA's official endpoints — scores, standings, rosters, schedules, game summaries, play-by-play, rankings, injuries, futures, team/player stats, and news for FBS, plus official FCS scoreboards, NCAA game detail with
Open skill - /cricket-data
Cricket data via ESPN public endpoints and Cricsheet open data — live-ish series scoreboards, standings, match summaries and news (ESPN), plus historical ball-by-ball, player stats, and player registry (Cricsheet, ODC-BY 1.0). Zero config, no API keys. Use when: user asks about
Open skill - /fastf1
Formula 1 data — race schedules, results, lap timing, driver and team info. Powered by the FastF1 library. Covers F1 sessions, qualifying, practice, race results, sector times, tire strategy. Use when: user asks about F1 race results, qualifying, lap times, driver stats, team
Open skill - /football-data
Football (soccer) data across the world's major leagues — standings, schedules, match stats, xG, transfers, player profiles, head-to-head history, team strength (Elo), and match forecasts. Zero config, no API keys. Covers Premier League, La Liga, Bundesliga, Serie A, Ligue 1,
Open skill

