Esports data — Dota 2 (OpenDota) and League of Legends esports (Leaguepedia).

MITAuto-check passedData & Analytics

Install Esports

skills CLI
$ npx skills add machina-sports/sports-skills --skill esports -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install machina-sports/sports-skills esports --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/machina-sports/sports-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/esports .claude/skills/esports && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
esports
GitHub stars
243
Token cost
~952 tokens
SKILL.md length
341 words
Files
1
Skills in repo
23
Repo updated
First seen
Licence
MIT

At a glance

Esports data — Dota 2 (OpenDota) and League of Legends esports (Leaguepedia).

  • : user asks about Dota 2 pro matches/teams/leagues
  • SKILL.md covers CRITICAL, Quick Start, Commands and Leaguepedia Cargo reference, plus 1 more section
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md
  • LoL esports tournaments/rosters/results

What it does

Esports is an agent skill from machina-sports/sports-skills. 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 (getesportsodds) or polymarket (getesportsevents) skills (no keyless bookmaker-odds source exists). Don't use for non-Dota/LoL titles (only Dota 2 and LoL are covered).

Its SKILL.md is about 950 tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Data & Analytics. It works with Kalshi and Polymarket. The repository describes itself as: Open-source agent skills for live sports data and prediction markets. Football, F1, Kalshi, Polymarket. Zero API keys. SKILL.md format. The licence is MIT.

When your agent uses it

  • : user asks about Dota 2 pro matches/teams/leagues
  • LoL esports tournaments/rosters/results
  • : user asks about esports betting/odds — use the kalshi (getesportsodds)
  • Polymarket (getesportsevents) skills (no keyless bookmaker-odds source exists)

Example prompts

  • “Use the esports skill to esport data — Dota 2 (OpenDota) and League of Legends esports (Leaguepedia)”
  • “/esports”

Requirements

  • Python 3

What it can do on your machine

Read from SKILL.md and the folder at commit 09eb7e8. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are bash and python).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • lol.fandom.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Esports loads about 952 tokens when it runs. Until then it costs about 127 tokens; SKILL.md has 341 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~127
When it runs · the whole SKILL.md, loaded when a task matches
~952

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from machina-sports/sports-skills at commit 09eb7e8, republished under its MIT licence (© machina-sports). 341 words, ~952 tokens.

Download SKILL.mdSave it as .claude/skills/esports/SKILL.md (or your agent's skills folder).
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
metadata.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. Queries with order_by have been answered with that throttle body every time, so avoid order_by in lol_cargo_query and sort the rows yourself.
  • OpenDota has no date filter. get_pro_matches returns the latest pro matches (100 per call at most). For older ones pass the response's next_less_than_match_id as less_than_match_id.
  • Match Dota teams on team_id, not name. OpenDota has separate records whose names differ only in case (mouz 161707 from 2013, MOUZ 9338413 now).
  • 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:

bash
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:

python
from sports_skills import esports

esports.get_pro_matches(limit=10)
esports.get_lol_tournaments(region="Brazil")

Commands

CommandDescription
get_pro_matchesLatest Dota 2 pro matches, newest first; page back with less_than_match_id (OpenDota)
get_leaguesDota 2 leagues/tournaments, newest first, filter by tier (OpenDota)
get_pro_teamsTop Dota 2 teams by rating (OpenDota)
get_matchDetailed Dota 2 match by id (OpenDota)
get_lol_tournamentsLoL esports tournaments starting since the 1st of the month two months back, newest first (Leaguepedia)
lol_cargo_queryRaw 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. Row keys use the field names you asked for (DateTime_UTC), even though Cargo itself returns them with spaces.

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.

© machina-sports, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/esports of machina-sports/sports-skills.

Open the folder on GitHubat commit 09eb7e8

Compare with similar skills

Esports next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Esports compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Esports this skillmachina-sports/sports-skills243—~952Automated safety check: PassMIT
Prediction MarketsBlockRunAI/blockrun-mcp391—~3.7kAutomated safety check: PassMIT
Predexon Prediction Market DataBlockRunAI/ClawRouter6.6k—~4.7kAutomated safety check: PassMIT
Surf Crypto Data APIBlockRunAI/blockrun-mcp391—~1.7kAutomated safety check: PassMIT
Digital Oraclekomako-workshop/digital-oracle878—~5.9kAutomated safety check: PassMIT
Dr Manhattanguzus/dr-manhattan204—~2kAutomated safety check: PassApache-2.0

Similar skills

  • Prediction Markets

    BlockRunAI/blockrun-mcp

    A skill your agent uses when the user asks about event probabilities, prediction market odds, what people are betting on, Polymarket/Kalshi prices, sports markets — or about the things you CANNOT…

    391 GitHub stars~3.7k tokensUpdated 3 days ago
    Data & AnalyticsAuto-check passed
  • Predexon Prediction Market Data

    BlockRunAI/ClawRouter

    Reads structured prediction market data for Polymarket, Kalshi and other venues through a local BlockRun gateway: markets, search, leaderboards, wallet analytics and odds.

    6.6k GitHub stars~4.7k tokensUpdated 6 days ago
    Business, Finance & HRAuto-check passed
  • Surf Crypto Data API

    BlockRunAI/blockrun-mcp

    Routes crypto market, on-chain, wallet and prediction-market lookups to the Surf data API through a local ClawRouter, paid per call.

    391 GitHub stars~1.7k tokensUpdated 3 days ago
    Business, Finance & HRAuto-check passed
  • Digital Oracle

    komako-workshop/digital-oracle

    Answer prediction questions using market trading data, not opinions.

    878 GitHub stars~5.9k tokensUpdated 2 mo ago
    Business, Finance & HRAuto-check passed
  • Dr Manhattan

    guzus/dr-manhattan

    Trade prediction markets (Polymarket, Kalshi, Opinion, Limitless, Predict.fun) using a unified CCXT-style API.

    204 GitHub stars~2k tokensUpdated 2 mo ago
    Business, Finance & HRAuto-check passed
  • Polymarket Tennis

    livetennisapi/livetennisapi-mcp

    Build observe-only Polymarket and Kalshi tennis market tooling on the polymarket-tennis Python package (MIT) plus the Live Tennis API free tier.

    152 GitHub stars~3k tokensUpdated 4 days ago
    Business, Finance & HRAuto-check passed

More from machina-sports/sports-skills

All 23 skills in this repo
  • Cbb Data

    machina-sports/sports-skills

    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…

    245 GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Cfb Data

    machina-sports/sports-skills

    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…

    245 GitHub stars~2.9k tokensUpdated today
    Auto-check passed
  • Cricket Data

    machina-sports/sports-skills

    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…

    245 GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Fastf1

    machina-sports/sports-skills

    Formula 1 data — race schedules, results, lap timing, driver and team info.

    245 GitHub stars~1.6k tokensUpdated today
    Auto-check passed
  • Golf Data

    machina-sports/sports-skills

    PGA Tour, LPGA, and DP World Tour golf data via ESPN public endpoints — tournament leaderboards, scorecards, season schedules, golfer profiles/overviews, and news.

    245 GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Kalshi

    machina-sports/sports-skills

    Kalshi prediction markets — events, series, markets, trades, and candlestick data.

    245 GitHub stars~1.9k tokensUpdated today
    Auto-check passed

Questions about Esports

What does Esports do?

Esports data — Dota 2 (OpenDota) and League of Legends esports (Leaguepedia). Esports is an agent skill from machina-sports/sports-skills. Esports data — Dota 2 (OpenDota) and League of Legends esports (Leaguepedia).

When should I use Esports?

Esports fits situations like: : user asks about Dota 2 pro matches/teams/leagues; loL esports tournaments/rosters/results; : user asks about esports betting/odds — use the kalshi (getesportsodds); polymarket (getesportsevents) skills (no keyless bookmaker-odds source exists).

How do I install Esports in Claude Code?

Run `npx skills add machina-sports/sports-skills --skill esports -a claude-code`. Or copy the skill folder (skills/esports in machina-sports/sports-skills) into .claude/skills/esports in your project. Claude Code loads it when a task matches its description.

How do I install Esports in Codex?

Run `npx skills add machina-sports/sports-skills --skill esports -a codex`. Or copy the skill folder (skills/esports in machina-sports/sports-skills) into .agents/skills/esports in your project. Codex loads it when a task matches its description.

Can I use Esports in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add machina-sports/sports-skills --skill esports -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/esports, .gemini/skills/esports, .github/skills/esports and .opencode/skills/esports in your project.

What does Esports need to run?

SKILL.md names no scripts, command-line tools or credentials: Esports is instructions for the agent only. Our summary lists: Python 3.

Does Esports access the network?

SKILL.md names 1 domain. As links in the text: lol.fandom.com. This is read from the text; nothing was executed.

Is Esports safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Esports use?

Esports is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Esports use?

About 952 tokens (SKILL.md is roughly 3.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Esports?

Skills that share tags, products or a category with Esports: Prediction Markets (BlockRunAI/blockrun-mcp, 391 stars), Predexon Prediction Market Data (BlockRunAI/ClawRouter, 6.6k stars), Surf Crypto Data API (BlockRunAI/blockrun-mcp, 391 stars) and Digital Oracle (komako-workshop/digital-oracle, 878 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Esports?

machina-sports (a GitHub organization) maintains it in machina-sports/sports-skills, which has 243 GitHub stars. The repository holds 23 skills in this directory. The repository was last updated on October 5, 2026.

Source: machina-sports/sports-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.