Skip to main content
Version: 0.1.5

NBA — additional Python functions — ESPN

espn_nba_game_rosters​

espn_nba_game_rosters(game_id: 'int', raw=False, return_as_pandas=False, **kwargs) -> 'pl.DataFrame'

espn_nba_game_rosters() - Pull the game by id.

Parameters

ParameterTypeDefaultDescription
game_idintUnique game_id, can be obtained from espn_nba_schedule().
rawFalse
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe of game roster data with columns: 'athlete_id', 'athlete_uid', 'athlete_guid', 'athlete_type', 'first_name', 'last_name', 'full_name', 'athlete_display_name', 'short_name', 'weight', 'display_weight', 'height', 'display_height', 'age', 'date_of_birth', 'slug', 'jersey', 'linked', 'active', 'alternate_ids_sdr', 'birth_place_city', 'birth_place_state', 'birth_place_country', 'headshot_href', 'headshot_alt', 'experience_years', 'experience_display_value', 'experience_abbreviation', 'status_id', 'status_name', 'status_type', 'status_abbreviation', 'hand_type', 'hand_abbreviation', 'hand_display_value', 'draft_display_text', 'draft_round', 'draft_year', 'draft_selection', 'player_id', 'starter', 'valid', 'did_not_play', 'display_name', 'ejected', 'athlete_href', 'position_href', 'statistics_href', 'team_id', 'team_guid', 'team_uid', 'team_slug', 'team_location', 'team_name', 'team_abbreviation', 'team_display_name', 'team_short_display_name', 'team_color', 'team_alternate_color', 'is_active', 'is_all_star', 'logo_href', 'logo_dark_href', 'game_id'

col_nametypedescription
athlete_idintegerUnique athlete identifier (ESPN).
athlete_uidcharacterESPN athlete UID (universal identifier).
athlete_guidcharacterESPN athlete GUID.
athlete_typecharacterAthlete type / class.
first_namecharacterPlayer's first name.
last_namecharacterPlayer's last name.
full_namecharacterPlayer's full name.
athlete_display_namecharacterAthlete display name (full).
short_namecharacterShort display name.
weightdoublePlayer weight in pounds.
display_weightcharacterPlayer weight in display format (e.g. '180 lbs').
heightdoublePlayer height (string e.g. '6-2' or inches).
display_heightcharacterPlayer height in display format (e.g. '6-2').
ageintegerPlayer age (in years).
date_of_birthcharacterDate of birth (YYYY-MM-DD).
debut_yearintegerYear of professional debut.
citizenshipcharacterCitizenship.
slugcharacterURL-safe identifier.
jerseycharacterJersey number worn by the player.
linkedlogicalTRUE if the record is linked to a related entity.
activelogicalTRUE if the row represents an active record (player / team / season).
alternate_ids_sdrcharacter
birth_place_citycharacterBirth place city.
birth_place_countrycharacterBirth place country.
headshot_hrefcharacterHeadshot image URL.
headshot_altcharacterAlternative-text label for the headshot.
contracts_hrefcharacter
experience_yearsintegerExperience years.
contract_hrefcharacter
contract_bird_statusintegerContract bird status.
contract_base_year_compensation_activelogicalContract base year compensation active.
contract_poison_pill_provision_activelogical
contract_incoming_trade_valueintegerContract incoming trade value.
contract_outgoing_trade_valueintegerContract outgoing trade value.
contract_minimum_salary_exceptionlogicalContract minimum salary exception.
contract_option_typeintegerContract option type.
contract_salaryintegerContract salary.
contract_salary_remainingintegerContract salary remaining.
contract_years_remainingintegerContract years remaining.
contract_season_hrefcharacter
contract_team_hrefcharacter
contract_trade_kicker_activelogicalContract trade kicker active.
contract_trade_kicker_percentagedoubleContract trade kicker percentage (0-1 decimal).
contract_trade_kicker_valueintegerContract trade kicker value.
contract_trade_kicker_trade_valueintegerContract trade kicker trade value.
contract_trade_restrictionlogicalContract trade restriction.
contract_unsigned_foreign_picklogicalContract unsigned foreign pick.
contract_activelogicalContract active.
draft_display_textcharacterDraft display text.
draft_roundintegerRound of the draft selection.
draft_yearintegerDraft year (4-digit).
draft_selectionintegerDraft selection.
draft_team_hrefcharacter
draft_pick_hrefcharacter
status_idcharacterStatus identifier.
status_namecharacterStatus label.
status_typecharacterStatus type.
status_abbreviationcharacterStatus abbreviation.
birth_place_statecharacterBirth place state.
college_athlete_hrefcharacter
hand_typecharacterHand type.
hand_abbreviationcharacterHand abbreviation.
hand_display_valuecharacterHand display value.
starterlogicalTRUE if the player was in the starting lineup; FALSE otherwise.
jersey_rightcharacter
validlogicalValid.
did_not_playlogicalTRUE if the player did not appear in the game.
display_namecharacterDisplay name.
reasoncharacterReason.
ejectedlogicalTRUE if the player was ejected from the game.
athlete_hrefcharacter
position_hrefcharacter
statistics_hrefcharacter
team_idintegerUnique team identifier.
orderintegerDisplay order within the result set.
home_awaycharacterGame venue label ('home' or 'away').
winnerlogicalWinner.
team_guidcharacterESPN team GUID.
team_uidcharacterESPN universal team identifier (UID format 's:40~l:...~t:...').
team_slugcharacterURL-safe team identifier (e.g. 'lasvegas-aces' / 'aces').
team_locationcharacterTeam city or location string.
team_namecharacterFull team display name (e.g. 'Las Vegas Aces').
team_abbreviationcharacterShort team abbreviation (e.g. 'LAS').
team_display_namecharacterFull team display name.
team_short_display_namecharacterShort team display name (e.g. 'Aces').
team_colorcharacterTeam primary color (hex without leading '#').
team_alternate_colorcharacterTeam alternate color (hex without leading '#').
is_activelogicalIs active.
is_all_starlogicalIs all star.
logo_hrefcharacterTeam or league logo URL.
logo_dark_hrefcharacterLogo URL for dark backgrounds.
game_idintegerUnique game identifier.

Example

from sportsdataverse.nba import espn_nba_game_rosters
rosters = espn_nba_game_rosters(game_id=401585183)
print(rosters.shape)

# Pandas round-trip

rosters_pd = espn_nba_game_rosters(game_id=401585183, return_as_pandas=True)
rosters_pd.head()

# Pipeline next step (filter to game starters)

import polars as pl
starters = espn_nba_game_rosters(game_id=401585183).filter(
pl.col("starter") == True
)

espn_nba_pbp​

espn_nba_pbp(game_id: 'int', raw=False, **kwargs) -> 'Dict'

espn_nba_pbp() - Pull the game by id - Data from API endpoints - nba/playbyplay, nba/summary

Parameters

ParameterTypeDefaultDescription
game_idintUnique game_id, can be obtained from nba_schedule().
rawboolFalseIf True, returns the raw json from the API endpoint. If False, returns a cleaned dictionary of datasets.

Returns

Dictionary of game data with keys - "gameId", "plays", "winprobability", "boxscore", "header", "broadcasts", "videos", "playByPlaySource", "standings", "leaders", "seasonseries", "timeouts", "pickcenter", "againstTheSpread", "odds", "predictor", "espnWP", "gameInfo", "season"

Example

from sportsdataverse.nba import espn_nba_pbp
pbp = espn_nba_pbp(game_id=401585183)
print(list(pbp.keys()))

# Pull only the raw ESPN summary payload (skip cleaning)

raw_pbp = espn_nba_pbp(game_id=401585183, raw=True)

# Pipeline next step (load plays into a polars DataFrame)

import polars as pl
pbp = espn_nba_pbp(game_id=401585183)
plays_df = pl.from_dicts(pbp["plays"])

scoreboard_event_parsing​

scoreboard_event_parsing(event)

Internal helper that flattens an ESPN NBA scoreboard event dict into a

shape suitable for pd.json_normalize.

Parameters

ParameterTypeDefaultDescription
eventdictA single scoreboard events[*] entry from the ESPN NBA scoreboard API.

Returns

The same event dict, mutated in place with home/away copies of the competitors and trimmed of unused link/odds keys.

Example

from sportsdataverse.nba import espn_nba_schedule
sched = espn_nba_schedule(dates=20230102)