sdv.nba — dataset loaders
41 loaders reading the published sportsdataverse-data releases (parquet) — the JS mirror of sportsdataverse-py's load_* functions. Each is a camelCase export plus its snake_case alias and resolves to an array of plain row objects (or { [column]: values[] } with format: "columns").
- Size: row objects cost ~60-100 bytes per cell on the heap, so before decoding each season a loader adds its rows × columns (from the parquet footer) to a running total and checks it against
maxCells— by default heap limit / 100 for rows (≈45M cells on Node's default 4 GB heap) and heap limit / 30 forformat: "columns"— and throws a catchableSdvErrorinstead of running out of memory. Play-by-play is the usual case: passcolumns, useformat: "columns", or raise the heap (node --max-old-space-size=8192). - Seasons:
seasonstakes one season or a list. A season with no published asset (HTTP 404) is skipped with a warning (loaders marked so in theirseasonsrow — sdv-py's hand-written ones — throwNoDataErrorinstead); any other failure raisesAssetFetchError(a failed download is never an empty season); a season below the loader's floor raisesSeasonNotFoundErrorbefore anything is fetched. Multi-season results union the columns, null-filling gaps, and cast a column whose type changed between seasons to the common type (an integer id that became a string → strings, "123" not "123.0"), as sdv-py'sdiagonal_relaxedconcat does. - Integers: an id column (
id,*_id,*_ids,game_pk,athlete_id_1,id_play,playerId,homeTeamId,start.team.id, …) of integers comes back as exact decimal strings in every row and every season, whatever width the release stores it with (INT32, INT64, or a DOUBLE holding integers:"401628579101849903","39", never"39.0"), so ids join across seasons and across releases. Code-like id columns (type_id,status_id, …) are strings too. An id column that is not exact integers (a fraction, a DOUBLE past 2^53) is left as read with one warning. Any other INT64 column comes back asnumberwhen every value is a safe integer, otherwise asBigIntwith one warning (codeSDV_INT64) per column per process. - Runtime: Node only. Downloads go through the
releasestransport family (see Transport, auth & errors); each asset is downloaded whole, then decoded.
loadNbaPbp
Release: espn_nba_pbp · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/espn_nba_pbp/play_by_play_{season}.parquet
| option | type | required | description |
|---|---|---|---|
seasons | number | number[] | yes | season(s) to load (>= 2002) |
columns | string[] | no | read only these columns |
format | "rows" | "columns" | no | row objects (default) or column arrays |
maxCells | number | no | size guard; default scales with the heap, Infinity disables |
timeoutMs | number | no | download timeout in ms (default 300000) |
const rows = await sdv.nba.loadNbaPbp({ seasons: 2024, columns: ['game_id', 'sequence_number', 'type_text', 'text', 'score_value'] });
// snake_case alias (py/R parity): sdv.nba.load_nba_pbp(...)
loadNbaPlayerBoxscore
Release: espn_nba_player_boxscores · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/espn_nba_player_boxscores/player_box_{season}.parquet
| option | type | required | description |
|---|---|---|---|
seasons | number | number[] | yes | season(s) to load (>= 2002) |
columns | string[] | no | read only these columns |
format | "rows" | "columns" | no | row objects (default) or column arrays |
maxCells | number | no | size guard; default scales with the heap, Infinity disables |
timeoutMs | number | no | download timeout in ms (default 300000) |
const rows = await sdv.nba.loadNbaPlayerBoxscore({ seasons: 2024 });
// snake_case alias (py/R parity): sdv.nba.load_nba_player_boxscore(...)
loadNbaSchedule
Release: espn_nba_schedules · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/espn_nba_schedules/nba_schedule_{season}.parquet
| option | type | required | description |
|---|---|---|---|
seasons | number | number[] | yes | season(s) to load (>= 2002) |
columns | string[] | no | read only these columns |
format | "rows" | "columns" | no | row objects (default) or column arrays |
maxCells | number | no | size guard; default scales with the heap, Infinity disables |
timeoutMs | number | no | download timeout in ms (default 300000) |
const rows = await sdv.nba.loadNbaSchedule({ seasons: 2024 });
// snake_case alias (py/R parity): sdv.nba.load_nba_schedule(...)
loadNbaTeamBoxscore
Release: espn_nba_team_boxscores · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/espn_nba_team_boxscores/team_box_{season}.parquet
| option | type | required | description |
|---|---|---|---|
seasons | number | number[] | yes | season(s) to load (>= 2002) |
columns | string[] | no | read only these columns |
format | "rows" | "columns" | no | row objects (default) or column arrays |
maxCells | number | no | size guard; default scales with the heap, Infinity disables |
timeoutMs | number | no | download timeout in ms (default 300000) |
const rows = await sdv.nba.loadNbaTeamBoxscore({ seasons: 2024 });
// snake_case alias (py/R parity): sdv.nba.load_nba_team_boxscore(...)
loadNbaGameRosters
Release: espn_nba_game_rosters · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/espn_nba_game_rosters/game_rosters_{season}.parquet
| option | type | required | description |
|---|---|---|---|
seasons | number | number[] | yes | season(s) to load (>= 2002) |
columns | string[] | no | read only these columns |
format | "rows" | "columns" | no | row objects (default) or column arrays |
maxCells | number | no | size guard; default scales with the heap, Infinity disables |
timeoutMs | number | no | download timeout in ms (default 300000) |
const rows = await sdv.nba.loadNbaGameRosters({ seasons: 2002 });
// snake_case alias (py/R parity): sdv.nba.load_nba_game_rosters(...)
loadNbaOfficials
Release: espn_nba_officials · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/espn_nba_officials/officials_{season}.parquet
| option | type | required | description |
|---|---|---|---|
seasons | number | number[] | yes | season(s) to load (>= 2002) |
columns | string[] | no | read only these columns |
format | "rows" | "columns" | no | row objects (default) or column arrays |
maxCells | number | no | size guard; default scales with the heap, Infinity disables |
timeoutMs | number | no | download timeout in ms (default 300000) |
const rows = await sdv.nba.loadNbaOfficials({ seasons: 2002 });
// snake_case alias (py/R parity): sdv.nba.load_nba_officials(...)
loadNbaShots
Release: espn_nba_shots · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/espn_nba_shots/shots_{season}.parquet
| option | type | required | description |
|---|---|---|---|
seasons | number | number[] | yes | season(s) to load (>= 2002) |
columns | string[] | no | read only these columns |
format | "rows" | "columns" | no | row objects (default) or column arrays |
maxCells | number | no | size guard; default scales with the heap, Infinity disables |
timeoutMs | number | no | download timeout in ms (default 300000) |
const rows = await sdv.nba.loadNbaShots({ seasons: 2002 });
// snake_case alias (py/R parity): sdv.nba.load_nba_shots(...)
loadNbaStandings
Release: espn_nba_standings · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/espn_nba_standings/standings_{season}.parquet
| option | type | required | description |
|---|---|---|---|
seasons | number | number[] | yes | season(s) to load (>= 2002) |
columns | string[] | no | read only these columns |
format | "rows" | "columns" | no | row objects (default) or column arrays |
maxCells | number | no | size guard; default scales with the heap, Infinity disables |
timeoutMs | number | no | download timeout in ms (default 300000) |
const rows = await sdv.nba.loadNbaStandings({ seasons: 2002 });
// snake_case alias (py/R parity): sdv.nba.load_nba_standings(...)
loadNbaPlayerSeasonStats
Release: espn_nba_player_season_stats · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/espn_nba_player_season_stats/player_season_stats_{season}.parquet
| option | type | required | description |
|---|---|---|---|
seasons | number | number[] | yes | season(s) to load (>= 2002) |
columns | string[] | no | read only these columns |
format | "rows" | "columns" | no | row objects (default) or column arrays |
maxCells | number | no | size guard; default scales with the heap, Infinity disables |
timeoutMs | number | no | download timeout in ms (default 300000) |
const rows = await sdv.nba.loadNbaPlayerSeasonStats({ seasons: 2025 });
// snake_case alias (py/R parity): sdv.nba.load_nba_player_season_stats(...)
loadNbaTeamSeasonStats
Release: espn_nba_team_season_stats · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/espn_nba_team_season_stats/team_season_stats_{season}.parquet
| option | type | required | description |
|---|---|---|---|
seasons | number | number[] | yes | season(s) to load (>= 2002) |
columns | string[] | no | read only these columns |
format | "rows" | "columns" | no | row objects (default) or column arrays |
maxCells | number | no | size guard; default scales with the heap, Infinity disables |
timeoutMs | number | no | download timeout in ms (default 300000) |
const rows = await sdv.nba.loadNbaTeamSeasonStats({ seasons: 2025 });
// snake_case alias (py/R parity): sdv.nba.load_nba_team_season_stats(...)
loadNbaDraft
Release: espn_nba_draft · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/espn_nba_draft/draft_{season}.parquet
| option | type | required | description |
|---|---|---|---|
seasons | number | number[] | yes | season(s) to load (>= 2003) |
columns | string[] | no | read only these columns |
format | "rows" | "columns" | no | row objects (default) or column arrays |
maxCells | number | no | size guard; default scales with the heap, Infinity disables |
timeoutMs | number | no | download timeout in ms (default 300000) |
const rows = await sdv.nba.loadNbaDraft({ seasons: 2025 });
// snake_case alias (py/R parity): sdv.nba.load_nba_draft(...)
loadNbaRosters
Release: espn_nba_rosters · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/espn_nba_rosters/rosters_{season}.parquet
| option | type | required | description |
|---|---|---|---|
seasons | number | number[] | yes | season(s) to load (>= 2025) |
columns | string[] | no | read only these columns |
format | "rows" | "columns" | no | row objects (default) or column arrays |
maxCells | number | no | size guard; default scales with the heap, Infinity disables |
timeoutMs | number | no | download timeout in ms (default 300000) |
const rows = await sdv.nba.loadNbaRosters({ seasons: 2025 });
// snake_case alias (py/R parity): sdv.nba.load_nba_rosters(...)
loadNbaStatsSchedules
Release: nba_stats_schedules · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nba_stats_schedules/nba_schedule_{season + 1}.parquet
Pass the season's START year (e.g. 1996 for the 1996-97 season); the asset is keyed by the END year and the loader translates internally, so a season column in the rows carries that END year.
| option | type | required | description |
|---|---|---|---|
seasons | number | number[] | yes | season(s) to load (>= 1996) |
columns | string[] | no | read only these columns |
format | "rows" | "columns" | no | row objects (default) or column arrays |
maxCells | number | no | size guard; default scales with the heap, Infinity disables |
timeoutMs | number | no | download timeout in ms (default 300000) |
const rows = await sdv.nba.loadNbaStatsSchedules({ seasons: 2025 });
// snake_case alias (py/R parity): sdv.nba.load_nba_stats_schedules(...)
loadNbaStatsCoaches
Release: nba_stats_coaches · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nba_stats_coaches/coaches_{season + 1}.parquet
Pass the season's START year (e.g. 1996 for the 1996-97 season); the asset is keyed by the END year and the loader translates internally, so a season column in the rows carries that END year.
| option | type | required | description |
|---|---|---|---|
seasons | number | number[] | yes | season(s) to load (>= 1996) |
columns | string[] | no | read only these columns |
format | "rows" | "columns" | no | row objects (default) or column arrays |
maxCells | number | no | size guard; default scales with the heap, Infinity disables |
timeoutMs | number | no | download timeout in ms (default 300000) |
const rows = await sdv.nba.loadNbaStatsCoaches({ seasons: 2025 });
// snake_case alias (py/R parity): sdv.nba.load_nba_stats_coaches(...)
loadNbaStatsGameRosters
Release: nba_stats_game_rosters · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nba_stats_game_rosters/game_rosters_{season + 1}.parquet
Pass the season's START year (e.g. 1996 for the 1996-97 season); the asset is keyed by the END year and the loader translates internally, so a season column in the rows carries that END year.
| option | type | required | description |
|---|---|---|---|
seasons | number | number[] | yes | season(s) to load (>= 1996) |
columns | string[] | no | read only these columns |
format | "rows" | "columns" | no | row objects (default) or column arrays |
maxCells | number | no | size guard; default scales with the heap, Infinity disables |
timeoutMs | number | no | download timeout in ms (default 300000) |
const rows = await sdv.nba.loadNbaStatsGameRosters({ seasons: 2025 });
// snake_case alias (py/R parity): sdv.nba.load_nba_stats_game_rosters(...)
loadNbaStatsLineups
Release: nba_stats_lineups · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nba_stats_lineups/lineups_{season + 1}.parquet
Pass the season's START year (e.g. 2007 for the 2007-08 season); the asset is keyed by the END year and the loader translates internally, so a season column in the rows carries that END year.
| option | type | required | description |
|---|---|---|---|
seasons | number | number[] | yes | season(s) to load (>= 2007) |
columns | string[] | no | read only these columns |
format | "rows" | "columns" | no | row objects (default) or column arrays |
maxCells | number | no | size guard; default scales with the heap, Infinity disables |
timeoutMs | number | no | download timeout in ms (default 300000) |
const rows = await sdv.nba.loadNbaStatsLineups({ seasons: 2025 });
// snake_case alias (py/R parity): sdv.nba.load_nba_stats_lineups(...)
loadNbaStatsLineupsV3
Use loadNbaStatsGameLineups — same seasons convention. Emits a one-time DeprecationWarning.
Release: nba_stats_game_lineups · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nba_stats_game_lineups/nba_lineups_{season + 1}.parquet
Pass the season's START year (e.g. 1996 for the 1996-97 season); the asset is keyed by the END year and the loader translates internally, so a season column in the rows carries that END year.
| option | type | required | description |
|---|---|---|---|
seasons | number | number[] | yes | season(s) to load (>= 1996) |
columns | string[] | no | read only these columns |
format | "rows" | "columns" | no | row objects (default) or column arrays |
maxCells | number | no | size guard; default scales with the heap, Infinity disables |
timeoutMs | number | no | download timeout in ms (default 300000) |
const rows = await sdv.nba.loadNbaStatsLineupsV3({ seasons: 2025 });
// snake_case alias (py/R parity): sdv.nba.load_nba_stats_lineups_v3(...)
loadNbaStatsOfficials
Release: nba_stats_officials · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nba_stats_officials/officials_{season + 1}.parquet
Pass the season's START year (e.g. 1996 for the 1996-97 season); the asset is keyed by the END year and the loader translates internally, so a season column in the rows carries that END year.
| option | type | required | description |
|---|---|---|---|
seasons | number | number[] | yes | season(s) to load (>= 1996) |
columns | string[] | no | read only these columns |
format | "rows" | "columns" | no | row objects (default) or column arrays |
maxCells | number | no | size guard; default scales with the heap, Infinity disables |
timeoutMs | number | no | download timeout in ms (default 300000) |
const rows = await sdv.nba.loadNbaStatsOfficials({ seasons: 2025 });
// snake_case alias (py/R parity): sdv.nba.load_nba_stats_officials(...)
loadNbaStatsPbp
Release: nba_stats_pbp · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nba_stats_pbp/nba_play_by_play_{season + 1}.parquet
Pass the season's START year (e.g. 1996 for the 1996-97 season); the asset is keyed by the END year and the loader translates internally, so a season column in the rows carries that END year.
| option | type | required | description |
|---|---|---|---|
seasons | number | number[] | yes | season(s) to load (>= 1996) |
columns | string[] | no | read only these columns |
format | "rows" | "columns" | no | row objects (default) or column arrays |
maxCells | number | no | size guard; default scales with the heap, Infinity disables |
timeoutMs | number | no | download timeout in ms (default 300000) |
const rows = await sdv.nba.loadNbaStatsPbp({ seasons: 2025, columns: ['game_id', 'period', 'clock', 'event_type', 'description'] });
// snake_case alias (py/R parity): sdv.nba.load_nba_stats_pbp(...)
loadNbaStatsPossessions
Release: nba_stats_possessions · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nba_stats_possessions/nba_possessions_{season + 1}.parquet
Pass the season's START year (e.g. 1996 for the 1996-97 season); the asset is keyed by the END year and the loader translates internally, so a season column in the rows carries that END year.
| option | type | required | description |
|---|---|---|---|
seasons | number | number[] | yes | season(s) to load (>= 1996) |
columns | string[] | no | read only these columns |
format | "rows" | "columns" | no | row objects (default) or column arrays |
maxCells | number | no | size guard; default scales with the heap, Infinity disables |
timeoutMs | number | no | download timeout in ms (default 300000) |
const rows = await sdv.nba.loadNbaStatsPossessions({ seasons: 2025 });
// snake_case alias (py/R parity): sdv.nba.load_nba_stats_possessions(...)
loadNbaStatsGameLineups
Release: nba_stats_game_lineups · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nba_stats_game_lineups/nba_lineups_{season + 1}.parquet
Pass the season's START year (e.g. 1996 for the 1996-97 season); the asset is keyed by the END year and the loader translates internally, so a season column in the rows carries that END year.
| option | type | required | description |
|---|---|---|---|
seasons | number | number[] | yes | season(s) to load (>= 1996) |
columns | string[] | no | read only these columns |
format | "rows" | "columns" | no | row objects (default) or column arrays |
maxCells | number | no | size guard; default scales with the heap, Infinity disables |
timeoutMs | number | no | download timeout in ms (default 300000) |
const rows = await sdv.nba.loadNbaStatsGameLineups({ seasons: 2025 });
// snake_case alias (py/R parity): sdv.nba.load_nba_stats_game_lineups(...)
loadNbaStatsGameMatchups
Release: nba_stats_game_matchups · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nba_stats_game_matchups/game_matchups_{season + 1}.parquet
Pass the season's START year (e.g. 2017 for the 2017-18 season); the asset is keyed by the END year and the loader translates internally, so a season column in the rows carries that END year.
| option | type | required | description |
|---|---|---|---|
seasons | number | number[] | yes | season(s) to load (>= 2017) |
columns | string[] | no | read only these columns |
format | "rows" | "columns" | no | row objects (default) or column arrays |
maxCells | number | no | size guard; default scales with the heap, Infinity disables |
timeoutMs | number | no | download timeout in ms (default 300000) |
const rows = await sdv.nba.loadNbaStatsGameMatchups({ seasons: 2025 });
// snake_case alias (py/R parity): sdv.nba.load_nba_stats_game_matchups(...)
loadNbaStatsPbpV3
Use loadNbaStatsPbp — same seasons convention. Emits a one-time DeprecationWarning.
Release: nba_stats_pbp · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nba_stats_pbp/nba_play_by_play_{season + 1}.parquet
Pass the season's START year (e.g. 1996 for the 1996-97 season); the asset is keyed by the END year and the loader translates internally, so a season column in the rows carries that END year.
| option | type | required | description |
|---|---|---|---|
seasons | number | number[] | yes | season(s) to load (>= 1996) |
columns | string[] | no | read only these columns |
format | "rows" | "columns" | no | row objects (default) or column arrays |
maxCells | number | no | size guard; default scales with the heap, Infinity disables |
timeoutMs | number | no | download timeout in ms (default 300000) |
const rows = await sdv.nba.loadNbaStatsPbpV3({ seasons: 2025, columns: ['game_id', 'period', 'clock', 'event_type', 'description'] });
// snake_case alias (py/R parity): sdv.nba.load_nba_stats_pbp_v3(...)
loadNbaStatsPlayerBoxscores
Release: nba_stats_player_boxscores · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nba_stats_player_boxscores/player_boxscores_{season + 1}.parquet
Pass the season's START year (e.g. 1996 for the 1996-97 season); the asset is keyed by the END year and the loader translates internally, so a season column in the rows carries that END year.
| option | type | required | description |
|---|---|---|---|
seasons | number | number[] | yes | season(s) to load (>= 1996) |
columns | string[] | no | read only these columns |
format | "rows" | "columns" | no | row objects (default) or column arrays |
maxCells | number | no | size guard; default scales with the heap, Infinity disables |
timeoutMs | number | no | download timeout in ms (default 300000) |
const rows = await sdv.nba.loadNbaStatsPlayerBoxscores({ seasons: 2025 });
// snake_case alias (py/R parity): sdv.nba.load_nba_stats_player_boxscores(...)
loadNbaStatsPlayerGameLogs
Release: nba_stats_player_game_logs · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nba_stats_player_game_logs/player_game_logs_{season + 1}.parquet
Pass the season's START year (e.g. 1996 for the 1996-97 season); the asset is keyed by the END year and the loader translates internally, so a season column in the rows carries that END year.
| option | type | required | description |
|---|---|---|---|
seasons | number | number[] | yes | season(s) to load (>= 1996) |
columns | string[] | no | read only these columns |
format | "rows" | "columns" | no | row objects (default) or column arrays |
maxCells | number | no | size guard; default scales with the heap, Infinity disables |
timeoutMs | number | no | download timeout in ms (default 300000) |
const rows = await sdv.nba.loadNbaStatsPlayerGameLogs({ seasons: 2025 });
// snake_case alias (py/R parity): sdv.nba.load_nba_stats_player_game_logs(...)
loadNbaStatsPlayerSeasonStats
Release: nba_stats_player_season_stats · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nba_stats_player_season_stats/player_season_stats_{season + 1}.parquet
Pass the season's START year (e.g. 1996 for the 1996-97 season); the asset is keyed by the END year and the loader translates internally, so a season column in the rows carries that END year.
| option | type | required | description |
|---|---|---|---|
seasons | number | number[] | yes | season(s) to load (>= 1996) |
columns | string[] | no | read only these columns |
format | "rows" | "columns" | no | row objects (default) or column arrays |
maxCells | number | no | size guard; default scales with the heap, Infinity disables |
timeoutMs | number | no | download timeout in ms (default 300000) |
const rows = await sdv.nba.loadNbaStatsPlayerSeasonStats({ seasons: 2025 });
// snake_case alias (py/R parity): sdv.nba.load_nba_stats_player_season_stats(...)
loadNbaStatsPossessionsV3
Use loadNbaStatsPossessions — same seasons convention. Emits a one-time DeprecationWarning.
Release: nba_stats_possessions · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nba_stats_possessions/nba_possessions_{season + 1}.parquet
Pass the season's START year (e.g. 1996 for the 1996-97 season); the asset is keyed by the END year and the loader translates internally, so a season column in the rows carries that END year.
| option | type | required | description |
|---|---|---|---|
seasons | number | number[] | yes | season(s) to load (>= 1996) |
columns | string[] | no | read only these columns |
format | "rows" | "columns" | no | row objects (default) or column arrays |
maxCells | number | no | size guard; default scales with the heap, Infinity disables |
timeoutMs | number | no | download timeout in ms (default 300000) |
const rows = await sdv.nba.loadNbaStatsPossessionsV3({ seasons: 2025 });
// snake_case alias (py/R parity): sdv.nba.load_nba_stats_possessions_v3(...)
loadNbaStatsRosters
Release: nba_stats_rosters · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nba_stats_rosters/rosters_{season + 1}.parquet
Pass the season's START year (e.g. 1996 for the 1996-97 season); the asset is keyed by the END year and the loader translates internally, so a season column in the rows carries that END year.
| option | type | required | description |
|---|---|---|---|
seasons | number | number[] | yes | season(s) to load (>= 1996) |
columns | string[] | no | read only these columns |
format | "rows" | "columns" | no | row objects (default) or column arrays |
maxCells | number | no | size guard; default scales with the heap, Infinity disables |
timeoutMs | number | no | download timeout in ms (default 300000) |
const rows = await sdv.nba.loadNbaStatsRosters({ seasons: 2025 });
// snake_case alias (py/R parity): sdv.nba.load_nba_stats_rosters(...)
loadNbaStatsShots
Release: nba_stats_shots · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nba_stats_shots/shots_{season + 1}.parquet
Pass the season's START year (e.g. 1996 for the 1996-97 season); the asset is keyed by the END year and the loader translates internally, so a season column in the rows carries that END year.
| option | type | required | description |
|---|---|---|---|
seasons | number | number[] | yes | season(s) to load (>= 1996) |
columns | string[] | no | read only these columns |
format | "rows" | "columns" | no | row objects (default) or column arrays |
maxCells | number | no | size guard; default scales with the heap, Infinity disables |
timeoutMs | number | no | download timeout in ms (default 300000) |
const rows = await sdv.nba.loadNbaStatsShots({ seasons: 2025 });
// snake_case alias (py/R parity): sdv.nba.load_nba_stats_shots(...)
loadNbaStatsStandings
Release: nba_stats_standings · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nba_stats_standings/standings_{season + 1}.parquet
Pass the season's START year (e.g. 1996 for the 1996-97 season); the asset is keyed by the END year and the loader translates internally, so a season column in the rows carries that END year.
| option | type | required | description |
|---|---|---|---|
seasons | number | number[] | yes | season(s) to load (>= 1996) |
columns | string[] | no | read only these columns |
format | "rows" | "columns" | no | row objects (default) or column arrays |
maxCells | number | no | size guard; default scales with the heap, Infinity disables |
timeoutMs | number | no | download timeout in ms (default 300000) |
const rows = await sdv.nba.loadNbaStatsStandings({ seasons: 2025 });
// snake_case alias (py/R parity): sdv.nba.load_nba_stats_standings(...)
loadNbaStatsTeamBoxscores
Release: nba_stats_team_boxscores · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nba_stats_team_boxscores/team_boxscores_{season + 1}.parquet
Pass the season's START year (e.g. 1996 for the 1996-97 season); the asset is keyed by the END year and the loader translates internally, so a season column in the rows carries that END year.
| option | type | required | description |
|---|---|---|---|
seasons | number | number[] | yes | season(s) to load (>= 1996) |
columns | string[] | no | read only these columns |
format | "rows" | "columns" | no | row objects (default) or column arrays |
maxCells | number | no | size guard; default scales with the heap, Infinity disables |
timeoutMs | number | no | download timeout in ms (default 300000) |
const rows = await sdv.nba.loadNbaStatsTeamBoxscores({ seasons: 2025 });
// snake_case alias (py/R parity): sdv.nba.load_nba_stats_team_boxscores(...)
loadNbaStatsTeamSeasonStats
Release: nba_stats_team_season_stats · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nba_stats_team_season_stats/team_season_stats_{season + 1}.parquet
Pass the season's START year (e.g. 1996 for the 1996-97 season); the asset is keyed by the END year and the loader translates internally, so a season column in the rows carries that END year.
| option | type | required | description |
|---|---|---|---|
seasons | number | number[] | yes | season(s) to load (>= 1996) |
columns | string[] | no | read only these columns |
format | "rows" | "columns" | no | row objects (default) or column arrays |
maxCells | number | no | size guard; default scales with the heap, Infinity disables |
timeoutMs | number | no | download timeout in ms (default 300000) |
const rows = await sdv.nba.loadNbaStatsTeamSeasonStats({ seasons: 2025 });
// snake_case alias (py/R parity): sdv.nba.load_nba_stats_team_season_stats(...)
loadNbaPlayerCrosswalk
Release: nba_crosswalk · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nba_crosswalk/nba_player_crosswalk_{season}.parquet
| option | type | required | description |
|---|---|---|---|
seasons | number | number[] | yes | season(s) to load (>= 2026) |
columns | string[] | no | read only these columns |
format | "rows" | "columns" | no | row objects (default) or column arrays |
maxCells | number | no | size guard; default scales with the heap, Infinity disables |
timeoutMs | number | no | download timeout in ms (default 300000) |
const rows = await sdv.nba.loadNbaPlayerCrosswalk({ seasons: 2026 });
// snake_case alias (py/R parity): sdv.nba.load_nba_player_crosswalk(...)
loadNbaScheduleCrosswalk
Release: nba_crosswalk · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nba_crosswalk/nba_schedule_crosswalk_{season}.parquet
| option | type | required | description |
|---|---|---|---|
seasons | number | number[] | yes | season(s) to load (>= 2026) |
columns | string[] | no | read only these columns |
format | "rows" | "columns" | no | row objects (default) or column arrays |
maxCells | number | no | size guard; default scales with the heap, Infinity disables |
timeoutMs | number | no | download timeout in ms (default 300000) |
const rows = await sdv.nba.loadNbaScheduleCrosswalk({ seasons: 2026 });
// snake_case alias (py/R parity): sdv.nba.load_nba_schedule_crosswalk(...)
loadNbaTeamCrosswalk
Release: nba_crosswalk · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nba_crosswalk/nba_team_crosswalk_{season}.parquet
| option | type | required | description |
|---|---|---|---|
seasons | number | number[] | yes | season(s) to load (>= 2026) |
columns | string[] | no | read only these columns |
format | "rows" | "columns" | no | row objects (default) or column arrays |
maxCells | number | no | size guard; default scales with the heap, Infinity disables |
timeoutMs | number | no | download timeout in ms (default 300000) |
const rows = await sdv.nba.loadNbaTeamCrosswalk({ seasons: 2026 });
// snake_case alias (py/R parity): sdv.nba.load_nba_team_crosswalk(...)
loadNbaPlayerCore
Release: espn_nba_player_core · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/espn_nba_player_core/player_core_{season}.parquet
| option | type | required | description |
|---|---|---|---|
seasons | number | number[] | yes | season(s) to load (>= 2002) |
columns | string[] | no | read only these columns |
format | "rows" | "columns" | no | row objects (default) or column arrays |
maxCells | number | no | size guard; default scales with the heap, Infinity disables |
timeoutMs | number | no | download timeout in ms (default 300000) |
const rows = await sdv.nba.loadNbaPlayerCore({ seasons: 2025 });
// snake_case alias (py/R parity): sdv.nba.load_nba_player_core(...)
loadNbaPlayerImpact
Release: nba_player_impact · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nba_player_impact/nba_player_impact_{season}.parquet
| option | type | required | description |
|---|---|---|---|
seasons | number | number[] | yes | season(s) to load (>= 1996) |
columns | string[] | no | read only these columns |
format | "rows" | "columns" | no | row objects (default) or column arrays |
maxCells | number | no | size guard; default scales with the heap, Infinity disables |
timeoutMs | number | no | download timeout in ms (default 300000) |
const rows = await sdv.nba.loadNbaPlayerImpact({ seasons: 2024 });
// snake_case alias (py/R parity): sdv.nba.load_nba_player_impact(...)
loadNbaGroups
Release: nba_groups · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nba_groups/nba_groups.parquet
One season-less file: one row per group lineage (the league, subdivisions, conferences, divisions) with the first and last season it had members. group_id is SDV's own id (e.g. nba:atlantic) and names a lineage: a rename that keeps continuity keeps the id, a new body gets a new one, and notes records each call. Seasons are the ENDING year (2025 = the 2024-25 season).
| option | type | required | description |
|---|---|---|---|
columns | string[] | no | read only these columns |
format | "rows" | "columns" | no | row objects (default) or column arrays |
maxCells | number | no | size guard; default scales with the heap, Infinity disables |
timeoutMs | number | no | download timeout in ms (default 300000) |
const rows = await sdv.nba.loadNbaGroups();
// snake_case alias (py/R parity): sdv.nba.load_nba_groups(...)
loadNbaGroupSeasons
Release: nba_groups · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nba_groups/nba_group_seasons.parquet
One season-less file: one row per group per season it existed, with its name, short name, abbreviation and parent group AS OF that season (never today's label applied to the past) and its member count. season is the ENDING year (2025 = the 2024-25 season).
| option | type | required | description |
|---|---|---|---|
columns | string[] | no | read only these columns |
format | "rows" | "columns" | no | row objects (default) or column arrays |
maxCells | number | no | size guard; default scales with the heap, Infinity disables |
timeoutMs | number | no | download timeout in ms (default 300000) |
const rows = await sdv.nba.loadNbaGroupSeasons();
// snake_case alias (py/R parity): sdv.nba.load_nba_group_seasons(...)
loadNbaGroupAliases
Release: nba_groups · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nba_groups/nba_group_aliases.parquet
One season-less file: every name, abbreviation, slug and source id that a source (espn, nba_stats, sdv) uses for a group, each with the seasons it is valid for (valid_from / valid_to, inclusive; null = unbounded). Match a source's conference or division label here to reach group_id.
| option | type | required | description |
|---|---|---|---|
columns | string[] | no | read only these columns |
format | "rows" | "columns" | no | row objects (default) or column arrays |
maxCells | number | no | size guard; default scales with the heap, Infinity disables |
timeoutMs | number | no | download timeout in ms (default 300000) |
const rows = await sdv.nba.loadNbaGroupAliases();
// snake_case alias (py/R parity): sdv.nba.load_nba_group_aliases(...)
loadNbaTeamGroupSeasons
Release: nba_groups · asset https://github.com/sportsdataverse/sportsdataverse-data/releases/download/nba_groups/nba_team_group_seasons_{season}.parquet
One row per team per season: the SDV subdivision, conference and division group ids the team belonged to that season (null where a level does not apply), the team name as of that season, where the membership came from, and whether a second source agreed (null when only one source covers the season). team_id is a string: the ESPN team id; team_id_source names the id space. season is the ENDING year (2025 = the 2024-25 season); seasons 1971-2027.
| option | type | required | description |
|---|---|---|---|
seasons | number | number[] | yes | season(s) to load (>= 1971) |
columns | string[] | no | read only these columns |
format | "rows" | "columns" | no | row objects (default) or column arrays |
maxCells | number | no | size guard; default scales with the heap, Infinity disables |
timeoutMs | number | no | download timeout in ms (default 300000) |
const rows = await sdv.nba.loadNbaTeamGroupSeasons({ seasons: 2024 });
// snake_case alias (py/R parity): sdv.nba.load_nba_team_group_seasons(...)