- 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)
wnba — FPI API (fitt v3)
1 endpoint on sdv.wnba. 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).
espnWnbaFpi
WNBA — fpi (ESPN site.web.api.espn.com (FPI, fitt v3)).
Endpoint URL: GET https://site.web.api.espn.com/apis/fitt/v3/sports/basketball/wnba/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 30 leagues (nba, wnba, nbagl, 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.wnba.espnWnbaFpi({});
// snake_case alias (py/R parity): sdv.wnba.espn_wnba_fpi(...)
Generated by tools/codegen/generate.mjs from tools/codegen/endpoints/espn*.yaml (vendored from sdv-py) — see How this library is built._