Skip to main content
Breaking in 4.0.0
  • Integer id columns are decimal strings — Every id column of integers (id, *_id, game_pk, playerId, …) comes back as exact decimal strings on every surface — parsers, producers, loaders, HockeyTech analytics. Compare and join ids as strings; Number(row.game_id) for a safe number back. (changelog)
  • Typed wrapper params and loader rows; strict mode — TypeScript only. A param the endpoint does not have, a missing required path param or a non-boolean bool param is a type error; parser rows are Record<string, unknown>; loader rows are their generated row types. (changelog)

ESPN cross-league reference

Every league below exposes the same generated espn<League><Endpoint> surface (e.g. espnNbaScoreboard), bound from a single YAML source of truth. Each method is also available under its snake_case name (espn_nba_scoreboard) for parity with the Python / R packages. Pick a league for its full endpoint table, or try any call live in the playground.

Every endpoint also accepts { parsed: true } to return tidy rows instead of raw JSON — see ESPN parsed returns for the column reference (116 endpoints across 22 parsers).

Some leagues additionally ship native (non-ESPN) API wrappers — NBA Stats API (stats.nba.com) (nba), WNBA Stats API (stats.wnba.com) (wnba), KenPom (mbb), NFL.com Shield API + PFF Developer API + NFL Pro (Next Gen Stats) (nfl), MLB Stats API + Baseball Savant / Statcast (mlb), NHL api-web (game feed) + NHL EDGE (player tracking) + NHL Stats REST + NHL Records (nhl), MLS web API (mls), NWSL (StatsPerform SDP) (nwsl). They're listed in the Native API sections of each league page; the native column below counts them. The Sources & coverage page lists every upstream source with its auth, ownership and parity.

LeaguesportESPN slugscopeswrappersnative
nbabasketballnbauniversal116128
wnbabasketballwnbauniversal116111
nbaglbasketballnba-developmentuniversal112—
mbbbasketballmens-college-basketballuniversal, ncaa12230
wbbbasketballwomens-college-basketballuniversal, ncaa122—
cfbfootballcollege-footballuniversal, ncaa, football125—
nflfootballnfluniversal, football11899
mlbbaseballmlbuniversal, mlb117117
nhlhockeynhluniversal113127
mchhockeymens-college-hockeyuniversal, ncaa118—
wchhockeywomens-college-hockeyuniversal, ncaa118—
college_baseballbaseballcollege-baseballuniversal, ncaa122—
college_softballbaseballcollege-softballuniversal, ncaa121—
uflfootballufluniversal113—
xflfootballxfluniversal112—
cflfootballcfluniversal112—
soccersoccereng.1 *(param)*universal112—
eplsoccereng.1universal113—
laligasocceresp.1universal112—
bundesligasoccerger.1universal112—
serieasoccerita.1universal112—
ligue1soccerfra.1universal112—
mlssoccerusa.1universal11312
ligamxsoccermex.1universal112—
uclsocceruefa.championsuniversal113—
uelsocceruefa.europauniversal112—
nwslsoccerusa.nwsluniversal1129
wwcsoccerfifa.wwcuniversal112—
wcsoccerfifa.worlduniversal112—
cricketcricketeng.1 *(param)*universal112—

Standalone provider namespaces​

Native providers that aren't a single ESPN league — each gets its own sdv.<namespace> surface and reference page. Cross-sport providers (odds, cbs, …) live under Providers in the sidebar; sport-specific ones (torvik → Basketball, hockeytech → Hockey) nest under their sport.

Namespacesportproviderwrappers
oddscross-sportThe Odds API10
recruitingcross-sport247Sports25
sports247cross-sport247Sports RDB, 247Sports site pages47
cbscross-sportCBS Sports82
foxcross-sportFox Sports38
yahoocross-sportYahoo Sports (scores), Yahoo Sports109
hockeytechHockeyHockeyTech / LeagueStat16
torvikBasketballBartTorvik (T-Rank), BartTorvik women's (T-Rank)6
on3cross-sportOn3 Recruit Database78
asaSoccerAmerican Soccer Analysis16
Same call, every league
await sdv.nba.espnNbaScoreboard({});
await sdv.nfl.espnNflScoreboard({ week: 1, seasonType: 2 });
await sdv.soccer.espnSoccerScoreboard({ league: 'eng.1' });
Native (non-ESPN) APIs
await sdv.mlb.mlbSchedule({ sportId: 1, date: '2024-07-01' });
await sdv.nhl.nhlWebPbp({ gameId: 2023030417, parsed: true });
await sdv.nfl.nflStandings({ season: 2024, seasonType: 'REG', week: 1 });
v4 names

Since v4 every wrapper carries sdv-py's name (athlete → player, event → game, …). Pre-v4 names still work as deprecated aliases (one DeprecationWarning per name) — see Deprecated names.

Dataset loaders​

load* functions read the published SportsDataverse release assets (parquet) — play-by-play with EPA/WP, schedules, rosters, box scores, ratings, player value — the way sportsdataverse-py's load_* functions do. Node only.

Namespaceloaders
cfb71
mbb34
mlb32
nba41
nfl29
nhl27
pwhl21
wbb34
wnba34

Generated by tools/codegen/generate.mjs from tools/codegen/endpoints/releases.yaml (vendored from sdv-py) — see How this library is built.