Agent skill · research science · machina-sports
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, MLS, Champions League, World Cup, Championship, Eredivisie, Primeira Liga, Serie A Brazil, Russian Premier League, Scottish/Belgian/Turkish top flights, European Championship, and more (call get_competitions for the live list). Use when: user asks about football/soccer standings, fixtures, match stats, xG, lineups, player values, transfers, injury news, league tables, daily fixtures, player profiles, head-to-head records, team strength/Elo ratings, or match odds/forecasts. Don't use when: user asks about American football/NFL (use nfl-data), college football (use cfb-data), NBA (use nba-data), WNBA (use wnba-data), college basketball (use cbb-data), NHL (use nhl-data), MLB (use mlb-data), tennis (use tennis-data), golf (use golf-data), cricket (use cricket-data), Formula 1 (use fastf1), or betting odds (use polymarket or kalshi). Don't use for live/real-time scores — data updates post-match. Don't use get_season_leaders or get_missing_players for non-Premier League leagues (they return empty). Don't use get_event_xg for leagues outside the top 5 (EPL, La Liga, Bundesliga, Serie A, Ligue 1).
Why this skill is useful
Provides domain-specific commands and data retrieval patterns for football data that the AI wouldn't reliably generate on its own.
What it needs
Requires sports-skills installed locally. About 9k tokens when loaded. Last updated 2026-08-06. 201 stars on the source repository.
What this skill does
Football Data Before writing queries, consult references/api-reference.md for endpoints, ID conventions, and data shapes. Setup Before first use, check if the CLI is available: If pip install fails (package not found or Python version error), install from GitHub: The package requires Python 3.10+. If your default Python is older, use a specific version: No API keys required. Quick Start Prefer the CLI — it avoids Python import path issues: Python SDK (alternative): CRITICAL: Before Any Query CRITICAL: Before calling any data endpoint, verify: Season ID is derived from getcurrentseason(competitionid="...") — never hardcoded. Team ID is resolved via searchteam(query="...") and passed as the numeric teamid. For getheadtohead, getteamstrength, and getmatchforecast, always pass IDs — ambiguous names (e.g. two "Paris" clubs) can resolve to the wrong team. The endpoint actually covers the league in question — see the Coverage & Source Map below. Coverage is uneven across sources; an uncovered call returns an empty payload with a message, not data. geteventxg and geteventplayersstatistics (with xG) are only called for top-5 leagues (EPL, La Liga, Bundesliga, Serie A, Ligue 1). getseasonleaders and getmissingplayers are only called for Premier League seasons (seasonid must start with premier-league-). Choosing the Season Derive the current year from the system prompt's date (e.g., currentDate: 2026-02-16 → current year is 2026). If the user specifies a season, use it as-is. If the user says "current", "latest", or doesn't specify: Call getcurrentseason(competitionid="...") to get the active seasonid. Do NOT guess or hardcode the year. Season format: Always {league-slug}-{year} (e.g., "premier-league-2025" for the 2025-26 season). The year is the start year of the season, not the end year. MLS exception: MLS runs spring-fall within a single calendar year. Use getcurrentseason(competitionid="mls"). Coverage & Source Map This skill stitches several free sources together. …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills machina-sports/football-data