Loading...
Loading...
Fetch, scrape, or download football data from any source. Also handles API key setup and credential management. Use when the user wants to get data from StatsBomb, Opta, FBref, Understat, SportMonks, Wyscout, Kaggle, or any football data source. Also use when they ask about API keys, authentication, setting up access to a provider, or what data is available free vs paid.
npx skill4agent add withqwerty/nutmeg nutmeg-acquiredocs/accuracy-guardrail.mdsearch_docs.nutmeg.user.md/nutmeg.env.nutmeg.credentials.local.gitignore.env*.local| Source | Access | Free? | Env var |
|---|---|---|---|
| StatsBomb open data | GitHub / statsbombpy | Yes | — |
| FBref | Web scraping (soccerdata) | Yes | — |
| Understat | Web scraping (soccerdata) | Yes | — |
| ClubElo | HTTP API | Yes | — |
| football-data.co.uk | CSV download | Yes | — |
| Transfermarkt | Web scraping | Yes (fragile) | — |
| SportMonks | REST API | Free tier | |
| Football-data.org | REST API | Free tier | |
| FPL | Unofficial API | Yes | — |
| Opta/Perform | Feed | No | |
| StatsBomb API | REST API | No | |
| Wyscout | REST API | No | |
| Kaggle | Download | Yes | — |
| GitHub datasets | Download | Yes | — |
| Need | Best free source | Best paid source |
|---|---|---|
| Match events (pass-by-pass) | StatsBomb open data | Opta, StatsBomb API, Wyscout |
| Season stats (aggregates) | FBref | SportMonks |
| xG / shot data | Understat, StatsBomb open | Opta (matchexpectedgoals), StatsBomb API |
| Tracking data (player positions) | None free | Second Spectrum, SkillCorner, Tracab |
| Historical results | football-data.co.uk | SportMonks |
| Elo ratings | ClubElo (free API) | - |
| Player valuations | Transfermarkt (scraping) | - |
| Cross-provider entity IDs | Reep Register (free CSV + API) | - |
.nutmeg.user.md# StatsBomb open data
from statsbombpy import sb
events = sb.events(match_id=3788741)
# FBref via soccerdata
import soccerdata as sd
fbref = sd.FBref('ENG-Premier League', '2024')
stats = fbref.read_team_season_stats()
# Understat via soccerdata
understat = sd.Understat('ENG-Premier League', '2024')
shots = understat.read_shot_events()# StatsBomb
library(StatsBombR)
events <- get.matchFree(Matches) %>% allclean()
# FBref
library(worldfootballR)
stats <- fb_season_team_stats("ENG", "M", 2024, "standard")// StatsBomb open data (direct from GitHub)
const resp = await fetch('https://raw.githubusercontent.com/statsbomb/open-data/master/data/events/{match_id}.json');
const events = await resp.json();resolve_entityresolve_entity(name: "Cole Palmer") # search by name
resolve_entity(provider: "transfermarkt", id: "568177") # resolve provider ID
resolve_entity(qid: "Q99760796") # Wikidata QID lookupdata/people.csvdata/teams.csvsearch_docs(query="[source name]")data/{source}/{competition}/{season}/