- Public names are sportsdataverse-py's —
athlete→player,event→gameon every ESPN league; sdv-py'sname_patternon 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 wasAssetFetchError), 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 tounknown(wasany); verified endpoints resolve to their row interfaces; the summary dispatchers toParsedTables. Narrow or cast a raw payload. (changelog) - Typed wrapper params and loader rows;
strictmode — TypeScript only. A param the endpoint does not have, a missing required path param or a non-booleanboolparam is a type error; parser rows areRecord<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 followDEFAULT_RETRY_STATUSESwith backoff. (changelog)
sdv.nbl — ESPN reference
Sources for sdv.nbl
- ESPN site v2 25
- ESPN core v2 90
- ESPN web v3 5
- ESPN fitt v3 1
- ESPN cdn 5
- wrappers
- 126
- leagues
- 40 leagues
- parity
- —
- described
- 67%
Site v2 / Core v2 / Web v3 / FPI / CDN, one wrapper set bound on every league.
- namespace:
sdv.nbl - sport slug:
basketball - league slug:
nbl - scopes:
universal - wrappers: 112
sdv.nbl is composed from written, documented source (src/generated/espn/nbl.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.nbl.espnNbl<Endpoint>(params) and under its snake_case alias (espn_nbl_<endpoint>) for parity with the Python / R packages.
import sdv from 'sportsdataverse';
await sdv.nbl.espnNblScoreboard({});
Reference families
Endpoints are grouped by ESPN API family. Pick a page for its per-function reference (endpoint URL, params, returns, example):
| Family | endpoints |
|---|---|
| Site API | 24 |
| Core API | 82 |
| Web API | 5 |
| FPI API (fitt v3) | 1 |
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._