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)

olympics_mbk — FPI API (fitt v3)

1 endpoint on sdv.olympics_mbk. 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).

espnOlympicsMbkFpi​

OLYMPICS_MBK — fpi (ESPN site.web.api.espn.com (FPI, fitt v3)).

Endpoint URL: GET https://site.web.api.espn.com/apis/fitt/v3/sports/basketball/mens-olympics-basketball/powerindex

API paramJSrequireddescription
seasonseasonnonumber | string — Season (4-digit year) whose FPI table to return; defaults to the current season
limitlimitnonumber | string — Page size. The response is a single page for every league observed, so the default suffices
pagepagenonumber | string — Page number, for the paginated envelope
—parsednoboolean — 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.olympics_mbk.espnOlympicsMbkFpi({});
// snake_case alias (py/R parity): sdv.olympics_mbk.espn_olympics_mbk_fpi(...)

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