Skip to main content
Breaking in 4.0.0
  • Public names are sportsdataverse-py's — athlete → player, event → game on every ESPN league; sdv-py's name_pattern on the native families (nhlApiWeb* → nhl*, nflApi* → nfl*, CBS's 16 shorts, the 3.0.0 file-stem names). Every pre-v4 name still works as a deprecated alias that warns once. (changelog)
  • 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)
  • 400 / 422 raise InvalidParameterError — For every family (it was AssetFetchError), never retried; the message names host, path and status with a redacted excerpt of the body. (changelog)
  • Typed returns — generated row types for parsed: true — TypeScript only. A wrapper's raw payload resolves to unknown (was any); verified endpoints resolve to their row interfaces; the summary dispatchers to ParsedTables. Narrow or cast a raw payload. (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)
  • Wrapper failures raise NoDataError / AssetFetchError — Instead of raw axios errors. NoDataError = the fetch worked and there is nothing there (404, ESPN { code: 404 }); AssetFetchError = the fetch failed (403 / 429 / 5xx after retries, network). Retries follow DEFAULT_RETRY_STATUSES with backoff. (changelog)

sdv.wbb — ESPN reference

Sources for sdv.wbb​

ESPNno authvendored
site.api.espn.com, sports.core.api.espn.com, site.web.api.espn.com, site.web.api.espn.com (FPI), cdn.espn.com
  • ESPN site v2 25
  • ESPN core v2 90
  • ESPN web v3 5
  • ESPN fitt v3 1
  • ESPN cdn 5
wrappers
126
leagues
30 leagues
parity
—
described
60%

Site v2 / Core v2 / Web v3 / FPI / CDN, one wrapper set bound on every league.

sportsdataverse-data releasesno authloaders
github.com/sportsdataverse/sportsdataverse-data
  • sdv.cfb loaders 71
  • sdv.mbb loaders 34
  • sdv.mlb loaders 32
  • sdv.nba loaders 41
  • sdv.nfl loaders 29
  • sdv.nhl loaders 27
  • sdv.pwhl loaders 21
  • sdv.wbb loaders 34
  • sdv.wnba loaders 34
loaders
323
namespace
sdv.cfb, sdv.mbb, sdv.mlb, sdv.nba, sdv.nfl, sdv.nhl, sdv.pwhl, sdv.wbb, sdv.wnba
parity
—
described
98%

Pre-built parquet datasets (`load*`) published as GitHub release assets.

  • namespace: sdv.wbb
  • sport slug: basketball
  • league slug: womens-college-basketball
  • scopes: universal, ncaa
  • wrappers: 122

sdv.wbb is composed from written, documented source (src/generated/espn/wbb.ts) — a phased proof of converting the runtime wrapper factory into reviewable modules. Every endpoint is a real export const with JSDoc, callable as sdv.wbb.espnWbb<Endpoint>(params) and under its snake_case alias (espn_wbb_<endpoint>) for parity with the Python / R packages.

import sdv from 'sportsdataverse';

await sdv.wbb.espnWbbScoreboard({});

Reference families​

Endpoints are grouped by ESPN API family. Pick a page for its per-function reference (endpoint URL, params, returns, example):

Familyendpoints
Site API24
Core API82
Web API5
FPI API (fitt v3)1
CDN (espn.com page data)4
NCAA additional6
Dataset loaders34

Parsed output: pass { parsed: true } to any endpoint to get tidy rows instead of raw JSON. The columns are determined by each endpoint's parser — see ESPN parsed returns for the full column reference.

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