- 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)
fiba — FPI API (fitt v3)
1 endpoint on sdv.fiba. Each is exposed under a camelCase canonical name and a snake_case alias (py/R parity), accepts snake_case or camelCase params, and returns raw ESPN JSON by default ({ parsed: true } for tidy rows).
espnFibaFpi
FIBA — fpi (ESPN site.web.api.espn.com (FPI, fitt v3)).
Endpoint URL: GET https://site.web.api.espn.com/apis/fitt/v3/sports/basketball/fiba/powerindex
| API param | JS | required | description |
|---|---|---|---|
season | season | no | number | string — Season (4-digit year) whose FPI table to return; defaults to the current season |
limit | limit | no | number | string — Page size. The response is a single page for every league observed, so the default suffices |
page | page | no | number | string — Page number, for the paginated envelope |
| — | parsed | no | boolean — return tidy rows instead of raw JSON |
Returns: raw ESPN Dict by default. With { parsed: true } the payload is routed through its parser (parse_fpi); the column set varies by league and payload, so no fixed table is published. This endpoint is exposed on 40 leagues (nba, wnba, nbagl, nbl, fiba, olympics_mbk, olympics_wbk, nbasl_lv, nbasl_ut, nbasl_ca, nbasl_sac, nbasl_orl, nbasl_gs, mbb, wbb, cfb, nfl, mlb, nhl, mch, wch, college_baseball, college_softball, ufl, xfl, cfl, soccer, epl, laliga, bundesliga, seriea, ligue1, mls, ligamx, ucl, uel, nwsl, wwc, wc, cricket) — see parse_fpi for the shared parser note.
Rows are untyped Row[] (not parity-verified yet).
Example:
await sdv.fiba.espnFibaFpi({});
// snake_case alias (py/R parity): sdv.fiba.espn_fiba_fpi(...)
Generated by tools/codegen/generate.mjs from tools/codegen/endpoints/espn*.yaml (vendored from sdv-py) — see How this library is built._