Loading...
Loading...
Football (soccer) data across 13 leagues — standings, schedules, match stats, xG, transfers, player profiles. 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, European Championship. Use when: user asks about football/soccer standings, fixtures, match stats, xG, lineups, player values, transfers, injury news, league tables, daily fixtures, or player profiles. Don't use when: user asks about American football (NFL), basketball (NBA), baseball, or any non-soccer sport. 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).
npx skill4agent add machina-sports/sports-skills football-datawhich sports-skills || pip install sports-skillspip installpython3 --version # check version
# If < 3.10, try: python3.12 -m pip install sports-skills
# On macOS with Homebrew: /opt/homebrew/bin/python3.12 -m pip install sports-skillssports-skills football get_daily_schedule
sports-skills football get_season_standings --season_id=premier-league-2025from sports_skills import football
standings = football.get_season_standings(season_id="premier-league-2025")
schedule = football.get_daily_schedule()| Command | All 13 leagues | Top 5 only | PL only |
|---|---|---|---|
| get_season_standings | x | ||
| get_daily_schedule | x | ||
| get_season_schedule | x | ||
| get_season_teams | x | ||
| search_team | x | ||
| get_team_schedule | x | ||
| get_team_profile | x | ||
| get_event_summary | x | ||
| get_event_lineups | x | ||
| get_event_statistics | x | ||
| get_event_timeline | x | ||
| get_current_season | x | ||
| get_competitions | x | ||
| get_event_xg | x | ||
| get_event_players_statistics (with xG) | x | ||
| get_season_leaders | x | ||
| get_missing_players | x |
tm_player_idget_current_season(competition_id="mls"){league-slug}-{year}"premier-league-2025""la-liga-2025""premier-league""serie-a""champions-league""359""86""740847""433177""342229"competition_iddata.competitiondata.season{"competition": {"id": "premier-league", "name": "Premier League"}, "season": {"id": "premier-league-2025", "name": "2025-26 English Premier League", "year": "2025"}}data.competitions[]idnamecodecurrent_seasoncompetition_idseason_iddata.schedules[]season_iddata.standings[].entries[]{
"position": 1,
"team": {"id": "359", "name": "Arsenal", "short_name": "Arsenal", "abbreviation": "ARS", "crest": "https://..."},
"played": 26, "won": 17, "drawn": 6, "lost": 3,
"goals_for": 50, "goals_against": 18, "goal_difference": 32, "points": 57
}season_idpremier-league-*data.leaders[].player.name{
"player": {"id": "223094", "name": "Erling Haaland", "first_name": "Erling", "last_name": "Haaland", "position": "Forward"},
"team": {"id": "43", "name": "Man City"},
"goals": 22, "assists": 6, "penalties": 0, "played_matches": 25
}season_idquerycompetition_iddata.results[]teamcompetitionseason{"team": {"id": "874", "name": "Corinthians"}, "competition": {"id": "serie-a-brazil", "name": "Serie A Brazil"}, "season": {"id": "serie-a-brazil-2025", "year": "2025"}}get_season_leadersget_player_profileteam_idleague_slugdata.teamdata.venuedata.players[]datedata.datedata.events[]{
"id": "748381", "status": "not_started", "start_time": "2026-02-16T20:00Z",
"competition": {"id": "la-liga", "name": "La Liga"},
"season": {"id": "la-liga-2025", "year": "2025"},
"venue": {"name": "Estadi Montilivi", "city": "Girona"},
"competitors": [
{"team": {"id": "9812", "name": "Girona", "abbreviation": "GIR"}, "qualifier": "home", "score": 0},
{"team": {"id": "83", "name": "Barcelona", "abbreviation": "BAR"}, "qualifier": "away", "score": 0}
],
"scores": {"home": 0, "away": 0}
}"not_started""live""halftime""closed""postponed"event_iddata.eventevent_iddata.lineups[]{
"team": {"id": "364", "name": "Liverpool", "abbreviation": "LIV"},
"qualifier": "home",
"formation": "4-3-3",
"starting": [{"id": "275599", "name": "Caoimhín Kelleher", "position": "Goalkeeper", "shirt_number": 1}],
"bench": [{"id": "...", "name": "...", "position": "...", "shirt_number": 62}]
}event_iddata.teams[]{
"team": {"id": "244", "name": "Brentford"},
"qualifier": "home",
"statistics": {"ball_possession": "40.8", "shots_total": "10", "shots_on_target": "3", "fouls": "12", "corners": "4"}
}event_iddata.timeline[]team_idleague_slugseason_yearcompetition_idget_team_scheduleteam_idteam_id_2event_iddata.teams[]data.shots[]{"team": {"id": "244", "name": "Brentford"}, "qualifier": "home", "xg": 1.812}data.shots[]event_iddata.teams[].players[]{
"id": "...", "name": "Bukayo Saka", "position": "Midfielder", "shirt_number": 7, "starter": true,
"statistics": {"appearances": "1", "shotsTotal": "3", "shotsOnTarget": "1", "foulsCommitted": "1", "xg": "0.45", "xa": "0.12"}
}xgxaseason_idpremier-league-*data.teams[].players[]{
"id": "463748", "name": "Mikel Merino Zazón", "web_name": "Merino",
"position": "Midfielder", "status": "injured",
"news": "Foot injury - Unknown return date",
"chance_of_playing_this_round": 0, "chance_of_playing_next_round": 0
}"injured""unavailable""doubtful""suspended"season_idtm_player_idsdata.transfers[]{
"player_tm_id": "433177", "date": "2019-07-01", "season": "19/20",
"from_team": {"name": "Arsenal U23", "image": "https://..."},
"to_team": {"name": "Arsenal", "image": "https://..."},
"fee": "-", "market_value": "-"
}fpl_idtm_player_idtm_player_iddata.player{
"market_value": {"value": 130000000, "currency": "EUR", "formatted": "€130.00m", "date": "09/12/2025", "age": "24", "club": "Arsenal FC"},
"market_value_history": [{"value": 7000000, "formatted": "€7.00m", "date": "23/09/2019", "club": "Arsenal FC"}],
"transfer_history": [
{"player_tm_id": "433177", "date": "2019-07-01", "season": "19/20", "from_team": {"name": "Arsenal U23"}, "to_team": {"name": "Arsenal"}, "fee": "-"}
]
}fpl_iddata.player.fpl_data| Source | What it provides | League coverage |
|---|---|---|
| ESPN | Scores, standings, schedules, lineups, match stats, timelines | All 13 leagues |
| openfootball | Schedules, standings, team lists (fallback when ESPN is down) | 10 leagues (all except CL, Euros, World Cup) |
| Understat | xG per match, xG per shot, player xG/xA | Top 5 (EPL, La Liga, Bundesliga, Serie A, Ligue 1) |
| FPL | Top scorers, injuries, player stats, ownership | Premier League only |
| Transfermarkt | Market values, transfer history | Any player (requires tm_player_id) |
get_current_season(competition_id="premier-league")get_season_standings(season_id="premier-league-2025")get_daily_schedule()get_team_schedule(team_id="359")get_event_summary(event_id="...")get_event_statistics(event_id="...")get_event_xg(event_id="...")search_team(query="Chelsea")get_team_schedule(team_id="363", competition_id="premier-league")get_event_xg(event_id="...")get_event_statistics(event_id="...")get_event_players_statistics(event_id="...")get_missing_players(season_id="premier-league-2025")get_season_leaders(season_id="premier-league-2025")get_player_profile(fpl_id="...", tm_player_id="...")get_player_profile(tm_player_id="433177")fpl_idsearch_team(query="Corinthians")get_team_schedule(team_id="874", competition_id="serie-a-brazil")get_event_timeline(event_id="...")sports-skillspip install sports-skillsModuleNotFoundError: No module named 'sports_skills'get_season_leadersget_missing_playersget_team_profileget_season_leadersget_player_profile(fpl_id="...")tm_player_idget_season_leaders(season_id="premier-league-2025")568177433177342229get_event_xg{league-slug}-{year}"premier-league-2025""2025-2026""EPL-2025"get_current_season()search_team(query="team name")get_season_teamsget_daily_scheduleget_season_schedule