Skip to main content
Version: 0.0.55

NFL — additional Python functions

Hand-written wrappers, loaders, and helpers in sportsdataverse.nfl not covered by the generated API-endpoint reference above.

Play-by-play, schedule & rosters

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

espn_nfl_game_rosters() - Pull the game by id.

Parameters

ParameterTypeDefaultDescription
game_idintUnique game_id, can be obtained from espn_nfl_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_nickname', 'team_abbreviation', 'team_display_name', 'team_short_display_name', 'team_color', 'team_alternate_color', 'is_active', 'is_all_star', 'team_alternate_ids_sdr', '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.
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_statecharacterBirth place state.
birth_place_countrycharacterBirth place country.
headshot_hrefcharacterHeadshot image URL.
headshot_altcharacterAlternative-text label for the headshot.
projections_hrefcharacter
contracts_hrefcharacter
experience_yearsintegerExperience years.
college_athlete_hrefcharacter
contract_hrefcharacter
contract_option_typeintegerContract option type.
contract_salaryintegerContract salary.
contract_bonusinteger
contract_years_remainingintegerContract years remaining.
contract_signed_throughinteger
contract_season_hrefcharacter
contract_team_hrefcharacter
contract_activelogicalContract active.
status_idcharacterStatus identifier.
status_namecharacterStatus label.
status_typecharacterStatus type.
status_abbreviationcharacterStatus abbreviation.
contract_salary_remainingintegerContract salary remaining.
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
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.
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_nicknamecharacterTeam nickname.
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_activelogicalWhether the team was active in this season.
is_all_starlogicalIs all star.
team_alternate_ids_sdrcharacter
logo_hrefcharacterTeam or league logo URL.
logo_dark_hrefcharacterLogo URL for dark backgrounds.
game_idintegerUnique game identifier.

Example

from sportsdataverse.nfl import espn_nfl_game_rosters
rosters = espn_nfl_game_rosters(game_id=401220403)
rosters.shape

Pandas round-trip with home/away split::

rosters_pd = espn_nfl_game_rosters(game_id=401220403, return_as_pandas=True)
home = rosters_pd[rosters_pd["home_away"] == "home"]
away = rosters_pd[rosters_pd["home_away"] == "away"]

espn_nfl_player_stats(athlete_id: 'int', season: 'int', *, season_type: 'str' = 'regular', total: 'bool' = False, raw: 'bool' = False, return_as_pandas: 'bool' = False, **kwargs: 'Any') -> 'pl.DataFrame | pd.DataFrame | dict[str, Any]'

Pull an NFL athlete's ESPN season stat line as one wide row.

See :func:sportsdataverse.wbb.espn_wbb_player_stats for full documentation of the wide return shape, the {category}_{stat} stat columns (for football: passing_*, rushing_*, receiving_*, scoring_*, ...), the athlete / team metadata blocks, and the season_type / total parameters. For the richer multi-category web-v3 payload use :func:sportsdataverse.nfl.espn_nfl_player_stats_v3.

Parameters

ParameterTypeDefaultDescription
athlete_idintESPN NFL athlete identifier (e.g. 3139477 for Patrick Mahomes).
seasonintSeason year, used in the core-v2 path.
season_typestr'regular'"regular" (type 2) or "postseason" (type 3).
totalboolFalseForward-compat totals passthrough.
rawboolFalseIf True, returns the raw core-v2 statistics JSON dict.
return_as_pandasboolFalseIf True, returns a pandas DataFrame; else polars.

Returns

A single-row wide DataFrame (polars by default). When raw=True returns the raw statistics JSON dict.

col_nametypedescription
seasonintegerSeason year.
season_typecharacterSeason type (1=pre-season, 2=regular season, 3=postseason, 4=off-season for ESPN; or string label for WNBA Stats).
totallogicalTotal.
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.
display_namecharacterDisplay name.
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).
jerseycharacterJersey number worn by the player.
slugcharacterURL-safe identifier.
activelogicalTRUE if the row represents an active record (player / team / season).
position_idintegerUnique position identifier.
position_namecharacterListed roster position ('Guard', 'Forward', 'Center').
position_display_namecharacterPosition display name.
position_abbreviationcharacterPosition abbreviation ('G' / 'F' / 'C').
college_namecharacterCollege name.
status_idintegerStatus identifier.
status_namecharacterStatus label.
general_fumblesdouble
general_fumbles_lostdouble
general_fumbles_forceddouble
general_fumbles_forced_primarydouble
general_fumbles_recovereddouble
general_fumbles_recovered_yardsdouble
general_fumbles_touchdownsdouble
general_games_playeddoubleGames Played.
general_offensive_two_pt_returnsdouble
general_offensive_fumbles_touchdownsdouble
general_defensive_fumbles_touchdownsdouble
passing_avg_gaindouble
passing_completion_pctdouble
passing_completionsdoublePass completions (split from CFBD's C/ATT field).
passing_espnqb_ratingdouble
passing_interception_pctdouble
passing_interceptionsdouble
passing_long_passingdouble
passing_net_passing_yardsdouble
passing_net_passing_yards_per_gamedouble
passing_net_total_yardsdouble
passing_net_yards_per_gamedouble
passing_passing_attemptsdouble
passing_passing_big_playsdouble
passing_passing_first_downsdouble
passing_passing_fumblesdouble
passing_passing_fumbles_lostdouble
passing_passing_touchdown_pctdouble
passing_passing_touchdownsdouble
passing_passing_yardsdouble
passing_passing_yards_after_catchdouble
passing_passing_yards_at_catchdouble
passing_passing_yards_per_gamedouble
passing_qb_ratingdouble
passing_sacksdouble
passing_sack_yards_lostdouble
passing_net_passing_attemptsdouble
passing_team_games_playeddouble
passing_total_offensive_playsdouble
passing_total_points_per_gamedouble
passing_total_touchdownsdouble
passing_total_yardsdouble
passing_total_yards_from_scrimmagedouble
passing_two_point_pass_convsdouble
passing_two_pt_passdouble
passing_two_pt_pass_attemptsdouble
passing_yards_from_scrimmage_per_gamedouble
passing_yards_per_completiondouble
passing_yards_per_gamedouble
passing_yards_per_pass_attemptdouble
passing_net_yards_per_pass_attemptdouble
passing_qbrdoubleESPN Quarterback Rating (QBR) for the player in this game.
passing_adj_qbrdouble
passing_quarterback_ratingdouble
rushing_avg_gaindouble
rushing_espnrb_ratingdouble
rushing_long_rushingdouble
rushing_net_total_yardsdouble
rushing_net_yards_per_gamedouble
rushing_rushing_attemptsdouble
rushing_rushing_big_playsdouble
rushing_rushing_first_downsdouble
rushing_rushing_fumblesdouble
rushing_rushing_fumbles_lostdouble
rushing_rushing_touchdownsdouble
rushing_rushing_yardsdouble
rushing_rushing_yards_per_gamedouble
rushing_stuffsdouble
rushing_stuff_yards_lostdouble
rushing_team_games_playeddouble
rushing_total_offensive_playsdouble
rushing_total_points_per_gamedouble
rushing_total_touchdownsdouble
rushing_total_yardsdouble
rushing_total_yards_from_scrimmagedouble
rushing_two_point_rush_convsdouble
rushing_two_pt_rushdouble
rushing_two_pt_rush_attemptsdouble
rushing_yards_from_scrimmage_per_gamedouble
rushing_yards_per_gamedouble
rushing_yards_per_rush_attemptdouble
receiving_avg_gaindouble
receiving_espnwr_ratingdouble
receiving_long_receptiondouble
receiving_net_total_yardsdouble
receiving_net_yards_per_gamedouble
receiving_receiving_big_playsdouble
receiving_receiving_first_downsdouble
receiving_receiving_fumblesdouble
receiving_receiving_fumbles_lostdouble
receiving_receiving_targetsdouble
receiving_receiving_touchdownsdouble
receiving_receiving_yardsdouble
receiving_receiving_yards_after_catchdouble
receiving_receiving_yards_at_catchdouble
receiving_receiving_yards_per_gamedouble
receiving_receptionsdouble
receiving_team_games_playeddouble
receiving_total_offensive_playsdouble
receiving_total_points_per_gamedouble
receiving_total_touchdownsdouble
receiving_total_yardsdouble
receiving_total_yards_from_scrimmagedouble
receiving_two_point_rec_convsdouble
receiving_two_pt_receptiondouble
receiving_two_pt_reception_attemptsdouble
receiving_yards_from_scrimmage_per_gamedouble
receiving_yards_per_gamedouble
receiving_yards_per_receptiondouble
defensive_assist_tacklesdouble
defensive_avg_interception_yardsdouble
defensive_avg_sack_yardsdouble
defensive_avg_stuff_yardsdouble
defensive_blocked_field_goal_touchdownsdouble
defensive_blocked_punt_touchdownsdouble
defensive_hurriesdouble
defensive_kicks_blockeddouble
defensive_long_interceptiondouble
defensive_misc_touchdownsdouble
defensive_passes_batted_downdouble
defensive_passes_defendeddouble
defensive_qb_hitsdouble
defensive_two_pt_returnsdouble
defensive_sacksdoubleSacks credited to the player.
defensive_sack_yardsdouble
defensive_safetiesdouble
defensive_solo_tacklesdouble
defensive_stuffsdouble
defensive_stuff_yardsdouble
defensive_tackles_for_lossdouble
defensive_tackles_yards_lostdouble
defensive_team_games_playeddouble
defensive_total_tacklesdouble
defensive_yards_alloweddouble
defensive_points_alloweddouble
defensive_one_pt_safeties_madedouble
defensive_missed_field_goal_return_tddouble
defensive_blocked_punt_ez_rec_tddouble
defensive_interceptions_interceptionsdouble
defensive_interceptions_interception_touchdownsdouble
defensive_interceptions_interception_yardsdouble
scoring_defensive_pointsdouble
scoring_field_goalsdouble
scoring_kick_extra_pointsdouble
scoring_kick_extra_points_madedouble
scoring_misc_pointsdouble
scoring_passing_touchdownsdouble
scoring_receiving_touchdownsdouble
scoring_return_touchdownsdouble
scoring_rushing_touchdownsdouble
scoring_total_pointsdouble
scoring_total_points_per_gamedouble
scoring_total_touchdownsdouble
scoring_total_two_point_convsdouble
scoring_two_point_pass_convsdouble
scoring_two_point_rec_convsdouble
scoring_two_point_rush_convsdouble
scoring_one_pt_safeties_madedouble
team_idintegerUnique team identifier.
team_uidcharacterESPN universal team identifier (UID format 's:40~l:...~t:...').
team_guidcharacterESPN team GUID.
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 '#').
team_is_activelogicalTRUE if the team is currently active.
team_logo_hrefcharacterDefault team logo URL; team_detail = TRUE only.

Example

from sportsdataverse.nfl import espn_nfl_player_stats
df = espn_nfl_player_stats(athlete_id=3139477, season=2023)
df.select(["full_name", "team_display_name", "passing_passing_yards"])

espn_nfl_schedule(dates=None, week=None, season_type=None, groups=None, limit=500, return_as_pandas=False, **kwargs) -> 'pl.DataFrame'

espn_nfl_schedule - look up the NFL schedule for a given season

Parameters

ParameterTypeDefaultDescription
datesintNoneUsed to define different seasons. 2002 is the earliest available season.
weekintNoneWeek of the schedule.
season_typeintNone2 for regular season, 3 for post-season, 4 for off-season.
groupsNone
limitint500number of records to return, default: 500.
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing schedule dates for the requested season. Returns None if no games

col_nametypedescription
idcharacterId.
uidcharacterESPN UID string.
datecharacterDate in YYYY-MM-DD format.
attendanceintegerReported attendance.
time_validlogicalTime valid.
neutral_sitelogicalNeutral site.
conference_competitionlogicalConference competition.
play_by_play_availablelogicalTRUE if play-by-play is available.
recentlogicalRecent.
start_datecharacterStart date (YYYY-MM-DD).
broadcastcharacterBroadcast information string.
highlightscharacterGame highlight urls.
notes_typecharacterNotes type.
notes_headlinecharacterNotes headline.
broadcast_marketcharacterBroadcast market label (e.g. 'national', 'home').
broadcast_namecharacterBroadcast name.
type_idcharacterType identifier (numeric).
type_abbreviationcharacterPlay-type abbreviation (e.g. RUSH, TD).
venue_idcharacterUnique venue identifier.
venue_full_namecharacterVenue full name.
venue_address_citycharacterVenue address city.
venue_address_statecharacterVenue address state / region.
venue_address_countrycharacter
venue_indoorlogicalWhether the home venue is indoors.
status_clockdoubleStatus clock.
status_display_clockcharacterStatus display clock.
status_periodintegerStatus period.
status_type_idcharacterUnique identifier for status type.
status_type_namecharacterStatus type name.
status_type_statecharacterStatus type state.
status_type_completedlogicalStatus type completed.
status_type_descriptioncharacterStatus type description.
status_type_detailcharacterStatus type detail.
status_type_short_detailcharacterStatus type short detail.
status_is_tbd_flexlogical
format_regulation_periodsintegerFormat regulation periods.
home_idcharacterUnique identifier for home.
home_uidcharacterHome team's uid.
home_locationcharacterHome team's location.
home_namecharacterHome name.
home_abbreviationcharacterHome team's abbreviation.
home_display_namecharacterHome display name.
home_short_display_namecharacterHome short display name.
home_colorcharacterColor code (hex) for home.
home_alternate_colorcharacterColor code (hex) for home alternate.
home_is_activelogicalHome team's is active.
home_venue_idcharacterUnique identifier for home venue.
home_logocharacterHome team logo URL.
home_scorecharacterHome team score at the time of the play.
home_current_rankinteger
home_linescoresinteger
home_recordscharacter
away_idcharacterUnique identifier for away.
away_uidcharacterAway team's uid.
away_locationcharacterAway team's location.
away_namecharacterAway name.
away_abbreviationcharacterAway team's abbreviation.
away_display_namecharacterAway display name.
away_short_display_namecharacterAway short display name.
away_colorcharacterColor code (hex) for away.
away_alternate_colorcharacterColor code (hex) for away alternate.
away_is_activelogicalAway team's is active.
away_venue_idcharacterUnique identifier for away venue.
away_logocharacterAway team logo URL.
away_scorecharacterAway team score at the time of the play.
away_current_rankinteger
away_linescoresinteger
away_recordscharacter
game_idintegerUnique game identifier.
seasonintegerSeason year.
season_typeintegerSeason type (1=pre-season, 2=regular season, 3=postseason, 4=off-season for ESPN; or string label for WNBA Stats).
weekintegerWeek number.

Example

from sportsdataverse.nfl import espn_nfl_schedule
sched = espn_nfl_schedule(dates=20240908)

Specific week of regular season (``season_type=2``)::

wk1 = espn_nfl_schedule(dates=2024, week=1, season_type=2)

Pandas round-trip::

sched_pd = espn_nfl_schedule(dates=20240908, return_as_pandas=True)

Dataset loaders

load_combine(return_as_pandas=False) -> 'pl.DataFrame'

Load NFL Combine information

Parameters

ParameterTypeDefaultDescription
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing NFL combine data available.

col_nametypedescription
seasonintegerSeason year.
draft_yeardoubleDraft year (4-digit).
draft_teamcharacter
draft_rounddoubleRound of the draft selection.
draft_ovrdouble
pfr_idcharacter
cfb_idcharacter
player_namecharacterPlayer name.
poscharacterPlayer position.
schoolcharacterPlayer's school / college (when distinct from 'college').
htcharacterHt.
wtdoubleWt.
fortydouble
benchdoubleBench.
verticaldouble
broad_jumpdouble
conedouble
shuttledouble

Example

from sportsdataverse.nfl import load_nfl_combine
combine = load_nfl_combine()
combine.shape

Filter by draft year and position::

import polars as pl
qbs_2024 = (
load_nfl_combine()
.filter((pl.col("season") == 2024) & (pl.col("pos") == "QB"))
)

load_contracts(return_as_pandas=False) -> 'pl.DataFrame'

Load NFL Historical contracts information

Parameters

ParameterTypeDefaultDescription
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing historical contracts available.

col_nametypedescription
playercharacterPlayer name.
positioncharacterListed roster position (G, F, C, etc.).
teamcharacterTeam-side label or team identifier.
is_activelogicalWhether the team was active in this season.
year_signedinteger
yearsintegerYears.
valuedoubleNumeric or string value field.
apydouble
guaranteeddouble
apy_cap_pctdouble
inflated_valuedouble
inflated_apydouble
inflated_guaranteeddouble
player_pagecharacter
otc_idinteger
gsis_idcharacter
date_of_birthcharacterDate of birth (YYYY-MM-DD).
heightcharacterPlayer height (string e.g. '6-2' or inches).
weightcharacterPlayer weight in pounds.
collegecharacterCollege or school attended.
draft_yearintegerDraft year (4-digit).
draft_roundintegerRound of the draft selection.
draft_overallinteger
draft_teamcharacter
colsdouble

Example

from sportsdataverse.nfl import load_nfl_contracts
contracts = load_nfl_contracts()
contracts.shape

Pandas round-trip with sort by APY::

contracts_pd = load_nfl_contracts(return_as_pandas=True)
contracts_pd.sort_values("apy", ascending=False).head()

load_depth_charts(seasons: 'List[int]', return_as_pandas=False) -> 'pl.DataFrame'

Load NFL Depth Chart data for selected seasons

Parameters

ParameterTypeDefaultDescription
seasonslistUsed to define different seasons. 2001 is the earliest available season.
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing depth chart data available for the requested seasons.

col_nametypedescription
seasonintegerSeason year.
club_codecharacter
weekintegerWeek number.
game_typecharacterGame type code (R, P, etc.).
depth_teamcharacter
last_namecharacterPlayer's last name.
first_namecharacterPlayer's first name.
football_namecharacter
formationcharacter
gsis_idcharacter
jersey_numbercharacterJersey number worn (often blank for non-uniformed roles).
positioncharacterListed roster position (G, F, C, etc.).
elias_idcharacter
depth_positioncharacter
full_namecharacterPlayer's full name.

Example

from sportsdataverse.nfl import load_nfl_depth_charts
depth = load_nfl_depth_charts(seasons=[2024])

Multi-season range::

depth = load_nfl_depth_charts(seasons=range(2020, 2025))

load_draft_picks(return_as_pandas=False) -> 'pl.DataFrame'

Load NFL Draft picks information

Parameters

ParameterTypeDefaultDescription
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing NFL Draft picks data available.

col_nametypedescription
seasonintegerSeason year.
roundintegerTournament / playoff round.
pickintegerPick number of the NFL draftee within the round they were picked in.
teamcharacterTeam-side label or team identifier.
gsis_idcharacter
pfr_player_idcharacter
cfb_player_idcharacter
pfr_player_namecharacter
hoflogical
positioncharacterListed roster position (G, F, C, etc.).
categorycharacterCategory label.
sidecharacterSide label (e.g. 'home', 'away', or 'overUnder').
collegecharacterCollege or school attended.
ageintegerPlayer age (in years).
tointegerTo.
allprointeger
probowlsinteger
seasons_startedinteger
w_avinteger
car_avlogical
dr_avinteger
gamesintegerNumber of games included in the ATS summary.
pass_completionsinteger
pass_attemptsinteger
pass_yardsinteger
pass_tdsinteger
pass_intsinteger
rush_attsintegerRushing attempts.
rush_yardsinteger
rush_tdsintegerTeam rushing touchdowns.
receptionsinteger
rec_yardsinteger
rec_tdsinteger
def_solo_tacklesinteger
def_intsinteger
def_sacksdouble

Example

from sportsdataverse.nfl import load_nfl_draft_picks
picks = load_nfl_draft_picks()
picks.shape

Filter to a single year and round::

import polars as pl
r1_2024 = (
load_nfl_draft_picks()
.filter((pl.col("season") == 2024) & (pl.col("round") == 1))
)

load_ff_opportunity(seasons: 'List[int]', stat_type: 'str' = 'weekly', model_version: 'str' = 'latest', return_as_pandas=False) -> 'pl.DataFrame'

Load NFL fantasy football opportunity data from ffverse/ffopportunity

Parameters

ParameterTypeDefaultDescription
seasonslistUsed to define different seasons. 2006 is the earliest available season.
stat_typestr'weekly'One of "weekly", "pbp_pass", "pbp_rush". Defaults to "weekly".
model_versionstr'latest'One of "latest", "v1.0.0". Defaults to "latest".
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing fantasy football opportunity data for the requested seasons.

col_nametypedescription
seasoncharacterSeason year.
posteamcharacter
weekdoubleWeek number.
game_idcharacterUnique game identifier.
player_idcharacterUnique player identifier.
full_namecharacterPlayer's full name.
positioncharacterListed roster position (G, F, C, etc.).
pass_attemptdoubleBinary flag for a pass attempt.
rec_attemptdouble
rush_attemptdouble
pass_air_yardsdouble
rec_air_yardsdouble
pass_completionsdouble
receptionsdouble
pass_completions_expdouble
receptions_expdouble
pass_yards_gaineddouble
rec_yards_gaineddouble
rush_yards_gaineddouble
pass_yards_gained_expdouble
rec_yards_gained_expdouble
rush_yards_gained_expdouble
pass_touchdowndouble
rec_touchdowndouble
rush_touchdowndouble
pass_touchdown_expdouble
rec_touchdown_expdouble
rush_touchdown_expdouble
pass_two_point_convdouble
rec_two_point_convdouble
rush_two_point_convdouble
pass_two_point_conv_expdouble
rec_two_point_conv_expdouble
rush_two_point_conv_expdouble
pass_first_downdouble
rec_first_downdouble
rush_first_downdouble
pass_first_down_expdouble
rec_first_down_expdouble
rush_first_down_expdouble
pass_interceptiondouble
rec_interceptiondouble
pass_interception_expdouble
rec_interception_expdouble
rec_fumble_lostdouble
rush_fumble_lostdouble
pass_fantasy_points_expdouble
rec_fantasy_points_expdouble
rush_fantasy_points_expdouble
pass_fantasy_pointsdouble
rec_fantasy_pointsdouble
rush_fantasy_pointsdouble
total_yards_gaineddouble
total_yards_gained_expdouble
total_touchdowndouble
total_touchdown_expdouble
total_first_downdouble
total_first_down_expdouble
total_fantasy_pointsdouble
total_fantasy_points_expdouble
pass_completions_diffdouble
receptions_diffdouble
pass_yards_gained_diffdouble
rec_yards_gained_diffdouble
rush_yards_gained_diffdouble
pass_touchdown_diffdouble
rec_touchdown_diffdouble
rush_touchdown_diffdouble
pass_two_point_conv_diffdouble
rec_two_point_conv_diffdouble
rush_two_point_conv_diffdouble
pass_first_down_diffdouble
rec_first_down_diffdouble
rush_first_down_diffdouble
pass_interception_diffdouble
rec_interception_diffdouble
pass_fantasy_points_diffdouble
rec_fantasy_points_diffdouble
rush_fantasy_points_diffdouble
total_yards_gained_diffdouble
total_touchdown_diffdouble
total_first_down_diffdouble
total_fantasy_points_diffdouble
pass_attempt_teamdouble
rec_attempt_teamdouble
rush_attempt_teamdouble
pass_air_yards_teamdouble
rec_air_yards_teamdouble
pass_completions_teamdouble
receptions_teamdouble
pass_completions_exp_teamdouble
receptions_exp_teamdouble
pass_yards_gained_teamdouble
rec_yards_gained_teamdouble
rush_yards_gained_teamdouble
pass_yards_gained_exp_teamdouble
rec_yards_gained_exp_teamdouble
rush_yards_gained_exp_teamdouble
pass_touchdown_teamdouble
rec_touchdown_teamdouble
rush_touchdown_teamdouble
pass_touchdown_exp_teamdouble
rec_touchdown_exp_teamdouble
rush_touchdown_exp_teamdouble
pass_two_point_conv_teamdouble
rec_two_point_conv_teamdouble
rush_two_point_conv_teamdouble
pass_two_point_conv_exp_teamdouble
rec_two_point_conv_exp_teamdouble
rush_two_point_conv_exp_teamdouble
pass_first_down_teamdouble
rec_first_down_teamdouble
rush_first_down_teamdouble
pass_first_down_exp_teamdouble
rec_first_down_exp_teamdouble
rush_first_down_exp_teamdouble
pass_interception_teamdouble
rec_interception_teamdouble
pass_interception_exp_teamdouble
rec_interception_exp_teamdouble
rec_fumble_lost_teamdouble
rush_fumble_lost_teamdouble
pass_fantasy_points_exp_teamdouble
rec_fantasy_points_exp_teamdouble
rush_fantasy_points_exp_teamdouble
pass_fantasy_points_teamdouble
rec_fantasy_points_teamdouble
rush_fantasy_points_teamdouble
pass_completions_diff_teamdouble
receptions_diff_teamdouble
pass_yards_gained_diff_teamdouble
rec_yards_gained_diff_teamdouble
rush_yards_gained_diff_teamdouble
pass_touchdown_diff_teamdouble
rec_touchdown_diff_teamdouble
rush_touchdown_diff_teamdouble
pass_two_point_conv_diff_teamdouble
rec_two_point_conv_diff_teamdouble
rush_two_point_conv_diff_teamdouble
pass_first_down_diff_teamdouble
rec_first_down_diff_teamdouble
rush_first_down_diff_teamdouble
pass_interception_diff_teamdouble
rec_interception_diff_teamdouble
pass_fantasy_points_diff_teamdouble
rec_fantasy_points_diff_teamdouble
rush_fantasy_points_diff_teamdouble
total_yards_gained_teamdouble
total_yards_gained_exp_teamdouble
total_yards_gained_diff_teamdouble
total_touchdown_teamdouble
total_touchdown_exp_teamdouble
total_touchdown_diff_teamdouble
total_first_down_teamdouble
total_first_down_exp_teamdouble
total_first_down_diff_teamdouble
total_fantasy_points_teamdouble
total_fantasy_points_exp_teamdouble
total_fantasy_points_diff_teamdouble

Example

from sportsdataverse.nfl import load_nfl_ff_opportunity
weekly = load_nfl_ff_opportunity(seasons=[2024])

Pass play-by-play opportunity stats::

pbp_pass = load_nfl_ff_opportunity(seasons=[2024], stat_type="pbp_pass")

Rush play-by-play opportunity stats with pinned model version::

pbp_rush = load_nfl_ff_opportunity(
seasons=[2024], stat_type="pbp_rush", model_version="v1.0.0"
)

load_ff_playerids(return_as_pandas=False) -> 'pl.DataFrame'

Load fantasy football player IDs from DynastyProcess.com

Parameters

ParameterTypeDefaultDescription
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing fantasy football player ID mappings across platforms.

col_nametypedescription
mfl_idinteger
sportradar_idcharacter
fantasypros_idcharacter
gsis_idcharacter
pff_idcharacter
sleeper_idinteger
nfl_idcharacter
espn_idinteger
yahoo_idcharacter
fleaflicker_idcharacter
cbs_idinteger
pfr_idcharacter
cfbref_idcharacter
rotowire_idinteger
rotoworld_idcharacter
ktc_idinteger
stats_idinteger
stats_global_idinteger
fantasy_data_idinteger
swish_idcharacter
namecharacterDisplay name.
merge_namecharacter
positioncharacterListed roster position (G, F, C, etc.).
teamcharacterTeam-side label or team identifier.
birthdatecharacter
agedoublePlayer age (in years).
draft_yearintegerDraft year (4-digit).
draft_roundintegerRound of the draft selection.
draft_pickinteger
draft_ovrinteger
twitter_usernamecharacter
heightintegerPlayer height (string e.g. '6-2' or inches).
weightintegerPlayer weight in pounds.
collegecharacterCollege or school attended.
db_seasoninteger

Example

from sportsdataverse.nfl import load_nfl_ff_playerids
ids = load_nfl_ff_playerids()
ids.shape

Filter to active QBs::

import polars as pl
qbs = (
load_nfl_ff_playerids()
.filter((pl.col("position") == "QB") & (pl.col("status") == "ACT"))
)

load_ff_rankings(type: 'str' = 'draft', kind: 'str' = None, return_as_pandas=False) -> 'pl.DataFrame'

Load fantasy football rankings and projections

Parameters

ParameterTypeDefaultDescription
typestr'draft'Type of rankings to load. One of "draft" (current draft rankings), "week" (weekly rankings), or "all" (full historical rankings). Defaults to "draft". Kept for nflreadpy parity since its parameter is also called type; the forward-going preferred name is kind.
kindstrNonePreferred parameter name. Same semantics and allowed values as type. If both are supplied, kind wins. If neither is supplied, defaults to "draft" via type.
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing fantasy football rankings data.

col_nametypedescription
fp_pagecharacter
page_typecharacter
ecr_typecharacter
playercharacterPlayer name.
idintegerId.
poscharacterPlayer position.
teamcharacterTeam-side label or team identifier.
ecrdouble
sddouble
bestinteger
worstinteger
sportsdata_idcharacter
player_filenamecharacter
yahoo_idcharacter
cbs_idcharacter
player_owned_avgdouble
player_owned_espncharacter
player_owned_yahoocharacter
player_image_urlcharacter
player_square_image_urlcharacter
rank_deltainteger
byeinteger
mergenamecharacter
scrape_datecharacter
tmcharacter

Example

from sportsdataverse.nfl import load_nfl_ff_rankings
draft = load_nfl_ff_rankings(kind="draft")

Weekly rankings::

weekly = load_nfl_ff_rankings(kind="week")

Full historical rankings (parquet)::

history = load_nfl_ff_rankings(kind="all")

nflreadpy-parity ``type=`` parameter (still supported)::

draft = load_nfl_ff_rankings(type="draft")

load_ftn_charting(seasons: 'List[int]', return_as_pandas=False) -> 'pl.DataFrame'

Load NFL FTN charting data going back to 2022

Parameters

ParameterTypeDefaultDescription
seasonslistUsed to define different seasons. 2022 is the earliest available season.
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing FTN charting data available for the requested seasons.

col_nametypedescription
ftn_game_idinteger
nflverse_game_idcharacter
seasonintegerSeason year.
weekintegerWeek number.
ftn_play_idinteger
nflverse_play_idinteger
starting_hashcharacter
qb_locationcharacter
n_offense_backfieldinteger
n_defense_boxinteger
is_no_huddlelogical
is_motionlogical
is_play_actionlogical
is_screen_passlogical
is_rpological
is_trick_playlogical
is_qb_out_of_pocketlogical
is_interception_worthylogical
is_throw_awaylogical
read_throwncharacter
is_catchable_balllogical
is_contested_balllogical
is_created_receptionlogical
is_droplogical
is_qb_sneaklogical
n_blitzersinteger
n_pass_rushersinteger
is_qb_fault_sacklogical
date_pulledcharacter

Example

from sportsdataverse.nfl import load_nfl_ftn_charting
charting = load_nfl_ftn_charting(seasons=[2024])

Multi-season range::

charting = load_nfl_ftn_charting(seasons=range(2022, 2025))

Filter to plays with motion::

import polars as pl
motion_plays = (
load_nfl_ftn_charting(seasons=[2024])
.filter(pl.col("is_motion") == 1)
)

load_injuries(seasons: 'List[int]', return_as_pandas=False) -> 'pl.DataFrame'

Load NFL injuries data for selected seasons

Parameters

ParameterTypeDefaultDescription
seasonslistUsed to define different seasons. 2009 is the earliest available season.
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing injuries data available for the requested seasons.

col_nametypedescription
seasonintegerSeason year.
game_typecharacterGame type code (R, P, etc.).
teamcharacterTeam-side label or team identifier.
weekintegerWeek number.
gsis_idcharacter
positioncharacterListed roster position (G, F, C, etc.).
full_namecharacterPlayer's full name.
first_namecharacterPlayer's first name.
last_namecharacterPlayer's last name.
report_primary_injurycharacter
report_secondary_injurycharacter
report_statuscharacter
practice_primary_injurycharacter
practice_secondary_injurycharacter
practice_statuscharacter
date_modifiedcharacter

Example

from sportsdataverse.nfl import load_nfl_injuries
injuries = load_nfl_injuries(seasons=[2024])

Multi-season range with team filter::

import polars as pl
sf_injuries = (
load_nfl_injuries(seasons=range(2020, 2025))
.filter(pl.col("team") == "SF")
)

load_nextgen_stats(seasons: 'List[int]', stat_type: 'str' = 'passing', return_as_pandas: 'bool' = False) -> 'pl.DataFrame'

Load NFL NextGen Stats data going back to 2016.

Unified loader that consolidates the per-stat-type NextGen Stats accessors. Mirrors the API surface of nflreadpy's load_nextgen_stats so downstream code can swap engines without changing call sites.

Parameters

ParameterTypeDefaultDescription
seasonslist[int]Seasons to filter to. The upstream parquet covers a single combined file per stat type — seasons is applied as a post-filter on the season column.
stat_typestr'passing'One of "passing", "rushing", "receiving". Defaults to "passing".
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing NextGen Stats data for the requested stat_type and seasons.

col_nametypedescription
seasonintegerSeason year.
season_typecharacterSeason type (1=pre-season, 2=regular season, 3=postseason, 4=off-season for ESPN; or string label for WNBA Stats).
weekintegerWeek number.
player_display_namecharacter
player_positioncharacter
team_abbrcharacterTeam abbreviation.
avg_time_to_throwdouble
avg_completed_air_yardsdouble
avg_intended_air_yardsdouble
avg_air_yards_differentialdouble
aggressivenessdouble
max_completed_air_distancedouble
avg_air_yards_to_sticksdouble
attemptsintegerTotal field goal attempts included in the PAAR calculation.
pass_yardsinteger
pass_touchdownsinteger
interceptionsintegerPassing interceptions.
passer_ratingdouble
completionsinteger
completion_percentagedouble
expected_completion_percentagedouble
completion_percentage_above_expectationdouble
avg_air_distancedouble
max_air_distancedouble
player_gsis_idcharacter
player_first_namecharacterParticipant first name.
player_last_namecharacterParticipant last name.
player_jersey_numberinteger
player_short_namecharacter

Example

from sportsdataverse.nfl import load_nfl_nextgen_stats
ngs_pass = load_nfl_nextgen_stats(seasons=[2024], stat_type="passing")

Rushing NextGen stats::

ngs_rush = load_nfl_nextgen_stats(seasons=[2024], stat_type="rushing")

Receiving NextGen stats with a follow-up filter::

import polars as pl
ngs_rec = (
load_nfl_nextgen_stats(seasons=[2024], stat_type="receiving")
.filter(pl.col("week") > 0)
)

Pandas round-trip::

ngs_pd = load_nfl_nextgen_stats(
seasons=[2024], stat_type="passing", return_as_pandas=True
)

load_nfl_combine(return_as_pandas=False) -> 'pl.DataFrame'

Load NFL Combine information

Parameters

ParameterTypeDefaultDescription
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing NFL combine data available.

col_nametypedescription
seasonintegerSeason year.
draft_yeardoubleDraft year (4-digit).
draft_teamcharacter
draft_rounddoubleRound of the draft selection.
draft_ovrdouble
pfr_idcharacter
cfb_idcharacter
player_namecharacterPlayer name.
poscharacterPlayer position.
schoolcharacterPlayer's school / college (when distinct from 'college').
htcharacterHt.
wtdoubleWt.
fortydouble
benchdoubleBench.
verticaldouble
broad_jumpdouble
conedouble
shuttledouble

Example

from sportsdataverse.nfl import load_nfl_combine
combine = load_nfl_combine()
combine.shape

Filter by draft year and position::

import polars as pl
qbs_2024 = (
load_nfl_combine()
.filter((pl.col("season") == 2024) & (pl.col("pos") == "QB"))
)

load_nfl_contracts(return_as_pandas=False) -> 'pl.DataFrame'

Load NFL Historical contracts information

Parameters

ParameterTypeDefaultDescription
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing historical contracts available.

col_nametypedescription
playercharacterPlayer name.
positioncharacterListed roster position (G, F, C, etc.).
teamcharacterTeam-side label or team identifier.
is_activelogicalWhether the team was active in this season.
year_signedinteger
yearsintegerYears.
valuedoubleNumeric or string value field.
apydouble
guaranteeddouble
apy_cap_pctdouble
inflated_valuedouble
inflated_apydouble
inflated_guaranteeddouble
player_pagecharacter
otc_idinteger
gsis_idcharacter
date_of_birthcharacterDate of birth (YYYY-MM-DD).
heightcharacterPlayer height (string e.g. '6-2' or inches).
weightcharacterPlayer weight in pounds.
collegecharacterCollege or school attended.
draft_yearintegerDraft year (4-digit).
draft_roundintegerRound of the draft selection.
draft_overallinteger
draft_teamcharacter
colsdouble

Example

from sportsdataverse.nfl import load_nfl_contracts
contracts = load_nfl_contracts()
contracts.shape

Pandas round-trip with sort by APY::

contracts_pd = load_nfl_contracts(return_as_pandas=True)
contracts_pd.sort_values("apy", ascending=False).head()

load_nfl_depth_charts(seasons: 'List[int]', return_as_pandas=False) -> 'pl.DataFrame'

Load NFL Depth Chart data for selected seasons

Parameters

ParameterTypeDefaultDescription
seasonslistUsed to define different seasons. 2001 is the earliest available season.
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing depth chart data available for the requested seasons.

col_nametypedescription
seasonintegerSeason year.
club_codecharacter
weekintegerWeek number.
game_typecharacterGame type code (R, P, etc.).
depth_teamcharacter
last_namecharacterPlayer's last name.
first_namecharacterPlayer's first name.
football_namecharacter
formationcharacter
gsis_idcharacter
jersey_numbercharacterJersey number worn (often blank for non-uniformed roles).
positioncharacterListed roster position (G, F, C, etc.).
elias_idcharacter
depth_positioncharacter
full_namecharacterPlayer's full name.

Example

from sportsdataverse.nfl import load_nfl_depth_charts
depth = load_nfl_depth_charts(seasons=[2024])

Multi-season range::

depth = load_nfl_depth_charts(seasons=range(2020, 2025))

load_nfl_draft_picks(return_as_pandas=False) -> 'pl.DataFrame'

Load NFL Draft picks information

Parameters

ParameterTypeDefaultDescription
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing NFL Draft picks data available.

col_nametypedescription
seasonintegerSeason year.
roundintegerTournament / playoff round.
pickintegerPick number of the NFL draftee within the round they were picked in.
teamcharacterTeam-side label or team identifier.
gsis_idcharacter
pfr_player_idcharacter
cfb_player_idcharacter
pfr_player_namecharacter
hoflogical
positioncharacterListed roster position (G, F, C, etc.).
categorycharacterCategory label.
sidecharacterSide label (e.g. 'home', 'away', or 'overUnder').
collegecharacterCollege or school attended.
ageintegerPlayer age (in years).
tointegerTo.
allprointeger
probowlsinteger
seasons_startedinteger
w_avinteger
car_avlogical
dr_avinteger
gamesintegerNumber of games included in the ATS summary.
pass_completionsinteger
pass_attemptsinteger
pass_yardsinteger
pass_tdsinteger
pass_intsinteger
rush_attsintegerRushing attempts.
rush_yardsinteger
rush_tdsintegerTeam rushing touchdowns.
receptionsinteger
rec_yardsinteger
rec_tdsinteger
def_solo_tacklesinteger
def_intsinteger
def_sacksdouble

Example

from sportsdataverse.nfl import load_nfl_draft_picks
picks = load_nfl_draft_picks()
picks.shape

Filter to a single year and round::

import polars as pl
r1_2024 = (
load_nfl_draft_picks()
.filter((pl.col("season") == 2024) & (pl.col("round") == 1))
)

load_nfl_ff_opportunity(seasons: 'List[int]', stat_type: 'str' = 'weekly', model_version: 'str' = 'latest', return_as_pandas=False) -> 'pl.DataFrame'

Load NFL fantasy football opportunity data from ffverse/ffopportunity

Parameters

ParameterTypeDefaultDescription
seasonslistUsed to define different seasons. 2006 is the earliest available season.
stat_typestr'weekly'One of "weekly", "pbp_pass", "pbp_rush". Defaults to "weekly".
model_versionstr'latest'One of "latest", "v1.0.0". Defaults to "latest".
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing fantasy football opportunity data for the requested seasons.

col_nametypedescription
seasoncharacterSeason year.
posteamcharacter
weekdoubleWeek number.
game_idcharacterUnique game identifier.
player_idcharacterUnique player identifier.
full_namecharacterPlayer's full name.
positioncharacterListed roster position (G, F, C, etc.).
pass_attemptdoubleBinary flag for a pass attempt.
rec_attemptdouble
rush_attemptdouble
pass_air_yardsdouble
rec_air_yardsdouble
pass_completionsdouble
receptionsdouble
pass_completions_expdouble
receptions_expdouble
pass_yards_gaineddouble
rec_yards_gaineddouble
rush_yards_gaineddouble
pass_yards_gained_expdouble
rec_yards_gained_expdouble
rush_yards_gained_expdouble
pass_touchdowndouble
rec_touchdowndouble
rush_touchdowndouble
pass_touchdown_expdouble
rec_touchdown_expdouble
rush_touchdown_expdouble
pass_two_point_convdouble
rec_two_point_convdouble
rush_two_point_convdouble
pass_two_point_conv_expdouble
rec_two_point_conv_expdouble
rush_two_point_conv_expdouble
pass_first_downdouble
rec_first_downdouble
rush_first_downdouble
pass_first_down_expdouble
rec_first_down_expdouble
rush_first_down_expdouble
pass_interceptiondouble
rec_interceptiondouble
pass_interception_expdouble
rec_interception_expdouble
rec_fumble_lostdouble
rush_fumble_lostdouble
pass_fantasy_points_expdouble
rec_fantasy_points_expdouble
rush_fantasy_points_expdouble
pass_fantasy_pointsdouble
rec_fantasy_pointsdouble
rush_fantasy_pointsdouble
total_yards_gaineddouble
total_yards_gained_expdouble
total_touchdowndouble
total_touchdown_expdouble
total_first_downdouble
total_first_down_expdouble
total_fantasy_pointsdouble
total_fantasy_points_expdouble
pass_completions_diffdouble
receptions_diffdouble
pass_yards_gained_diffdouble
rec_yards_gained_diffdouble
rush_yards_gained_diffdouble
pass_touchdown_diffdouble
rec_touchdown_diffdouble
rush_touchdown_diffdouble
pass_two_point_conv_diffdouble
rec_two_point_conv_diffdouble
rush_two_point_conv_diffdouble
pass_first_down_diffdouble
rec_first_down_diffdouble
rush_first_down_diffdouble
pass_interception_diffdouble
rec_interception_diffdouble
pass_fantasy_points_diffdouble
rec_fantasy_points_diffdouble
rush_fantasy_points_diffdouble
total_yards_gained_diffdouble
total_touchdown_diffdouble
total_first_down_diffdouble
total_fantasy_points_diffdouble
pass_attempt_teamdouble
rec_attempt_teamdouble
rush_attempt_teamdouble
pass_air_yards_teamdouble
rec_air_yards_teamdouble
pass_completions_teamdouble
receptions_teamdouble
pass_completions_exp_teamdouble
receptions_exp_teamdouble
pass_yards_gained_teamdouble
rec_yards_gained_teamdouble
rush_yards_gained_teamdouble
pass_yards_gained_exp_teamdouble
rec_yards_gained_exp_teamdouble
rush_yards_gained_exp_teamdouble
pass_touchdown_teamdouble
rec_touchdown_teamdouble
rush_touchdown_teamdouble
pass_touchdown_exp_teamdouble
rec_touchdown_exp_teamdouble
rush_touchdown_exp_teamdouble
pass_two_point_conv_teamdouble
rec_two_point_conv_teamdouble
rush_two_point_conv_teamdouble
pass_two_point_conv_exp_teamdouble
rec_two_point_conv_exp_teamdouble
rush_two_point_conv_exp_teamdouble
pass_first_down_teamdouble
rec_first_down_teamdouble
rush_first_down_teamdouble
pass_first_down_exp_teamdouble
rec_first_down_exp_teamdouble
rush_first_down_exp_teamdouble
pass_interception_teamdouble
rec_interception_teamdouble
pass_interception_exp_teamdouble
rec_interception_exp_teamdouble
rec_fumble_lost_teamdouble
rush_fumble_lost_teamdouble
pass_fantasy_points_exp_teamdouble
rec_fantasy_points_exp_teamdouble
rush_fantasy_points_exp_teamdouble
pass_fantasy_points_teamdouble
rec_fantasy_points_teamdouble
rush_fantasy_points_teamdouble
pass_completions_diff_teamdouble
receptions_diff_teamdouble
pass_yards_gained_diff_teamdouble
rec_yards_gained_diff_teamdouble
rush_yards_gained_diff_teamdouble
pass_touchdown_diff_teamdouble
rec_touchdown_diff_teamdouble
rush_touchdown_diff_teamdouble
pass_two_point_conv_diff_teamdouble
rec_two_point_conv_diff_teamdouble
rush_two_point_conv_diff_teamdouble
pass_first_down_diff_teamdouble
rec_first_down_diff_teamdouble
rush_first_down_diff_teamdouble
pass_interception_diff_teamdouble
rec_interception_diff_teamdouble
pass_fantasy_points_diff_teamdouble
rec_fantasy_points_diff_teamdouble
rush_fantasy_points_diff_teamdouble
total_yards_gained_teamdouble
total_yards_gained_exp_teamdouble
total_yards_gained_diff_teamdouble
total_touchdown_teamdouble
total_touchdown_exp_teamdouble
total_touchdown_diff_teamdouble
total_first_down_teamdouble
total_first_down_exp_teamdouble
total_first_down_diff_teamdouble
total_fantasy_points_teamdouble
total_fantasy_points_exp_teamdouble
total_fantasy_points_diff_teamdouble

Example

from sportsdataverse.nfl import load_nfl_ff_opportunity
weekly = load_nfl_ff_opportunity(seasons=[2024])

Pass play-by-play opportunity stats::

pbp_pass = load_nfl_ff_opportunity(seasons=[2024], stat_type="pbp_pass")

Rush play-by-play opportunity stats with pinned model version::

pbp_rush = load_nfl_ff_opportunity(
seasons=[2024], stat_type="pbp_rush", model_version="v1.0.0"
)

load_nfl_ff_playerids(return_as_pandas=False) -> 'pl.DataFrame'

Load fantasy football player IDs from DynastyProcess.com

Parameters

ParameterTypeDefaultDescription
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing fantasy football player ID mappings across platforms.

col_nametypedescription
mfl_idinteger
sportradar_idcharacter
fantasypros_idcharacter
gsis_idcharacter
pff_idcharacter
sleeper_idinteger
nfl_idcharacter
espn_idinteger
yahoo_idcharacter
fleaflicker_idcharacter
cbs_idinteger
pfr_idcharacter
cfbref_idcharacter
rotowire_idinteger
rotoworld_idcharacter
ktc_idinteger
stats_idinteger
stats_global_idinteger
fantasy_data_idinteger
swish_idcharacter
namecharacterDisplay name.
merge_namecharacter
positioncharacterListed roster position (G, F, C, etc.).
teamcharacterTeam-side label or team identifier.
birthdatecharacter
agedoublePlayer age (in years).
draft_yearintegerDraft year (4-digit).
draft_roundintegerRound of the draft selection.
draft_pickinteger
draft_ovrinteger
twitter_usernamecharacter
heightintegerPlayer height (string e.g. '6-2' or inches).
weightintegerPlayer weight in pounds.
collegecharacterCollege or school attended.
db_seasoninteger

Example

from sportsdataverse.nfl import load_nfl_ff_playerids
ids = load_nfl_ff_playerids()
ids.shape

Filter to active QBs::

import polars as pl
qbs = (
load_nfl_ff_playerids()
.filter((pl.col("position") == "QB") & (pl.col("status") == "ACT"))
)

load_nfl_ff_rankings(type: 'str' = 'draft', kind: 'str' = None, return_as_pandas=False) -> 'pl.DataFrame'

Load fantasy football rankings and projections

Parameters

ParameterTypeDefaultDescription
typestr'draft'Type of rankings to load. One of "draft" (current draft rankings), "week" (weekly rankings), or "all" (full historical rankings). Defaults to "draft". Kept for nflreadpy parity since its parameter is also called type; the forward-going preferred name is kind.
kindstrNonePreferred parameter name. Same semantics and allowed values as type. If both are supplied, kind wins. If neither is supplied, defaults to "draft" via type.
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing fantasy football rankings data.

col_nametypedescription
fp_pagecharacter
page_typecharacter
ecr_typecharacter
playercharacterPlayer name.
idintegerId.
poscharacterPlayer position.
teamcharacterTeam-side label or team identifier.
ecrdouble
sddouble
bestinteger
worstinteger
sportsdata_idcharacter
player_filenamecharacter
yahoo_idcharacter
cbs_idcharacter
player_owned_avgdouble
player_owned_espncharacter
player_owned_yahoocharacter
player_image_urlcharacter
player_square_image_urlcharacter
rank_deltainteger
byeinteger
mergenamecharacter
scrape_datecharacter
tmcharacter

Example

from sportsdataverse.nfl import load_nfl_ff_rankings
draft = load_nfl_ff_rankings(kind="draft")

Weekly rankings::

weekly = load_nfl_ff_rankings(kind="week")

Full historical rankings (parquet)::

history = load_nfl_ff_rankings(kind="all")

nflreadpy-parity ``type=`` parameter (still supported)::

draft = load_nfl_ff_rankings(type="draft")

load_nfl_ftn_charting(seasons: 'List[int]', return_as_pandas=False) -> 'pl.DataFrame'

Load NFL FTN charting data going back to 2022

Parameters

ParameterTypeDefaultDescription
seasonslistUsed to define different seasons. 2022 is the earliest available season.
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing FTN charting data available for the requested seasons.

col_nametypedescription
ftn_game_idinteger
nflverse_game_idcharacter
seasonintegerSeason year.
weekintegerWeek number.
ftn_play_idinteger
nflverse_play_idinteger
starting_hashcharacter
qb_locationcharacter
n_offense_backfieldinteger
n_defense_boxinteger
is_no_huddlelogical
is_motionlogical
is_play_actionlogical
is_screen_passlogical
is_rpological
is_trick_playlogical
is_qb_out_of_pocketlogical
is_interception_worthylogical
is_throw_awaylogical
read_throwncharacter
is_catchable_balllogical
is_contested_balllogical
is_created_receptionlogical
is_droplogical
is_qb_sneaklogical
n_blitzersinteger
n_pass_rushersinteger
is_qb_fault_sacklogical
date_pulledcharacter

Example

from sportsdataverse.nfl import load_nfl_ftn_charting
charting = load_nfl_ftn_charting(seasons=[2024])

Multi-season range::

charting = load_nfl_ftn_charting(seasons=range(2022, 2025))

Filter to plays with motion::

import polars as pl
motion_plays = (
load_nfl_ftn_charting(seasons=[2024])
.filter(pl.col("is_motion") == 1)
)

load_nfl_injuries(seasons: 'List[int]', return_as_pandas=False) -> 'pl.DataFrame'

Load NFL injuries data for selected seasons

Parameters

ParameterTypeDefaultDescription
seasonslistUsed to define different seasons. 2009 is the earliest available season.
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing injuries data available for the requested seasons.

col_nametypedescription
seasonintegerSeason year.
game_typecharacterGame type code (R, P, etc.).
teamcharacterTeam-side label or team identifier.
weekintegerWeek number.
gsis_idcharacter
positioncharacterListed roster position (G, F, C, etc.).
full_namecharacterPlayer's full name.
first_namecharacterPlayer's first name.
last_namecharacterPlayer's last name.
report_primary_injurycharacter
report_secondary_injurycharacter
report_statuscharacter
practice_primary_injurycharacter
practice_secondary_injurycharacter
practice_statuscharacter
date_modifiedcharacter

Example

from sportsdataverse.nfl import load_nfl_injuries
injuries = load_nfl_injuries(seasons=[2024])

Multi-season range with team filter::

import polars as pl
sf_injuries = (
load_nfl_injuries(seasons=range(2020, 2025))
.filter(pl.col("team") == "SF")
)

load_nfl_nextgen_stats(seasons: 'List[int]', stat_type: 'str' = 'passing', return_as_pandas: 'bool' = False) -> 'pl.DataFrame'

Load NFL NextGen Stats data going back to 2016.

Unified loader that consolidates the per-stat-type NextGen Stats accessors. Mirrors the API surface of nflreadpy's load_nextgen_stats so downstream code can swap engines without changing call sites.

Parameters

ParameterTypeDefaultDescription
seasonslist[int]Seasons to filter to. The upstream parquet covers a single combined file per stat type — seasons is applied as a post-filter on the season column.
stat_typestr'passing'One of "passing", "rushing", "receiving". Defaults to "passing".
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing NextGen Stats data for the requested stat_type and seasons.

col_nametypedescription
seasonintegerSeason year.
season_typecharacterSeason type (1=pre-season, 2=regular season, 3=postseason, 4=off-season for ESPN; or string label for WNBA Stats).
weekintegerWeek number.
player_display_namecharacter
player_positioncharacter
team_abbrcharacterTeam abbreviation.
avg_time_to_throwdouble
avg_completed_air_yardsdouble
avg_intended_air_yardsdouble
avg_air_yards_differentialdouble
aggressivenessdouble
max_completed_air_distancedouble
avg_air_yards_to_sticksdouble
attemptsintegerTotal field goal attempts included in the PAAR calculation.
pass_yardsinteger
pass_touchdownsinteger
interceptionsintegerPassing interceptions.
passer_ratingdouble
completionsinteger
completion_percentagedouble
expected_completion_percentagedouble
completion_percentage_above_expectationdouble
avg_air_distancedouble
max_air_distancedouble
player_gsis_idcharacter
player_first_namecharacterParticipant first name.
player_last_namecharacterParticipant last name.
player_jersey_numberinteger
player_short_namecharacter

Example

from sportsdataverse.nfl import load_nfl_nextgen_stats
ngs_pass = load_nfl_nextgen_stats(seasons=[2024], stat_type="passing")

Rushing NextGen stats::

ngs_rush = load_nfl_nextgen_stats(seasons=[2024], stat_type="rushing")

Receiving NextGen stats with a follow-up filter::

import polars as pl
ngs_rec = (
load_nfl_nextgen_stats(seasons=[2024], stat_type="receiving")
.filter(pl.col("week") > 0)
)

Pandas round-trip::

ngs_pd = load_nfl_nextgen_stats(
seasons=[2024], stat_type="passing", return_as_pandas=True
)

load_nfl_ngs_passing(seasons: 'List[int]' = None, return_as_pandas: 'bool' = False) -> 'pl.DataFrame'

Deprecated alias for load_nfl_nextgen_stats(stat_type='passing').

Will be removed in a future release. Migrate callers to the unified load_nfl_nextgen_stats function.

Parameters

ParameterTypeDefaultDescription
seasonsList[int]None
return_as_pandasboolFalse

Returns

col_nametypedescription
seasonintegerSeason year.
season_typecharacterSeason type (1=pre-season, 2=regular season, 3=postseason, 4=off-season for ESPN; or string label for WNBA Stats).
weekintegerWeek number.
player_display_namecharacter
player_positioncharacter
team_abbrcharacterTeam abbreviation.
avg_time_to_throwdouble
avg_completed_air_yardsdouble
avg_intended_air_yardsdouble
avg_air_yards_differentialdouble
aggressivenessdouble
max_completed_air_distancedouble
avg_air_yards_to_sticksdouble
attemptsintegerTotal field goal attempts included in the PAAR calculation.
pass_yardsinteger
pass_touchdownsinteger
interceptionsintegerPassing interceptions.
passer_ratingdouble
completionsinteger
completion_percentagedouble
expected_completion_percentagedouble
completion_percentage_above_expectationdouble
avg_air_distancedouble
max_air_distancedouble
player_gsis_idcharacter
player_first_namecharacterParticipant first name.
player_last_namecharacterParticipant last name.
player_jersey_numberinteger
player_short_namecharacter

Example

from sportsdataverse.nfl import load_nfl_nextgen_stats
ngs = load_nfl_nextgen_stats(seasons=[2024], stat_type="passing")

load_nfl_ngs_receiving(seasons: 'List[int]' = None, return_as_pandas: 'bool' = False) -> 'pl.DataFrame'

Deprecated alias for load_nfl_nextgen_stats(stat_type='receiving').

Will be removed in a future release. Migrate callers to the unified load_nfl_nextgen_stats function.

Parameters

ParameterTypeDefaultDescription
seasonsList[int]None
return_as_pandasboolFalse

Returns

col_nametypedescription
seasonintegerSeason year.
season_typecharacterSeason type (1=pre-season, 2=regular season, 3=postseason, 4=off-season for ESPN; or string label for WNBA Stats).
weekintegerWeek number.
player_display_namecharacter
player_positioncharacter
team_abbrcharacterTeam abbreviation.
avg_cushiondouble
avg_separationdouble
avg_intended_air_yardsdouble
percent_share_of_intended_air_yardsdouble
receptionsinteger
targetsinteger
catch_percentagedouble
yardsintegerTotal yards gained on the drive.
rec_touchdownsinteger
avg_yacdouble
avg_expected_yacdouble
avg_yac_above_expectationdouble
player_gsis_idcharacter
player_first_namecharacterParticipant first name.
player_last_namecharacterParticipant last name.
player_jersey_numberinteger
player_short_namecharacter

Example

from sportsdataverse.nfl import load_nfl_nextgen_stats
ngs = load_nfl_nextgen_stats(seasons=[2024], stat_type="receiving")

load_nfl_ngs_rushing(seasons: 'List[int]' = None, return_as_pandas: 'bool' = False) -> 'pl.DataFrame'

Deprecated alias for load_nfl_nextgen_stats(stat_type='rushing').

Will be removed in a future release. Migrate callers to the unified load_nfl_nextgen_stats function.

Parameters

ParameterTypeDefaultDescription
seasonsList[int]None
return_as_pandasboolFalse

Returns

col_nametypedescription
seasonintegerSeason year.
season_typecharacterSeason type (1=pre-season, 2=regular season, 3=postseason, 4=off-season for ESPN; or string label for WNBA Stats).
weekintegerWeek number.
player_display_namecharacter
player_positioncharacter
team_abbrcharacterTeam abbreviation.
efficiencydoubleEfficiency.
percent_attempts_gte_eight_defendersdouble
avg_time_to_losdouble
rush_attemptsinteger
rush_yardsinteger
avg_rush_yardsdouble
rush_touchdownsinteger
player_gsis_idcharacter
player_first_namecharacterParticipant first name.
player_last_namecharacterParticipant last name.
player_jersey_numberinteger
player_short_namecharacter
expected_rush_yardsdouble
rush_yards_over_expecteddouble
rush_yards_over_expected_per_attdouble
rush_pct_over_expecteddouble

Example

from sportsdataverse.nfl import load_nfl_nextgen_stats
ngs = load_nfl_nextgen_stats(seasons=[2024], stat_type="rushing")

load_nfl_officials(return_as_pandas=False) -> 'pl.DataFrame'

Load NFL Officials information

Parameters

ParameterTypeDefaultDescription
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing officials available.

col_nametypedescription
game_idcharacterUnique game identifier.
game_keycharacter
official_namecharacterOfficial name.
positioncharacterListed roster position (G, F, C, etc.).
jersey_numberintegerJersey number worn (often blank for non-uniformed roles).
official_idcharacterUnique official / referee identifier.
seasonintegerSeason year.
season_typecharacterSeason type (1=pre-season, 2=regular season, 3=postseason, 4=off-season for ESPN; or string label for WNBA Stats).
weekintegerWeek number.

Example

from sportsdataverse.nfl import load_nfl_officials
officials = load_nfl_officials()
officials.shape

Pandas round-trip::

officials_pd = load_nfl_officials(return_as_pandas=True)
officials_pd.head()

load_nfl_pbp(seasons: 'List[int]', return_as_pandas=False) -> 'pl.DataFrame'

Load NFL play by play data going back to 1999

Parameters

ParameterTypeDefaultDescription
seasonslistUsed to define different seasons. 1999 is the earliest available season.
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing the play-by-plays available for the requested seasons.

col_nametypedescription
play_iddoubleUnique play identifier within a game.
game_idcharacterUnique game identifier.
old_game_idcharacter
home_teamcharacterHome team name.
away_teamcharacterAway team name.
season_typecharacterSeason type (1=pre-season, 2=regular season, 3=postseason, 4=off-season for ESPN; or string label for WNBA Stats).
weekintegerWeek number.
posteamcharacter
posteam_typecharacter
defteamcharacter
side_of_fieldcharacter
yardline_100double
game_datecharacterGame date (YYYY-MM-DD).
quarter_seconds_remainingdouble
half_seconds_remainingdouble
game_seconds_remainingdouble
game_halfcharacterHalf of the game (1 or 2).
quarter_enddouble
drivedouble
spdouble
qtrdoubleQuarter (1-4) or OT period (5+).
downdoubleDown of the play (1-4).
goal_to_gointeger
timecharacterTime left within the period
yrdlncharacter
ydstogodouble
ydsnetdouble
desccharacter
play_typecharacterCFBD play type label (e.g. "Rush", "Pass Reception", "Field Goal Good").
yards_gaineddoubleNet yards gained by the offense on the play.
shotgundouble
no_huddledouble
qb_dropbackdouble
qb_kneeldouble
qb_spikedouble
qb_scrambledouble
pass_lengthcharacterPass length.
pass_locationcharacter
air_yardsdouble
yards_after_catchdouble
run_locationcharacter
run_gapcharacter
field_goal_resultcharacter
kick_distancedouble
extra_point_resultcharacter
two_point_conv_resultcharacter
home_timeouts_remainingdoubleHome team's timeouts remaining.
away_timeouts_remainingdoubleAway team's timeouts remaining.
timeoutdouble
timeout_teamcharacter
td_teamcharacter
td_player_namecharacter
td_player_idcharacter
posteam_timeouts_remainingdouble
defteam_timeouts_remainingdouble
total_home_scoredouble
total_away_scoredouble
posteam_scoredouble
defteam_scoredouble
score_differentialdouble
posteam_score_postdouble
defteam_score_postdouble
score_differential_postdouble
no_score_probdouble
opp_fg_probdouble
opp_safety_probdouble
opp_td_probdouble
fg_probdouble
safety_probdouble
td_probdouble
extra_point_probdouble
two_point_conversion_probdouble
epdouble
epadouble
total_home_epadouble
total_away_epadouble
total_home_rush_epadouble
total_away_rush_epadouble
total_home_pass_epadouble
total_away_pass_epadouble
air_epadouble
yac_epadouble
comp_air_epadouble
comp_yac_epadouble
total_home_comp_air_epadouble
total_away_comp_air_epadouble
total_home_comp_yac_epadouble
total_away_comp_yac_epadouble
total_home_raw_air_epadouble
total_away_raw_air_epadouble
total_home_raw_yac_epadouble
total_away_raw_yac_epadouble
wpdoubleWp.
def_wpdouble
home_wpdouble
away_wpdouble
wpadoubleWin Probability Added on the play (cfbfastR WP model output).
vegas_wpadouble
vegas_home_wpadouble
home_wp_postdouble
away_wp_postdouble
vegas_wpdouble
vegas_home_wpdouble
total_home_rush_wpadouble
total_away_rush_wpadouble
total_home_pass_wpadouble
total_away_pass_wpadouble
air_wpadouble
yac_wpadouble
comp_air_wpadouble
comp_yac_wpadouble
total_home_comp_air_wpadouble
total_away_comp_air_wpadouble
total_home_comp_yac_wpadouble
total_away_comp_yac_wpadouble
total_home_raw_air_wpadouble
total_away_raw_air_wpadouble
total_home_raw_yac_wpadouble
total_away_raw_yac_wpadouble
punt_blockeddoubleBinary flag for a blocked punt.
first_down_rushdouble
first_down_passdouble
first_down_penaltydouble
third_down_converteddouble
third_down_faileddouble
fourth_down_converteddouble
fourth_down_faileddouble
incomplete_passdouble
touchbackdouble
interceptiondouble
punt_inside_twentydouble
punt_in_endzonedouble
punt_out_of_boundsdouble
punt_downeddoubleBinary flag for a punt downed in the field of play.
punt_fair_catchdoubleBinary flag for a punt fair catch.
kickoff_inside_twentydouble
kickoff_in_endzonedouble
kickoff_out_of_boundsdouble
kickoff_downeddoubleBinary flag for a kickoff downed in the field of play.
kickoff_fair_catchdoubleBinary flag for a kickoff fair catch.
fumble_forceddouble
fumble_not_forceddouble
fumble_out_of_boundsdouble
solo_tackledouble
safetydoubleBinary flag for a safety.
penaltydouble
tackled_for_lossdouble
fumble_lostdouble
own_kickoff_recoverydouble
own_kickoff_recovery_tddouble
qb_hitdouble
rush_attemptdouble
pass_attemptdoubleBinary flag for a pass attempt.
sackdoubleBinary flag for a sack (duplicate of sack_vec for downstream use).
touchdowndoubleBinary flag for a touchdown (duplicate of td_play for downstream use).
pass_touchdowndouble
rush_touchdowndouble
return_touchdowndouble
extra_point_attemptdouble
two_point_attemptdouble
field_goal_attemptdouble
kickoff_attemptdouble
punt_attemptdouble
fumbledouble
complete_passdouble
assist_tackledouble
lateral_receptiondouble
lateral_rushdouble
lateral_returndouble
lateral_recoverydouble
passer_player_idcharacter
passer_player_namecharacterName of the passer on a passing play.
passing_yardsdouble
receiver_player_idcharacter
receiver_player_namecharacterName of the receiver on a passing play.
receiving_yardsdouble
rusher_player_idcharacter
rusher_player_namecharacterName of the rusher on a rushing play.
rushing_yardsdoubleTeam rushing yards.
lateral_receiver_player_idcharacter
lateral_receiver_player_namecharacter
lateral_receiving_yardsdouble
lateral_rusher_player_idcharacter
lateral_rusher_player_namecharacter
lateral_rushing_yardsdouble
lateral_sack_player_idcharacter
lateral_sack_player_namecharacter
interception_player_idcharacterCFBD athlete_id of the defender credited with an interception.
interception_player_namecharacterName of the defender credited with the interception.
lateral_interception_player_idcharacter
lateral_interception_player_namecharacter
punt_returner_player_idcharacter
punt_returner_player_namecharacterName of the punt returner.
lateral_punt_returner_player_idcharacter
lateral_punt_returner_player_namecharacter
kickoff_returner_player_namecharacterName of the kickoff returner.
kickoff_returner_player_idcharacter
lateral_kickoff_returner_player_idcharacter
lateral_kickoff_returner_player_namecharacter
punter_player_idcharacter
punter_player_namecharacterName of the punter.
kicker_player_namecharacter
kicker_player_idcharacter
own_kickoff_recovery_player_idcharacter
own_kickoff_recovery_player_namecharacter
blocked_player_idcharacter
blocked_player_namecharacter
tackle_for_loss_1_player_idcharacter
tackle_for_loss_1_player_namecharacter
tackle_for_loss_2_player_idcharacter
tackle_for_loss_2_player_namecharacter
qb_hit_1_player_idcharacter
qb_hit_1_player_namecharacter
qb_hit_2_player_idcharacter
qb_hit_2_player_namecharacter
forced_fumble_player_1_teamcharacter
forced_fumble_player_1_player_idcharacter
forced_fumble_player_1_player_namecharacter
forced_fumble_player_2_teamcharacter
forced_fumble_player_2_player_idcharacter
forced_fumble_player_2_player_namecharacter
solo_tackle_1_teamcharacter
solo_tackle_2_teamcharacter
solo_tackle_1_player_idcharacter
solo_tackle_2_player_idcharacter
solo_tackle_1_player_namecharacter
solo_tackle_2_player_namecharacter
assist_tackle_1_player_idcharacter
assist_tackle_1_player_namecharacter
assist_tackle_1_teamcharacter
assist_tackle_2_player_idcharacter
assist_tackle_2_player_namecharacter
assist_tackle_2_teamcharacter
assist_tackle_3_player_idcharacter
assist_tackle_3_player_namecharacter
assist_tackle_3_teamcharacter
assist_tackle_4_player_idcharacter
assist_tackle_4_player_namecharacter
assist_tackle_4_teamcharacter
tackle_with_assistdouble
tackle_with_assist_1_player_idcharacter
tackle_with_assist_1_player_namecharacter
tackle_with_assist_1_teamcharacter
tackle_with_assist_2_player_idcharacter
tackle_with_assist_2_player_namecharacter
tackle_with_assist_2_teamcharacter
pass_defense_1_player_idcharacter
pass_defense_1_player_namecharacter
pass_defense_2_player_idcharacter
pass_defense_2_player_namecharacter
fumbled_1_teamcharacter
fumbled_1_player_idcharacter
fumbled_1_player_namecharacter
fumbled_2_player_idcharacter
fumbled_2_player_namecharacter
fumbled_2_teamcharacter
fumble_recovery_1_teamcharacter
fumble_recovery_1_yardsdouble
fumble_recovery_1_player_idcharacter
fumble_recovery_1_player_namecharacter
fumble_recovery_2_teamcharacter
fumble_recovery_2_yardsdouble
fumble_recovery_2_player_idcharacter
fumble_recovery_2_player_namecharacter
sack_player_idcharacterComma-separated CFBD athlete_id(s) of the sacking defender(s).
sack_player_namecharacterPrimary sack player name.
half_sack_1_player_idcharacter
half_sack_1_player_namecharacter
half_sack_2_player_idcharacter
half_sack_2_player_namecharacter
return_teamcharacter
return_yardsdouble
penalty_teamcharacter
penalty_player_idcharacter
penalty_player_namecharacter
penalty_yardsdouble
replay_or_challengedouble
replay_or_challenge_resultcharacter
penalty_typecharacter
defensive_two_point_attemptdouble
defensive_two_point_convdouble
defensive_extra_point_attemptdouble
defensive_extra_point_convdouble
safety_player_namecharacter
safety_player_idcharacter
seasonintegerSeason year.
cpdouble
cpoedouble
seriesdouble
series_successdouble
series_resultcharacter
order_sequencedouble
start_timecharacterFirst-pitch local start time.
time_of_daycharacter
stadiumcharacter
weathercharacter
nfl_api_idcharacter
play_clockcharacter
play_deleteddouble
play_type_nflcharacter
special_teams_playdouble
st_play_typecharacter
end_clock_timecharacter
end_yard_linecharacterYard line at the end of the play.
fixed_drivedouble
fixed_drive_resultcharacter
drive_real_start_timecharacter
drive_play_countdoubleNumber of plays in the drive.
drive_time_of_possessioncharacter
drive_first_downsdouble
drive_inside20double
drive_ended_with_scoredouble
drive_quarter_startdouble
drive_quarter_enddouble
drive_yards_penalizeddouble
drive_start_transitioncharacter
drive_end_transitioncharacter
drive_game_clock_startcharacter
drive_game_clock_endcharacter
drive_start_yard_linecharacter
drive_end_yard_linecharacter
drive_play_id_starteddouble
drive_play_id_endeddouble
away_scoreintegerAway team score at the time of the play.
home_scoreintegerHome team score at the time of the play.
locationcharacterTeam city/region (e.g. "Los Angeles").
resultintegerResult.
totalintegerTotal.
spread_linedouble
total_linedouble
div_gameinteger
roofcharacter
surfacecharacter
tempinteger
windintegerWind speed and direction.
home_coachcharacter
away_coachcharacter
stadium_idcharacter
game_stadiumcharacter
aborted_playdouble
successdoubleBinary success-rate flag using the 50/70/100 percent down-state thresholds.
passercharacter
passer_jersey_numberinteger
rushercharacter
rusher_jersey_numberinteger
receivercharacter
receiver_jersey_numberinteger
passdoubleBinary flag for a passing play (includes sacks).
rushdoubleBinary flag for a rushing play.
first_downdouble
specialdouble
playdoubleBinary flag indicating the row is a counted play (excludes end markers/timeouts/penalties).
passer_idcharacterUnique identifier for passer.
rusher_idcharacter
receiver_idcharacter
namecharacterDisplay name.
jersey_numberintegerJersey number worn (often blank for non-uniformed roles).
idcharacterId.
fantasy_player_namecharacter
fantasy_player_idcharacter
fantasycharacter
fantasy_idcharacter
out_of_boundsdouble
home_opening_kickoffdouble
qb_epadouble
xyac_epadouble
xyac_mean_yardagedouble
xyac_median_yardageinteger
xyac_successdouble
xyac_fddouble
xpassdouble
pass_oedouble

Example

from sportsdataverse.nfl import load_nfl_pbp
pbp = load_nfl_pbp(seasons=[2024])
print(pbp.shape)

Multi-season range::

pbp = load_nfl_pbp(seasons=range(2020, 2025))

With cache off (development workflow)::

from sportsdataverse.nfl import load_nfl_pbp, update_config
update_config(cache_mode="off")
pbp = load_nfl_pbp(seasons=[2024])

Pandas round-trip::

pbp_pd = load_nfl_pbp(seasons=[2024], return_as_pandas=True)
pbp_pd.head()

load_nfl_pbp_participation(seasons: 'List[int]', return_as_pandas=False) -> 'pl.DataFrame'

Load NFL play-by-play participation data for selected seasons

Parameters

ParameterTypeDefaultDescription
seasonslistUsed to define different seasons. 2016 is the earliest available season.
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing play-by-play participation data available for the requested seasons.

col_nametypedescription
nflverse_game_idcharacter
old_game_idcharacter
play_iddoubleUnique play identifier within a game.
possession_teamcharacterPossession team.
offense_formationcharacter
offense_personnelcharacter
defenders_in_boxinteger
defense_personnelcharacter
number_of_pass_rushersinteger
players_on_playcharacter
offense_playerscharacter
defense_playerscharacter
n_offenseinteger
n_defenseinteger
ngs_air_yardsdouble
time_to_throwdouble
was_pressurelogical
routecharacter
defense_man_zone_typecharacter
defense_coverage_typecharacter
offense_namescharacter
defense_namescharacter
offense_positionscharacter
defense_positionscharacter
offense_numberscharacter
defense_numberscharacter

Example

from sportsdataverse.nfl import load_nfl_pbp_participation
participation = load_nfl_pbp_participation(seasons=[2022])

Multi-season range::

participation = load_nfl_pbp_participation(seasons=range(2018, 2023))

load_nfl_pfr_advstats(seasons: 'List[int]', stat_type: 'str' = 'pass', summary_level: 'str' = 'week', return_as_pandas: 'bool' = False) -> 'pl.DataFrame'

Load Pro-Football Reference advanced statistics going back to 2018.

Unified loader that consolidates the per-stat-type / per-summary-level PFR advstats accessors. Mirrors the API surface of nflreadpy's load_pfr_advstats so downstream code can swap engines without changing call sites.

Parameters

ParameterTypeDefaultDescription
seasonslist[int]Seasons to load. For summary_level='week' this drives the per-season parquet fan-out; for summary_level='season' it post-filters the combined parquet by the season column.
stat_typestr'pass'One of "pass", "rush", "rec", "def". Defaults to "pass".
summary_levelstr'week'One of "week" or "season". Defaults to "week".
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing PFR advanced stats data for the requested stat_type, summary_level, and seasons.

col_nametypedescription
game_idcharacterUnique game identifier.
pfr_game_idcharacter
seasonintegerSeason year.
weekintegerWeek number.
game_typecharacterGame type code (R, P, etc.).
teamcharacterTeam-side label or team identifier.
opponentcharacterOpponent team name.
pfr_player_namecharacter
pfr_player_idcharacter
passing_dropsdouble
passing_drop_pctdouble
receiving_dropdouble
receiving_drop_pctdouble
passing_bad_throwsdouble
passing_bad_throw_pctdouble
times_sackeddouble
times_blitzeddouble
times_hurrieddouble
times_hitdouble
times_pressureddouble
times_pressured_pctdouble
def_times_blitzeddouble
def_times_hurrieddouble
def_times_hitqbdouble

Example

from sportsdataverse.nfl import load_nfl_pfr_advstats
pass_week = load_nfl_pfr_advstats(
seasons=[2024], stat_type="pass", summary_level="week"
)

Season-level rushing summaries (one row per player per season)::

rush_season = load_nfl_pfr_advstats(
seasons=[2024], stat_type="rush", summary_level="season"
)

Defensive stats with a follow-up filter::

import polars as pl
def_week = (
load_nfl_pfr_advstats(seasons=[2024], stat_type="def", summary_level="week")
.filter(pl.col("week") <= 8)
)

Pandas round-trip::

rec_pd = load_nfl_pfr_advstats(
seasons=[2024],
stat_type="rec",
summary_level="season",
return_as_pandas=True,
)

load_nfl_pfr_def(return_as_pandas: 'bool' = False) -> 'pl.DataFrame'

Deprecated alias for load_nfl_pfr_advstats(stat_type='def', summary_level='season').

Will be removed in a future release. Migrate callers to the unified load_nfl_pfr_advstats function.

Parameters

ParameterTypeDefaultDescription
return_as_pandasboolFalse

Returns

col_nametypedescription
seasonintegerSeason year.
playercharacterPlayer name.
pfr_idcharacter
tmcharacter
agedoublePlayer age (in years).
poscharacterPlayer position.
gdoubleGames played.
gsdouble
intdoubleBinary flag for an interception.
tgtdouble
cmpdouble
cmp_percentdouble
ydsdouble
yds_cmpdouble
yds_tgtdouble
tddouble
ratdouble
dadotdouble
airdouble
yacdouble
bltzdouble
hrrydouble
qbkddouble
skdouble
prssdouble
combdouble
m_tkldouble
m_tkl_percentdouble
loadedcharacter
batsdouble

Example

from sportsdataverse.nfl import load_nfl_pfr_advstats
df = load_nfl_pfr_advstats(
seasons=[2024], stat_type="def", summary_level="season"
)

load_nfl_pfr_pass(return_as_pandas: 'bool' = False) -> 'pl.DataFrame'

Deprecated alias for load_nfl_pfr_advstats(stat_type='pass', summary_level='season').

Will be removed in a future release. Migrate callers to the unified load_nfl_pfr_advstats function.

Parameters

ParameterTypeDefaultDescription
return_as_pandasboolFalse

Returns

col_nametypedescription
playercharacterPlayer name.
teamcharacterTeam-side label or team identifier.
pass_attemptsdouble
throwawaysdouble
spikesdouble
dropsdouble
drop_pctdouble
bad_throwsdouble
bad_throw_pctdouble
seasonintegerSeason year.
pfr_idcharacter
pocket_timedouble
times_blitzeddouble
times_hurrieddouble
times_hitdouble
times_pressureddouble
pressure_pctdouble
batted_ballsdouble
on_tgt_throwsdouble
on_tgt_pctdouble
rpo_playsdouble
rpo_yardsdouble
rpo_pass_attdouble
rpo_pass_yardsdouble
rpo_rush_attdouble
rpo_rush_yardsdouble
pa_pass_attdouble
pa_pass_yardsdouble
intended_air_yardsdouble
intended_air_yards_per_pass_attemptdouble
completed_air_yardsdouble
completed_air_yards_per_completiondouble
completed_air_yards_per_pass_attemptdouble
pass_yards_after_catchdouble
pass_yards_after_catch_per_completiondouble
scramblesdouble
scramble_yards_per_attemptdouble

Example

from sportsdataverse.nfl import load_nfl_pfr_advstats
df = load_nfl_pfr_advstats(
seasons=[2024], stat_type="pass", summary_level="season"
)

load_nfl_pfr_rec(return_as_pandas: 'bool' = False) -> 'pl.DataFrame'

Deprecated alias for load_nfl_pfr_advstats(stat_type='rec', summary_level='season').

Will be removed in a future release. Migrate callers to the unified load_nfl_pfr_advstats function.

Parameters

ParameterTypeDefaultDescription
return_as_pandasboolFalse

Returns

col_nametypedescription
seasonintegerSeason year.
playercharacterPlayer name.
pfr_idcharacter
tmcharacter
agedoublePlayer age (in years).
poscharacterPlayer position.
gdoubleGames played.
gsdouble
tgtdouble
recdouble
ydsdouble
tddouble
x1ddouble
ybcdouble
ybc_rdouble
yacdouble
yac_rdouble
adotdouble
brk_tkldouble
rec_brdouble
dropdouble
drop_percentdouble
intdoubleBinary flag for an interception.
ratdouble
loadedcharacter

Example

from sportsdataverse.nfl import load_nfl_pfr_advstats
df = load_nfl_pfr_advstats(
seasons=[2024], stat_type="rec", summary_level="season"
)

load_nfl_pfr_rush(return_as_pandas: 'bool' = False) -> 'pl.DataFrame'

Deprecated alias for load_nfl_pfr_advstats(stat_type='rush', summary_level='season').

Will be removed in a future release. Migrate callers to the unified load_nfl_pfr_advstats function.

Parameters

ParameterTypeDefaultDescription
return_as_pandasboolFalse

Returns

col_nametypedescription
seasonintegerSeason year.
playercharacterPlayer name.
pfr_idcharacter
tmcharacter
agedoublePlayer age (in years).
poscharacterPlayer position.
gdoubleGames played.
gsdouble
attdouble
ydsdouble
tddouble
x1ddouble
ybcdouble
ybc_attdouble
yacdouble
yac_attdouble
brk_tkldouble
att_brdouble
loadedcharacter

Example

from sportsdataverse.nfl import load_nfl_pfr_advstats
df = load_nfl_pfr_advstats(
seasons=[2024], stat_type="rush", summary_level="season"
)

load_nfl_pfr_weekly_def(seasons: 'List[int]', return_as_pandas: 'bool' = False) -> 'pl.DataFrame'

Deprecated alias for load_nfl_pfr_advstats(stat_type='def', summary_level='week').

Will be removed in a future release. Migrate callers to the unified load_nfl_pfr_advstats function.

Parameters

ParameterTypeDefaultDescription
seasonsList[int]
return_as_pandasboolFalse

Returns

col_nametypedescription
game_idcharacterUnique game identifier.
pfr_game_idcharacter
seasonintegerSeason year.
weekintegerWeek number.
game_typecharacterGame type code (R, P, etc.).
teamcharacterTeam-side label or team identifier.
opponentcharacterOpponent team name.
pfr_player_namecharacter
pfr_player_idcharacter
def_intsdouble
def_targetsdouble
def_completions_alloweddouble
def_completion_pctdouble
def_yards_alloweddouble
def_yards_allowed_per_cmpdouble
def_yards_allowed_per_tgtdouble
def_receiving_td_alloweddouble
def_passer_rating_alloweddouble
def_adotdouble
def_air_yards_completeddouble
def_yards_after_catchdouble
def_times_blitzeddouble
def_times_hurrieddouble
def_times_hitqbdouble
def_sacksdouble
def_pressuresdouble
def_tackles_combineddouble
def_missed_tacklesdouble
def_missed_tackle_pctdouble

Example

from sportsdataverse.nfl import load_nfl_pfr_advstats
df = load_nfl_pfr_advstats(
seasons=[2024], stat_type="def", summary_level="week"
)

load_nfl_pfr_weekly_pass(seasons: 'List[int]', return_as_pandas: 'bool' = False) -> 'pl.DataFrame'

Deprecated alias for load_nfl_pfr_advstats(stat_type='pass', summary_level='week').

Will be removed in a future release. Migrate callers to the unified load_nfl_pfr_advstats function.

Parameters

ParameterTypeDefaultDescription
seasonsList[int]
return_as_pandasboolFalse

Returns

col_nametypedescription
game_idcharacterUnique game identifier.
pfr_game_idcharacter
seasonintegerSeason year.
weekintegerWeek number.
game_typecharacterGame type code (R, P, etc.).
teamcharacterTeam-side label or team identifier.
opponentcharacterOpponent team name.
pfr_player_namecharacter
pfr_player_idcharacter
passing_dropsdouble
passing_drop_pctdouble
receiving_dropdouble
receiving_drop_pctdouble
passing_bad_throwsdouble
passing_bad_throw_pctdouble
times_sackeddouble
times_blitzeddouble
times_hurrieddouble
times_hitdouble
times_pressureddouble
times_pressured_pctdouble
def_times_blitzeddouble
def_times_hurrieddouble
def_times_hitqbdouble

Example

from sportsdataverse.nfl import load_nfl_pfr_advstats
df = load_nfl_pfr_advstats(
seasons=[2024], stat_type="pass", summary_level="week"
)

load_nfl_pfr_weekly_rec(seasons: 'List[int]', return_as_pandas: 'bool' = False) -> 'pl.DataFrame'

Deprecated alias for load_nfl_pfr_advstats(stat_type='rec', summary_level='week').

Will be removed in a future release. Migrate callers to the unified load_nfl_pfr_advstats function.

Parameters

ParameterTypeDefaultDescription
seasonsList[int]
return_as_pandasboolFalse

Returns

col_nametypedescription
game_idcharacterUnique game identifier.
pfr_game_idcharacter
seasonintegerSeason year.
weekintegerWeek number.
game_typecharacterGame type code (R, P, etc.).
teamcharacterTeam-side label or team identifier.
opponentcharacterOpponent team name.
pfr_player_namecharacter
pfr_player_idcharacter
rushing_broken_tacklesdouble
receiving_broken_tacklesdouble
passing_dropsdouble
passing_drop_pctdouble
receiving_dropdouble
receiving_drop_pctdouble
receiving_intdouble
receiving_ratdouble

Example

from sportsdataverse.nfl import load_nfl_pfr_advstats
df = load_nfl_pfr_advstats(
seasons=[2024], stat_type="rec", summary_level="week"
)

load_nfl_pfr_weekly_rush(seasons: 'List[int]', return_as_pandas: 'bool' = False) -> 'pl.DataFrame'

Deprecated alias for load_nfl_pfr_advstats(stat_type='rush', summary_level='week').

Will be removed in a future release. Migrate callers to the unified load_nfl_pfr_advstats function.

Parameters

ParameterTypeDefaultDescription
seasonsList[int]
return_as_pandasboolFalse

Returns

col_nametypedescription
game_idcharacterUnique game identifier.
pfr_game_idcharacter
seasonintegerSeason year.
weekintegerWeek number.
game_typecharacterGame type code (R, P, etc.).
teamcharacterTeam-side label or team identifier.
opponentcharacterOpponent team name.
pfr_player_namecharacter
pfr_player_idcharacter
carriesdouble
rushing_yards_before_contactdouble
rushing_yards_before_contact_avgdouble
rushing_yards_after_contactdouble
rushing_yards_after_contact_avgdouble
rushing_broken_tacklesdouble
receiving_broken_tacklesdouble

Example

from sportsdataverse.nfl import load_nfl_pfr_advstats
df = load_nfl_pfr_advstats(
seasons=[2024], stat_type="rush", summary_level="week"
)

load_nfl_player_stats(kicking=False, return_as_pandas=False) -> 'pl.DataFrame'

Load NFL player stats data

Parameters

ParameterTypeDefaultDescription
kickingboolFalseIf True, load kicking stats. If False, load all other stats.
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing player stats.

col_nametypedescription
player_idcharacterUnique player identifier.
player_namecharacterPlayer name.
player_display_namecharacter
positioncharacterListed roster position (G, F, C, etc.).
position_groupcharacterPosition group of the recruits (e.g. Offensive Line, Defensive Back).
headshot_urlcharacterPlayer ESPN headshot url.
recent_teamcharacter
seasonintegerSeason year.
weekintegerWeek number.
season_typecharacterSeason type (1=pre-season, 2=regular season, 3=postseason, 4=off-season for ESPN; or string label for WNBA Stats).
opponent_teamcharacter
completionsinteger
attemptsintegerTotal field goal attempts included in the PAAR calculation.
passing_yardsdouble
passing_tdsintegerTeam passing touchdowns.
interceptionsdoublePassing interceptions.
sacksdoubleTeam sacks.
sack_yardsdouble
sack_fumblesinteger
sack_fumbles_lostinteger
passing_air_yardsdouble
passing_yards_after_catchdouble
passing_first_downsdouble
passing_epadouble
passing_2pt_conversionsinteger
pacrdouble
dakotadouble
carriesinteger
rushing_yardsdoubleTeam rushing yards.
rushing_tdsinteger
rushing_fumblesdouble
rushing_fumbles_lostdouble
rushing_first_downsdouble
rushing_epadouble
rushing_2pt_conversionsinteger
receptionsinteger
targetsinteger
receiving_yardsdouble
receiving_tdsinteger
receiving_fumblesdouble
receiving_fumbles_lostdouble
receiving_air_yardsdouble
receiving_yards_after_catchdouble
receiving_first_downsdouble
receiving_epadouble
receiving_2pt_conversionsinteger
racrdouble
target_sharedouble
air_yards_sharedouble
woprdouble
special_teams_tdsdouble
fantasy_pointsdouble
fantasy_points_pprdouble

Example

from sportsdataverse.nfl import load_nfl_player_stats
stats = load_nfl_player_stats()
stats.shape

Kicking-only stats::

kicking = load_nfl_player_stats(kicking=True)

Filter to a single season after load::

import polars as pl
stats_2024 = load_nfl_player_stats().filter(pl.col("season") == 2024)

load_nfl_players(return_as_pandas=False) -> 'pl.DataFrame'

Load NFL Player ID information

Parameters

ParameterTypeDefaultDescription
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing players available.

col_nametypedescription
game_idcharacterUnique game identifier.
game_keycharacter
official_namecharacterOfficial name.
positioncharacterListed roster position (G, F, C, etc.).
jersey_numberintegerJersey number worn (often blank for non-uniformed roles).
official_idcharacterUnique official / referee identifier.
seasonintegerSeason year.
season_typecharacterSeason type (1=pre-season, 2=regular season, 3=postseason, 4=off-season for ESPN; or string label for WNBA Stats).
weekintegerWeek number.

Example

from sportsdataverse.nfl import load_nfl_players
players = load_nfl_players()
players.shape

Pandas round-trip::

players_pd = load_nfl_players(return_as_pandas=True)
players_pd.head()

load_nfl_rosters(seasons: 'List[int]', return_as_pandas=False) -> 'pl.DataFrame'

Load NFL roster data for all seasons

Parameters

ParameterTypeDefaultDescription
seasonslistUsed to define different seasons. 1920 is the earliest available season.
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing rosters available for the requested seasons.

col_nametypedescription
seasonintegerSeason year.
teamcharacterTeam-side label or team identifier.
positioncharacterListed roster position (G, F, C, etc.).
depth_chart_positioncharacter
jersey_numberintegerJersey number worn (often blank for non-uniformed roles).
statuscharacterStatus label.
full_namecharacterPlayer's full name.
first_namecharacterPlayer's first name.
last_namecharacterPlayer's last name.
birth_datecharacterDate of birth (YYYY-MM-DD).
heightdoublePlayer height (string e.g. '6-2' or inches).
weightintegerPlayer weight in pounds.
collegecharacterCollege or school attended.
gsis_idcharacter
espn_idcharacter
sportradar_idcharacter
yahoo_idcharacter
rotowire_idcharacter
pff_idcharacter
pfr_idcharacter
fantasy_data_idcharacter
sleeper_idcharacter
years_expinteger
headshot_urlcharacterPlayer ESPN headshot url.
ngs_positioncharacter
weekintegerWeek number.
game_typecharacterGame type code (R, P, etc.).
status_description_abbrcharacter
football_namecharacter
esb_idcharacter
gsis_it_idcharacter
smart_idcharacter
entry_yearinteger
rookie_yearinteger
draft_clubcharacter
draft_numberinteger

Example

from sportsdataverse.nfl import load_nfl_rosters
rosters = load_nfl_rosters(seasons=[2024])

Multi-season range::

rosters = load_nfl_rosters(seasons=range(2020, 2025))

Filter to a single team::

import polars as pl
kc = load_nfl_rosters(seasons=[2024]).filter(pl.col("team") == "KC")

load_nfl_schedule(seasons: 'List[int]', return_as_pandas=False) -> 'pl.DataFrame'

Load NFL schedule data

Parameters

ParameterTypeDefaultDescription
seasonslistUsed to define different seasons. 1999 is the earliest available season.
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing the schedule for the requested seasons.

col_nametypedescription
game_idcharacterUnique game identifier.
seasonintegerSeason year.
game_typecharacterGame type code (R, P, etc.).
weekintegerWeek number.
gamedaycharacter
weekdaycharacter
gametimecharacter
away_teamcharacterAway team name.
away_scoreintegerAway team score at the time of the play.
home_teamcharacterHome team name.
home_scoreintegerHome team score at the time of the play.
locationcharacterTeam city/region (e.g. "Los Angeles").
resultintegerResult.
totalintegerTotal.
overtimeinteger
old_game_idcharacter
gsisinteger
nfl_detail_idcharacter
pfrcharacter
pffinteger
espncharacter
ftninteger
away_restinteger
home_restinteger
away_moneylineintegerAway team moneyline odds.
home_moneylineintegerHome team moneyline odds.
spread_linedouble
away_spread_oddsintegerAmerican odds price on the away-team spread.
home_spread_oddsintegerAmerican odds price on the home-team spread.
total_linedouble
under_oddsintegerAmerican odds price on the under.
over_oddsintegerAmerican odds price on the over.
div_gameinteger
roofcharacter
surfacecharacter
tempinteger
windintegerWind speed and direction.
away_qb_idcharacter
home_qb_idcharacter
away_qb_namecharacter
home_qb_namecharacter
away_coachcharacter
home_coachcharacter
refereecharacter
stadium_idcharacter
stadiumcharacter

Example

from sportsdataverse.nfl import load_nfl_schedule
schedule = load_nfl_schedule(seasons=[2024])
schedule.shape

Multi-season range::

schedule = load_nfl_schedule(seasons=range(2020, 2025))

Filter to a single week::

import polars as pl
week_one = load_nfl_schedule(seasons=[2024]).filter(pl.col("week") == 1)

Pandas round-trip::

schedule_pd = load_nfl_schedule(seasons=[2024], return_as_pandas=True)
schedule_pd[["game_id", "home_team", "away_team", "week"]].head()

load_nfl_snap_counts(seasons: 'List[int]', return_as_pandas=False) -> 'pl.DataFrame'

Load NFL snap counts data for selected seasons

Parameters

ParameterTypeDefaultDescription
seasonslistUsed to define different seasons. 2012 is the earliest available season.
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing snap counts available for the requested seasons.

col_nametypedescription
game_idcharacterUnique game identifier.
pfr_game_idcharacter
seasonintegerSeason year.
game_typecharacterGame type code (R, P, etc.).
weekintegerWeek number.
playercharacterPlayer name.
pfr_player_idcharacter
positioncharacterListed roster position (G, F, C, etc.).
teamcharacterTeam-side label or team identifier.
opponentcharacterOpponent team name.
offense_snapsdouble
offense_pctdouble
defense_snapsdouble
defense_pctdouble
st_snapsdouble
st_pctdouble

Example

from sportsdataverse.nfl import load_nfl_snap_counts
snaps = load_nfl_snap_counts(seasons=[2024])

Multi-season range with offense-only filter::

import polars as pl
offense = (
load_nfl_snap_counts(seasons=range(2022, 2025))
.filter(pl.col("offense_snaps") > 0)
)

load_nfl_team_stats(seasons: 'List[int]', summary_level: 'str' = 'week', return_as_pandas=False) -> 'pl.DataFrame'

Load NFL team stats data going back to 1999

Parameters

ParameterTypeDefaultDescription
seasonslistUsed to define different seasons. 1999 is the earliest available season.
summary_levelstr'week'Aggregation level. One of "week", "reg", "post", "reg+post". Defaults to "week".
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing team stats available for the requested seasons.

col_nametypedescription
seasonintegerSeason year.
weekintegerWeek number.
teamcharacterTeam-side label or team identifier.
season_typecharacterSeason type (1=pre-season, 2=regular season, 3=postseason, 4=off-season for ESPN; or string label for WNBA Stats).
opponent_teamcharacter
completionsinteger
attemptsintegerTotal field goal attempts included in the PAAR calculation.
passing_yardsinteger
passing_tdsintegerTeam passing touchdowns.
passing_interceptionsinteger
sacks_sufferedinteger
sack_yards_lostinteger
sack_fumblesinteger
sack_fumbles_lostinteger
passing_air_yardsinteger
passing_yards_after_catchinteger
passing_first_downsinteger
passing_epadouble
passing_cpoedouble
passing_2pt_conversionsinteger
carriesinteger
rushing_yardsintegerTeam rushing yards.
rushing_tdsinteger
rushing_fumblesinteger
rushing_fumbles_lostinteger
rushing_first_downsinteger
rushing_epadouble
rushing_2pt_conversionsinteger
receptionsinteger
targetsinteger
receiving_yardsinteger
receiving_tdsinteger
receiving_fumblesinteger
receiving_fumbles_lostinteger
receiving_air_yardsinteger
receiving_yards_after_catchinteger
receiving_first_downsinteger
receiving_epadouble
receiving_2pt_conversionsinteger
special_teams_tdsinteger
def_tackles_solointeger
def_tackles_with_assistinteger
def_tackle_assistsinteger
def_tackles_for_lossinteger
def_tackles_for_loss_yardsinteger
def_fumbles_forcedinteger
def_sacksdouble
def_sack_yardsdouble
def_qb_hitsinteger
def_interceptionsinteger
def_interception_yardsinteger
def_pass_defendedinteger
def_tdsinteger
def_fumblesinteger
def_safetiesinteger
misc_yardsinteger
fumble_recovery_owninteger
fumble_recovery_yards_owninteger
fumble_recovery_oppinteger
fumble_recovery_yards_oppinteger
fumble_recovery_tdsinteger
penaltiesintegerTotal number of penalties.
penalty_yardsinteger
timeoutsinteger
punt_returnsintegerNumber of punt returns.
punt_return_yardsintegerTeam punt return yards.
kickoff_returnsinteger
kickoff_return_yardsinteger
fg_madeintegerTRUE when the field goal attempt was successful.
fg_attinteger
fg_missedinteger
fg_blockedinteger
fg_longinteger
fg_pctdoubleField goal percentage (0-1).
fg_made_0_19integer
fg_made_20_29integer
fg_made_30_39integer
fg_made_40_49integer
fg_made_50_59integer
fg_made_60_integer
fg_missed_0_19integer
fg_missed_20_29integer
fg_missed_30_39integer
fg_missed_40_49integer
fg_missed_50_59integer
fg_missed_60_integer
fg_made_listcharacter
fg_missed_listcharacter
fg_blocked_listcharacter
fg_made_distanceinteger
fg_missed_distanceinteger
fg_blocked_distanceinteger
pat_madeinteger
pat_attinteger
pat_missedinteger
pat_blockedinteger
pat_pctdouble
gwfg_madeinteger
gwfg_attinteger
gwfg_missedinteger
gwfg_blockedinteger
gwfg_distanceinteger

Example

from sportsdataverse.nfl import load_nfl_team_stats
weekly = load_nfl_team_stats(seasons=[2024])

Regular-season-only team stats::

reg = load_nfl_team_stats(seasons=[2024], summary_level="reg")

Combined regular + post-season at season grain::

combined = load_nfl_team_stats(seasons=[2023, 2024], summary_level="reg+post")

load_nfl_teams(return_as_pandas=False) -> 'pl.DataFrame'

Load NFL team ID information and logos

Parameters

ParameterTypeDefaultDescription
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing teams available.

col_nametypedescription
team_abbrcharacterTeam abbreviation.
team_namecharacterFull team display name (e.g. 'Las Vegas Aces').
team_idintegerUnique team identifier.
team_nickcharacter
team_confcharacter
team_divisioncharacter
team_colorcharacterTeam primary color (hex without leading '#').
team_color2character
team_color3character
team_color4character
team_logo_wikipediacharacter
team_logo_espncharacter
team_wordmarkcharacter
team_conference_logocharacter
team_league_logocharacter
team_logo_squaredcharacter

Example

from sportsdataverse.nfl import load_nfl_teams
teams = load_nfl_teams()
teams.shape

Pandas round-trip::

teams_pd = load_nfl_teams(return_as_pandas=True)
teams_pd[["team_abbr", "team_name", "team_conf", "team_division"]].head()

load_nfl_trades(return_as_pandas=False) -> 'pl.DataFrame'

Load NFL trades data

Parameters

ParameterTypeDefaultDescription
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing NFL trade information.

col_nametypedescription
trade_idinteger
seasonintegerSeason year.
trade_datecharacter
gavecharacter
receivedcharacter
pick_seasoninteger
pick_roundintegerDraft round.
pick_numberintegerOverall pick number.
conditionalinteger
pfr_idcharacter
pfr_namecharacter

Example

from sportsdataverse.nfl import load_nfl_trades
trades = load_nfl_trades()
trades.shape

Filter to a single season::

import polars as pl
trades_2024 = load_nfl_trades().filter(pl.col("season") == 2024)

load_nfl_weekly_rosters(seasons: 'List[int]', return_as_pandas=False) -> 'pl.DataFrame'

Load NFL weekly roster data for selected seasons

Parameters

ParameterTypeDefaultDescription
seasonslistUsed to define different seasons. 2002 is the earliest available season.
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing weekly rosters available for the requested seasons.

col_nametypedescription
seasonintegerSeason year.
teamcharacterTeam-side label or team identifier.
positioncharacterListed roster position (G, F, C, etc.).
depth_chart_positioncharacter
jersey_numberintegerJersey number worn (often blank for non-uniformed roles).
statuscharacterStatus label.
full_namecharacterPlayer's full name.
first_namecharacterPlayer's first name.
last_namecharacterPlayer's last name.
birth_datecharacterDate of birth (YYYY-MM-DD).
heightdoublePlayer height (string e.g. '6-2' or inches).
weightintegerPlayer weight in pounds.
collegecharacterCollege or school attended.
gsis_idcharacter
espn_idcharacter
sportradar_idcharacter
yahoo_idcharacter
rotowire_idcharacter
pff_idcharacter
pfr_idcharacter
fantasy_data_idcharacter
sleeper_idcharacter
years_expinteger
headshot_urlcharacterPlayer ESPN headshot url.
ngs_positioncharacter
weekintegerWeek number.
game_typecharacterGame type code (R, P, etc.).
status_description_abbrcharacter
football_namecharacter
esb_idcharacter
gsis_it_idcharacter
smart_idcharacter
entry_yearinteger
rookie_yearinteger
draft_clubcharacter
draft_numberinteger

Example

from sportsdataverse.nfl import load_nfl_weekly_rosters
weekly = load_nfl_weekly_rosters(seasons=[2024])

Multi-season range with a follow-up week filter::

import polars as pl
wk1 = (
load_nfl_weekly_rosters(seasons=range(2022, 2025))
.filter(pl.col("week") == 1)
)

load_officials(return_as_pandas=False) -> 'pl.DataFrame'

Load NFL Officials information

Parameters

ParameterTypeDefaultDescription
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing officials available.

col_nametypedescription
game_idcharacterUnique game identifier.
game_keycharacter
official_namecharacterOfficial name.
positioncharacterListed roster position (G, F, C, etc.).
jersey_numberintegerJersey number worn (often blank for non-uniformed roles).
official_idcharacterUnique official / referee identifier.
seasonintegerSeason year.
season_typecharacterSeason type (1=pre-season, 2=regular season, 3=postseason, 4=off-season for ESPN; or string label for WNBA Stats).
weekintegerWeek number.

Example

from sportsdataverse.nfl import load_nfl_officials
officials = load_nfl_officials()
officials.shape

Pandas round-trip::

officials_pd = load_nfl_officials(return_as_pandas=True)
officials_pd.head()

load_participation(seasons: 'List[int]', return_as_pandas=False) -> 'pl.DataFrame'

Load NFL play-by-play participation data for selected seasons

Parameters

ParameterTypeDefaultDescription
seasonslistUsed to define different seasons. 2016 is the earliest available season.
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing play-by-play participation data available for the requested seasons.

col_nametypedescription
nflverse_game_idcharacter
old_game_idcharacter
play_iddoubleUnique play identifier within a game.
possession_teamcharacterPossession team.
offense_formationcharacter
offense_personnelcharacter
defenders_in_boxinteger
defense_personnelcharacter
number_of_pass_rushersinteger
players_on_playcharacter
offense_playerscharacter
defense_playerscharacter
n_offenseinteger
n_defenseinteger
ngs_air_yardsdouble
time_to_throwdouble
was_pressurelogical
routecharacter
defense_man_zone_typecharacter
defense_coverage_typecharacter
offense_namescharacter
defense_namescharacter
offense_positionscharacter
defense_positionscharacter
offense_numberscharacter
defense_numberscharacter

Example

from sportsdataverse.nfl import load_nfl_pbp_participation
participation = load_nfl_pbp_participation(seasons=[2022])

Multi-season range::

participation = load_nfl_pbp_participation(seasons=range(2018, 2023))

load_pbp(seasons: 'List[int]', return_as_pandas=False) -> 'pl.DataFrame'

Load NFL play by play data going back to 1999

Parameters

ParameterTypeDefaultDescription
seasonslistUsed to define different seasons. 1999 is the earliest available season.
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing the play-by-plays available for the requested seasons.

col_nametypedescription
play_iddoubleUnique play identifier within a game.
game_idcharacterUnique game identifier.
old_game_idcharacter
home_teamcharacterHome team name.
away_teamcharacterAway team name.
season_typecharacterSeason type (1=pre-season, 2=regular season, 3=postseason, 4=off-season for ESPN; or string label for WNBA Stats).
weekintegerWeek number.
posteamcharacter
posteam_typecharacter
defteamcharacter
side_of_fieldcharacter
yardline_100double
game_datecharacterGame date (YYYY-MM-DD).
quarter_seconds_remainingdouble
half_seconds_remainingdouble
game_seconds_remainingdouble
game_halfcharacterHalf of the game (1 or 2).
quarter_enddouble
drivedouble
spdouble
qtrdoubleQuarter (1-4) or OT period (5+).
downdoubleDown of the play (1-4).
goal_to_gointeger
timecharacterTime left within the period
yrdlncharacter
ydstogodouble
ydsnetdouble
desccharacter
play_typecharacterCFBD play type label (e.g. "Rush", "Pass Reception", "Field Goal Good").
yards_gaineddoubleNet yards gained by the offense on the play.
shotgundouble
no_huddledouble
qb_dropbackdouble
qb_kneeldouble
qb_spikedouble
qb_scrambledouble
pass_lengthcharacterPass length.
pass_locationcharacter
air_yardsdouble
yards_after_catchdouble
run_locationcharacter
run_gapcharacter
field_goal_resultcharacter
kick_distancedouble
extra_point_resultcharacter
two_point_conv_resultcharacter
home_timeouts_remainingdoubleHome team's timeouts remaining.
away_timeouts_remainingdoubleAway team's timeouts remaining.
timeoutdouble
timeout_teamcharacter
td_teamcharacter
td_player_namecharacter
td_player_idcharacter
posteam_timeouts_remainingdouble
defteam_timeouts_remainingdouble
total_home_scoredouble
total_away_scoredouble
posteam_scoredouble
defteam_scoredouble
score_differentialdouble
posteam_score_postdouble
defteam_score_postdouble
score_differential_postdouble
no_score_probdouble
opp_fg_probdouble
opp_safety_probdouble
opp_td_probdouble
fg_probdouble
safety_probdouble
td_probdouble
extra_point_probdouble
two_point_conversion_probdouble
epdouble
epadouble
total_home_epadouble
total_away_epadouble
total_home_rush_epadouble
total_away_rush_epadouble
total_home_pass_epadouble
total_away_pass_epadouble
air_epadouble
yac_epadouble
comp_air_epadouble
comp_yac_epadouble
total_home_comp_air_epadouble
total_away_comp_air_epadouble
total_home_comp_yac_epadouble
total_away_comp_yac_epadouble
total_home_raw_air_epadouble
total_away_raw_air_epadouble
total_home_raw_yac_epadouble
total_away_raw_yac_epadouble
wpdoubleWp.
def_wpdouble
home_wpdouble
away_wpdouble
wpadoubleWin Probability Added on the play (cfbfastR WP model output).
vegas_wpadouble
vegas_home_wpadouble
home_wp_postdouble
away_wp_postdouble
vegas_wpdouble
vegas_home_wpdouble
total_home_rush_wpadouble
total_away_rush_wpadouble
total_home_pass_wpadouble
total_away_pass_wpadouble
air_wpadouble
yac_wpadouble
comp_air_wpadouble
comp_yac_wpadouble
total_home_comp_air_wpadouble
total_away_comp_air_wpadouble
total_home_comp_yac_wpadouble
total_away_comp_yac_wpadouble
total_home_raw_air_wpadouble
total_away_raw_air_wpadouble
total_home_raw_yac_wpadouble
total_away_raw_yac_wpadouble
punt_blockeddoubleBinary flag for a blocked punt.
first_down_rushdouble
first_down_passdouble
first_down_penaltydouble
third_down_converteddouble
third_down_faileddouble
fourth_down_converteddouble
fourth_down_faileddouble
incomplete_passdouble
touchbackdouble
interceptiondouble
punt_inside_twentydouble
punt_in_endzonedouble
punt_out_of_boundsdouble
punt_downeddoubleBinary flag for a punt downed in the field of play.
punt_fair_catchdoubleBinary flag for a punt fair catch.
kickoff_inside_twentydouble
kickoff_in_endzonedouble
kickoff_out_of_boundsdouble
kickoff_downeddoubleBinary flag for a kickoff downed in the field of play.
kickoff_fair_catchdoubleBinary flag for a kickoff fair catch.
fumble_forceddouble
fumble_not_forceddouble
fumble_out_of_boundsdouble
solo_tackledouble
safetydoubleBinary flag for a safety.
penaltydouble
tackled_for_lossdouble
fumble_lostdouble
own_kickoff_recoverydouble
own_kickoff_recovery_tddouble
qb_hitdouble
rush_attemptdouble
pass_attemptdoubleBinary flag for a pass attempt.
sackdoubleBinary flag for a sack (duplicate of sack_vec for downstream use).
touchdowndoubleBinary flag for a touchdown (duplicate of td_play for downstream use).
pass_touchdowndouble
rush_touchdowndouble
return_touchdowndouble
extra_point_attemptdouble
two_point_attemptdouble
field_goal_attemptdouble
kickoff_attemptdouble
punt_attemptdouble
fumbledouble
complete_passdouble
assist_tackledouble
lateral_receptiondouble
lateral_rushdouble
lateral_returndouble
lateral_recoverydouble
passer_player_idcharacter
passer_player_namecharacterName of the passer on a passing play.
passing_yardsdouble
receiver_player_idcharacter
receiver_player_namecharacterName of the receiver on a passing play.
receiving_yardsdouble
rusher_player_idcharacter
rusher_player_namecharacterName of the rusher on a rushing play.
rushing_yardsdoubleTeam rushing yards.
lateral_receiver_player_idcharacter
lateral_receiver_player_namecharacter
lateral_receiving_yardsdouble
lateral_rusher_player_idcharacter
lateral_rusher_player_namecharacter
lateral_rushing_yardsdouble
lateral_sack_player_idcharacter
lateral_sack_player_namecharacter
interception_player_idcharacterCFBD athlete_id of the defender credited with an interception.
interception_player_namecharacterName of the defender credited with the interception.
lateral_interception_player_idcharacter
lateral_interception_player_namecharacter
punt_returner_player_idcharacter
punt_returner_player_namecharacterName of the punt returner.
lateral_punt_returner_player_idcharacter
lateral_punt_returner_player_namecharacter
kickoff_returner_player_namecharacterName of the kickoff returner.
kickoff_returner_player_idcharacter
lateral_kickoff_returner_player_idcharacter
lateral_kickoff_returner_player_namecharacter
punter_player_idcharacter
punter_player_namecharacterName of the punter.
kicker_player_namecharacter
kicker_player_idcharacter
own_kickoff_recovery_player_idcharacter
own_kickoff_recovery_player_namecharacter
blocked_player_idcharacter
blocked_player_namecharacter
tackle_for_loss_1_player_idcharacter
tackle_for_loss_1_player_namecharacter
tackle_for_loss_2_player_idcharacter
tackle_for_loss_2_player_namecharacter
qb_hit_1_player_idcharacter
qb_hit_1_player_namecharacter
qb_hit_2_player_idcharacter
qb_hit_2_player_namecharacter
forced_fumble_player_1_teamcharacter
forced_fumble_player_1_player_idcharacter
forced_fumble_player_1_player_namecharacter
forced_fumble_player_2_teamcharacter
forced_fumble_player_2_player_idcharacter
forced_fumble_player_2_player_namecharacter
solo_tackle_1_teamcharacter
solo_tackle_2_teamcharacter
solo_tackle_1_player_idcharacter
solo_tackle_2_player_idcharacter
solo_tackle_1_player_namecharacter
solo_tackle_2_player_namecharacter
assist_tackle_1_player_idcharacter
assist_tackle_1_player_namecharacter
assist_tackle_1_teamcharacter
assist_tackle_2_player_idcharacter
assist_tackle_2_player_namecharacter
assist_tackle_2_teamcharacter
assist_tackle_3_player_idcharacter
assist_tackle_3_player_namecharacter
assist_tackle_3_teamcharacter
assist_tackle_4_player_idcharacter
assist_tackle_4_player_namecharacter
assist_tackle_4_teamcharacter
tackle_with_assistdouble
tackle_with_assist_1_player_idcharacter
tackle_with_assist_1_player_namecharacter
tackle_with_assist_1_teamcharacter
tackle_with_assist_2_player_idcharacter
tackle_with_assist_2_player_namecharacter
tackle_with_assist_2_teamcharacter
pass_defense_1_player_idcharacter
pass_defense_1_player_namecharacter
pass_defense_2_player_idcharacter
pass_defense_2_player_namecharacter
fumbled_1_teamcharacter
fumbled_1_player_idcharacter
fumbled_1_player_namecharacter
fumbled_2_player_idcharacter
fumbled_2_player_namecharacter
fumbled_2_teamcharacter
fumble_recovery_1_teamcharacter
fumble_recovery_1_yardsdouble
fumble_recovery_1_player_idcharacter
fumble_recovery_1_player_namecharacter
fumble_recovery_2_teamcharacter
fumble_recovery_2_yardsdouble
fumble_recovery_2_player_idcharacter
fumble_recovery_2_player_namecharacter
sack_player_idcharacterComma-separated CFBD athlete_id(s) of the sacking defender(s).
sack_player_namecharacterPrimary sack player name.
half_sack_1_player_idcharacter
half_sack_1_player_namecharacter
half_sack_2_player_idcharacter
half_sack_2_player_namecharacter
return_teamcharacter
return_yardsdouble
penalty_teamcharacter
penalty_player_idcharacter
penalty_player_namecharacter
penalty_yardsdouble
replay_or_challengedouble
replay_or_challenge_resultcharacter
penalty_typecharacter
defensive_two_point_attemptdouble
defensive_two_point_convdouble
defensive_extra_point_attemptdouble
defensive_extra_point_convdouble
safety_player_namecharacter
safety_player_idcharacter
seasonintegerSeason year.
cpdouble
cpoedouble
seriesdouble
series_successdouble
series_resultcharacter
order_sequencedouble
start_timecharacterFirst-pitch local start time.
time_of_daycharacter
stadiumcharacter
weathercharacter
nfl_api_idcharacter
play_clockcharacter
play_deleteddouble
play_type_nflcharacter
special_teams_playdouble
st_play_typecharacter
end_clock_timecharacter
end_yard_linecharacterYard line at the end of the play.
fixed_drivedouble
fixed_drive_resultcharacter
drive_real_start_timecharacter
drive_play_countdoubleNumber of plays in the drive.
drive_time_of_possessioncharacter
drive_first_downsdouble
drive_inside20double
drive_ended_with_scoredouble
drive_quarter_startdouble
drive_quarter_enddouble
drive_yards_penalizeddouble
drive_start_transitioncharacter
drive_end_transitioncharacter
drive_game_clock_startcharacter
drive_game_clock_endcharacter
drive_start_yard_linecharacter
drive_end_yard_linecharacter
drive_play_id_starteddouble
drive_play_id_endeddouble
away_scoreintegerAway team score at the time of the play.
home_scoreintegerHome team score at the time of the play.
locationcharacterTeam city/region (e.g. "Los Angeles").
resultintegerResult.
totalintegerTotal.
spread_linedouble
total_linedouble
div_gameinteger
roofcharacter
surfacecharacter
tempinteger
windintegerWind speed and direction.
home_coachcharacter
away_coachcharacter
stadium_idcharacter
game_stadiumcharacter
aborted_playdouble
successdoubleBinary success-rate flag using the 50/70/100 percent down-state thresholds.
passercharacter
passer_jersey_numberinteger
rushercharacter
rusher_jersey_numberinteger
receivercharacter
receiver_jersey_numberinteger
passdoubleBinary flag for a passing play (includes sacks).
rushdoubleBinary flag for a rushing play.
first_downdouble
specialdouble
playdoubleBinary flag indicating the row is a counted play (excludes end markers/timeouts/penalties).
passer_idcharacterUnique identifier for passer.
rusher_idcharacter
receiver_idcharacter
namecharacterDisplay name.
jersey_numberintegerJersey number worn (often blank for non-uniformed roles).
idcharacterId.
fantasy_player_namecharacter
fantasy_player_idcharacter
fantasycharacter
fantasy_idcharacter
out_of_boundsdouble
home_opening_kickoffdouble
qb_epadouble
xyac_epadouble
xyac_mean_yardagedouble
xyac_median_yardageinteger
xyac_successdouble
xyac_fddouble
xpassdouble
pass_oedouble

Example

from sportsdataverse.nfl import load_nfl_pbp
pbp = load_nfl_pbp(seasons=[2024])
print(pbp.shape)

Multi-season range::

pbp = load_nfl_pbp(seasons=range(2020, 2025))

With cache off (development workflow)::

from sportsdataverse.nfl import load_nfl_pbp, update_config
update_config(cache_mode="off")
pbp = load_nfl_pbp(seasons=[2024])

Pandas round-trip::

pbp_pd = load_nfl_pbp(seasons=[2024], return_as_pandas=True)
pbp_pd.head()

load_pfr_advstats(seasons: 'List[int]', stat_type: 'str' = 'pass', summary_level: 'str' = 'week', return_as_pandas: 'bool' = False) -> 'pl.DataFrame'

Load Pro-Football Reference advanced statistics going back to 2018.

Unified loader that consolidates the per-stat-type / per-summary-level PFR advstats accessors. Mirrors the API surface of nflreadpy's load_pfr_advstats so downstream code can swap engines without changing call sites.

Parameters

ParameterTypeDefaultDescription
seasonslist[int]Seasons to load. For summary_level='week' this drives the per-season parquet fan-out; for summary_level='season' it post-filters the combined parquet by the season column.
stat_typestr'pass'One of "pass", "rush", "rec", "def". Defaults to "pass".
summary_levelstr'week'One of "week" or "season". Defaults to "week".
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing PFR advanced stats data for the requested stat_type, summary_level, and seasons.

col_nametypedescription
game_idcharacterUnique game identifier.
pfr_game_idcharacter
seasonintegerSeason year.
weekintegerWeek number.
game_typecharacterGame type code (R, P, etc.).
teamcharacterTeam-side label or team identifier.
opponentcharacterOpponent team name.
pfr_player_namecharacter
pfr_player_idcharacter
passing_dropsdouble
passing_drop_pctdouble
receiving_dropdouble
receiving_drop_pctdouble
passing_bad_throwsdouble
passing_bad_throw_pctdouble
times_sackeddouble
times_blitzeddouble
times_hurrieddouble
times_hitdouble
times_pressureddouble
times_pressured_pctdouble
def_times_blitzeddouble
def_times_hurrieddouble
def_times_hitqbdouble

Example

from sportsdataverse.nfl import load_nfl_pfr_advstats
pass_week = load_nfl_pfr_advstats(
seasons=[2024], stat_type="pass", summary_level="week"
)

Season-level rushing summaries (one row per player per season)::

rush_season = load_nfl_pfr_advstats(
seasons=[2024], stat_type="rush", summary_level="season"
)

Defensive stats with a follow-up filter::

import polars as pl
def_week = (
load_nfl_pfr_advstats(seasons=[2024], stat_type="def", summary_level="week")
.filter(pl.col("week") <= 8)
)

Pandas round-trip::

rec_pd = load_nfl_pfr_advstats(
seasons=[2024],
stat_type="rec",
summary_level="season",
return_as_pandas=True,
)

load_player_stats(kicking=False, return_as_pandas=False) -> 'pl.DataFrame'

Load NFL player stats data

Parameters

ParameterTypeDefaultDescription
kickingboolFalseIf True, load kicking stats. If False, load all other stats.
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing player stats.

col_nametypedescription
player_idcharacterUnique player identifier.
player_namecharacterPlayer name.
player_display_namecharacter
positioncharacterListed roster position (G, F, C, etc.).
position_groupcharacterPosition group of the recruits (e.g. Offensive Line, Defensive Back).
headshot_urlcharacterPlayer ESPN headshot url.
recent_teamcharacter
seasonintegerSeason year.
weekintegerWeek number.
season_typecharacterSeason type (1=pre-season, 2=regular season, 3=postseason, 4=off-season for ESPN; or string label for WNBA Stats).
opponent_teamcharacter
completionsinteger
attemptsintegerTotal field goal attempts included in the PAAR calculation.
passing_yardsdouble
passing_tdsintegerTeam passing touchdowns.
interceptionsdoublePassing interceptions.
sacksdoubleTeam sacks.
sack_yardsdouble
sack_fumblesinteger
sack_fumbles_lostinteger
passing_air_yardsdouble
passing_yards_after_catchdouble
passing_first_downsdouble
passing_epadouble
passing_2pt_conversionsinteger
pacrdouble
dakotadouble
carriesinteger
rushing_yardsdoubleTeam rushing yards.
rushing_tdsinteger
rushing_fumblesdouble
rushing_fumbles_lostdouble
rushing_first_downsdouble
rushing_epadouble
rushing_2pt_conversionsinteger
receptionsinteger
targetsinteger
receiving_yardsdouble
receiving_tdsinteger
receiving_fumblesdouble
receiving_fumbles_lostdouble
receiving_air_yardsdouble
receiving_yards_after_catchdouble
receiving_first_downsdouble
receiving_epadouble
receiving_2pt_conversionsinteger
racrdouble
target_sharedouble
air_yards_sharedouble
woprdouble
special_teams_tdsdouble
fantasy_pointsdouble
fantasy_points_pprdouble

Example

from sportsdataverse.nfl import load_nfl_player_stats
stats = load_nfl_player_stats()
stats.shape

Kicking-only stats::

kicking = load_nfl_player_stats(kicking=True)

Filter to a single season after load::

import polars as pl
stats_2024 = load_nfl_player_stats().filter(pl.col("season") == 2024)

load_players(return_as_pandas=False) -> 'pl.DataFrame'

Load NFL Player ID information

Parameters

ParameterTypeDefaultDescription
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing players available.

col_nametypedescription
game_idcharacterUnique game identifier.
game_keycharacter
official_namecharacterOfficial name.
positioncharacterListed roster position (G, F, C, etc.).
jersey_numberintegerJersey number worn (often blank for non-uniformed roles).
official_idcharacterUnique official / referee identifier.
seasonintegerSeason year.
season_typecharacterSeason type (1=pre-season, 2=regular season, 3=postseason, 4=off-season for ESPN; or string label for WNBA Stats).
weekintegerWeek number.

Example

from sportsdataverse.nfl import load_nfl_players
players = load_nfl_players()
players.shape

Pandas round-trip::

players_pd = load_nfl_players(return_as_pandas=True)
players_pd.head()

load_rosters(seasons: 'List[int]', return_as_pandas=False) -> 'pl.DataFrame'

Load NFL roster data for all seasons

Parameters

ParameterTypeDefaultDescription
seasonslistUsed to define different seasons. 1920 is the earliest available season.
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing rosters available for the requested seasons.

col_nametypedescription
seasonintegerSeason year.
teamcharacterTeam-side label or team identifier.
positioncharacterListed roster position (G, F, C, etc.).
depth_chart_positioncharacter
jersey_numberintegerJersey number worn (often blank for non-uniformed roles).
statuscharacterStatus label.
full_namecharacterPlayer's full name.
first_namecharacterPlayer's first name.
last_namecharacterPlayer's last name.
birth_datecharacterDate of birth (YYYY-MM-DD).
heightdoublePlayer height (string e.g. '6-2' or inches).
weightintegerPlayer weight in pounds.
collegecharacterCollege or school attended.
gsis_idcharacter
espn_idcharacter
sportradar_idcharacter
yahoo_idcharacter
rotowire_idcharacter
pff_idcharacter
pfr_idcharacter
fantasy_data_idcharacter
sleeper_idcharacter
years_expinteger
headshot_urlcharacterPlayer ESPN headshot url.
ngs_positioncharacter
weekintegerWeek number.
game_typecharacterGame type code (R, P, etc.).
status_description_abbrcharacter
football_namecharacter
esb_idcharacter
gsis_it_idcharacter
smart_idcharacter
entry_yearinteger
rookie_yearinteger
draft_clubcharacter
draft_numberinteger

Example

from sportsdataverse.nfl import load_nfl_rosters
rosters = load_nfl_rosters(seasons=[2024])

Multi-season range::

rosters = load_nfl_rosters(seasons=range(2020, 2025))

Filter to a single team::

import polars as pl
kc = load_nfl_rosters(seasons=[2024]).filter(pl.col("team") == "KC")

load_rosters_weekly(seasons: 'List[int]', return_as_pandas=False) -> 'pl.DataFrame'

Load NFL weekly roster data for selected seasons

Parameters

ParameterTypeDefaultDescription
seasonslistUsed to define different seasons. 2002 is the earliest available season.
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing weekly rosters available for the requested seasons.

col_nametypedescription
seasonintegerSeason year.
teamcharacterTeam-side label or team identifier.
positioncharacterListed roster position (G, F, C, etc.).
depth_chart_positioncharacter
jersey_numberintegerJersey number worn (often blank for non-uniformed roles).
statuscharacterStatus label.
full_namecharacterPlayer's full name.
first_namecharacterPlayer's first name.
last_namecharacterPlayer's last name.
birth_datecharacterDate of birth (YYYY-MM-DD).
heightdoublePlayer height (string e.g. '6-2' or inches).
weightintegerPlayer weight in pounds.
collegecharacterCollege or school attended.
gsis_idcharacter
espn_idcharacter
sportradar_idcharacter
yahoo_idcharacter
rotowire_idcharacter
pff_idcharacter
pfr_idcharacter
fantasy_data_idcharacter
sleeper_idcharacter
years_expinteger
headshot_urlcharacterPlayer ESPN headshot url.
ngs_positioncharacter
weekintegerWeek number.
game_typecharacterGame type code (R, P, etc.).
status_description_abbrcharacter
football_namecharacter
esb_idcharacter
gsis_it_idcharacter
smart_idcharacter
entry_yearinteger
rookie_yearinteger
draft_clubcharacter
draft_numberinteger

Example

from sportsdataverse.nfl import load_nfl_weekly_rosters
weekly = load_nfl_weekly_rosters(seasons=[2024])

Multi-season range with a follow-up week filter::

import polars as pl
wk1 = (
load_nfl_weekly_rosters(seasons=range(2022, 2025))
.filter(pl.col("week") == 1)
)

load_schedules(seasons: 'List[int]', return_as_pandas=False) -> 'pl.DataFrame'

Load NFL schedule data

Parameters

ParameterTypeDefaultDescription
seasonslistUsed to define different seasons. 1999 is the earliest available season.
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing the schedule for the requested seasons.

col_nametypedescription
game_idcharacterUnique game identifier.
seasonintegerSeason year.
game_typecharacterGame type code (R, P, etc.).
weekintegerWeek number.
gamedaycharacter
weekdaycharacter
gametimecharacter
away_teamcharacterAway team name.
away_scoreintegerAway team score at the time of the play.
home_teamcharacterHome team name.
home_scoreintegerHome team score at the time of the play.
locationcharacterTeam city/region (e.g. "Los Angeles").
resultintegerResult.
totalintegerTotal.
overtimeinteger
old_game_idcharacter
gsisinteger
nfl_detail_idcharacter
pfrcharacter
pffinteger
espncharacter
ftninteger
away_restinteger
home_restinteger
away_moneylineintegerAway team moneyline odds.
home_moneylineintegerHome team moneyline odds.
spread_linedouble
away_spread_oddsintegerAmerican odds price on the away-team spread.
home_spread_oddsintegerAmerican odds price on the home-team spread.
total_linedouble
under_oddsintegerAmerican odds price on the under.
over_oddsintegerAmerican odds price on the over.
div_gameinteger
roofcharacter
surfacecharacter
tempinteger
windintegerWind speed and direction.
away_qb_idcharacter
home_qb_idcharacter
away_qb_namecharacter
home_qb_namecharacter
away_coachcharacter
home_coachcharacter
refereecharacter
stadium_idcharacter
stadiumcharacter

Example

from sportsdataverse.nfl import load_nfl_schedule
schedule = load_nfl_schedule(seasons=[2024])
schedule.shape

Multi-season range::

schedule = load_nfl_schedule(seasons=range(2020, 2025))

Filter to a single week::

import polars as pl
week_one = load_nfl_schedule(seasons=[2024]).filter(pl.col("week") == 1)

Pandas round-trip::

schedule_pd = load_nfl_schedule(seasons=[2024], return_as_pandas=True)
schedule_pd[["game_id", "home_team", "away_team", "week"]].head()

load_snap_counts(seasons: 'List[int]', return_as_pandas=False) -> 'pl.DataFrame'

Load NFL snap counts data for selected seasons

Parameters

ParameterTypeDefaultDescription
seasonslistUsed to define different seasons. 2012 is the earliest available season.
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing snap counts available for the requested seasons.

col_nametypedescription
game_idcharacterUnique game identifier.
pfr_game_idcharacter
seasonintegerSeason year.
game_typecharacterGame type code (R, P, etc.).
weekintegerWeek number.
playercharacterPlayer name.
pfr_player_idcharacter
positioncharacterListed roster position (G, F, C, etc.).
teamcharacterTeam-side label or team identifier.
opponentcharacterOpponent team name.
offense_snapsdouble
offense_pctdouble
defense_snapsdouble
defense_pctdouble
st_snapsdouble
st_pctdouble

Example

from sportsdataverse.nfl import load_nfl_snap_counts
snaps = load_nfl_snap_counts(seasons=[2024])

Multi-season range with offense-only filter::

import polars as pl
offense = (
load_nfl_snap_counts(seasons=range(2022, 2025))
.filter(pl.col("offense_snaps") > 0)
)

load_team_stats(seasons: 'List[int]', summary_level: 'str' = 'week', return_as_pandas=False) -> 'pl.DataFrame'

Load NFL team stats data going back to 1999

Parameters

ParameterTypeDefaultDescription
seasonslistUsed to define different seasons. 1999 is the earliest available season.
summary_levelstr'week'Aggregation level. One of "week", "reg", "post", "reg+post". Defaults to "week".
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing team stats available for the requested seasons.

col_nametypedescription
seasonintegerSeason year.
weekintegerWeek number.
teamcharacterTeam-side label or team identifier.
season_typecharacterSeason type (1=pre-season, 2=regular season, 3=postseason, 4=off-season for ESPN; or string label for WNBA Stats).
opponent_teamcharacter
completionsinteger
attemptsintegerTotal field goal attempts included in the PAAR calculation.
passing_yardsinteger
passing_tdsintegerTeam passing touchdowns.
passing_interceptionsinteger
sacks_sufferedinteger
sack_yards_lostinteger
sack_fumblesinteger
sack_fumbles_lostinteger
passing_air_yardsinteger
passing_yards_after_catchinteger
passing_first_downsinteger
passing_epadouble
passing_cpoedouble
passing_2pt_conversionsinteger
carriesinteger
rushing_yardsintegerTeam rushing yards.
rushing_tdsinteger
rushing_fumblesinteger
rushing_fumbles_lostinteger
rushing_first_downsinteger
rushing_epadouble
rushing_2pt_conversionsinteger
receptionsinteger
targetsinteger
receiving_yardsinteger
receiving_tdsinteger
receiving_fumblesinteger
receiving_fumbles_lostinteger
receiving_air_yardsinteger
receiving_yards_after_catchinteger
receiving_first_downsinteger
receiving_epadouble
receiving_2pt_conversionsinteger
special_teams_tdsinteger
def_tackles_solointeger
def_tackles_with_assistinteger
def_tackle_assistsinteger
def_tackles_for_lossinteger
def_tackles_for_loss_yardsinteger
def_fumbles_forcedinteger
def_sacksdouble
def_sack_yardsdouble
def_qb_hitsinteger
def_interceptionsinteger
def_interception_yardsinteger
def_pass_defendedinteger
def_tdsinteger
def_fumblesinteger
def_safetiesinteger
misc_yardsinteger
fumble_recovery_owninteger
fumble_recovery_yards_owninteger
fumble_recovery_oppinteger
fumble_recovery_yards_oppinteger
fumble_recovery_tdsinteger
penaltiesintegerTotal number of penalties.
penalty_yardsinteger
timeoutsinteger
punt_returnsintegerNumber of punt returns.
punt_return_yardsintegerTeam punt return yards.
kickoff_returnsinteger
kickoff_return_yardsinteger
fg_madeintegerTRUE when the field goal attempt was successful.
fg_attinteger
fg_missedinteger
fg_blockedinteger
fg_longinteger
fg_pctdoubleField goal percentage (0-1).
fg_made_0_19integer
fg_made_20_29integer
fg_made_30_39integer
fg_made_40_49integer
fg_made_50_59integer
fg_made_60_integer
fg_missed_0_19integer
fg_missed_20_29integer
fg_missed_30_39integer
fg_missed_40_49integer
fg_missed_50_59integer
fg_missed_60_integer
fg_made_listcharacter
fg_missed_listcharacter
fg_blocked_listcharacter
fg_made_distanceinteger
fg_missed_distanceinteger
fg_blocked_distanceinteger
pat_madeinteger
pat_attinteger
pat_missedinteger
pat_blockedinteger
pat_pctdouble
gwfg_madeinteger
gwfg_attinteger
gwfg_missedinteger
gwfg_blockedinteger
gwfg_distanceinteger

Example

from sportsdataverse.nfl import load_nfl_team_stats
weekly = load_nfl_team_stats(seasons=[2024])

Regular-season-only team stats::

reg = load_nfl_team_stats(seasons=[2024], summary_level="reg")

Combined regular + post-season at season grain::

combined = load_nfl_team_stats(seasons=[2023, 2024], summary_level="reg+post")

load_teams(return_as_pandas=False) -> 'pl.DataFrame'

Load NFL team ID information and logos

Parameters

ParameterTypeDefaultDescription
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing teams available.

col_nametypedescription
team_abbrcharacterTeam abbreviation.
team_namecharacterFull team display name (e.g. 'Las Vegas Aces').
team_idintegerUnique team identifier.
team_nickcharacter
team_confcharacter
team_divisioncharacter
team_colorcharacterTeam primary color (hex without leading '#').
team_color2character
team_color3character
team_color4character
team_logo_wikipediacharacter
team_logo_espncharacter
team_wordmarkcharacter
team_conference_logocharacter
team_league_logocharacter
team_logo_squaredcharacter

Example

from sportsdataverse.nfl import load_nfl_teams
teams = load_nfl_teams()
teams.shape

Pandas round-trip::

teams_pd = load_nfl_teams(return_as_pandas=True)
teams_pd[["team_abbr", "team_name", "team_conf", "team_division"]].head()

load_trades(return_as_pandas=False) -> 'pl.DataFrame'

Load NFL trades data

Parameters

ParameterTypeDefaultDescription
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing NFL trade information.

col_nametypedescription
trade_idinteger
seasonintegerSeason year.
trade_datecharacter
gavecharacter
receivedcharacter
pick_seasoninteger
pick_roundintegerDraft round.
pick_numberintegerOverall pick number.
conditionalinteger
pfr_idcharacter
pfr_namecharacter

Example

from sportsdataverse.nfl import load_nfl_trades
trades = load_nfl_trades()
trades.shape

Filter to a single season::

import polars as pl
trades_2024 = load_nfl_trades().filter(pl.col("season") == 2024)

Utilities & helpers

NFLPlayProcess(gameId=0, raw=False, path_to_json='/', return_keys=None, **kwargs)

Process ESPN NFL play-by-play feeds into a tidy game-level dictionary.

Wraps the ESPN summary endpoint (or a local JSON dump) and pipes the result through a chain of feature-engineering steps -- down/distance, play-type flags, EPA, WPA, QBR, drive aggregation, and an advanced box score. Use run_processing_pipeline() for the full feature set or run_cleaning_pipeline() for a lighter clean.

Parameters

ParameterTypeDefaultDescription
gameIdint0ESPN event id (e.g. 401671801).
rawboolFalseIf True, espn_nfl_pbp() returns the ESPN payload untouched. If False (default), it normalizes keys.
path_to_jsonstr'/'Directory containing {gameId}.json for the nfl_pbp_disk() flow (offline replay).
return_keyslist[str] | NoneNoneIf supplied, run_processing_pipeline returns only the listed keys from the result dict.

Example

from sportsdataverse.nfl import NFLPlayProcess
proc = NFLPlayProcess(gameId=401671801)
proc.espn_nfl_pbp()
result = proc.run_processing_pipeline()
len(result["plays"])

Offline replay from a JSON dump::

proc = NFLPlayProcess(gameId=401671801, path_to_json="./pbp_dump")
proc.nfl_pbp_disk()
cleaned = proc.run_cleaning_pipeline()

Subset the return payload::

proc = NFLPlayProcess(gameId=401671801, return_keys=["plays", "boxscore"])
proc.espn_nfl_pbp()
slim = proc.run_processing_pipeline()
sorted(slim.keys()) # ['boxscore', 'plays']

get_current_nfl_season(roster: 'bool' = False) -> 'int'

Return the current NFL season year.

Parameters

ParameterTypeDefaultDescription
rosterboolFalseIf True, use roster-year logic (current calendar year on/after March 15, otherwise previous year). If False, use season logic (current calendar year on/after the Thursday following Labor Day, otherwise previous year).

Returns

The current season (or roster) year.

Example

from sportsdataverse.nfl import get_current_nfl_season
season = get_current_nfl_season()
print(season)

Roster-year semantics (March 15 cutover)::

roster_year = get_current_nfl_season(roster=True)

Pair with a loader to fetch only the active season::

from sportsdataverse.nfl import load_nfl_schedule
schedule = load_nfl_schedule(seasons=[get_current_nfl_season()])

get_current_nfl_week(use_date: 'bool' = True, roster: 'bool' = False) -> 'int'

Return the current NFL week (1-22).

Parameters

ParameterTypeDefaultDescription
use_dateboolTrueIf True (default), compute the week purely from the calendar (number of weeks since the first Thursday of September of the current season). If False, hit the live schedule via load_nfl_schedule() and return the week of the next unplayed game (matches nflreadpy's use_date=False path).
rosterboolFalseForwarded to get_current_nfl_season() for season inference.

Returns

The current week, capped at 22.

Example

from sportsdataverse.nfl import get_current_nfl_week
week = get_current_nfl_week()

Schedule-driven week (hits the live schedule parquet)::

week_live = get_current_nfl_week(use_date=False)

Roster-year season inference::

week_roster = get_current_nfl_week(roster=True)

Pair with a PBP fetch to grab only the most recent season+week::

import polars as pl
from sportsdataverse.nfl import (
get_current_nfl_season, get_current_nfl_week, load_nfl_pbp,
)
current_pbp = (
load_nfl_pbp(seasons=[get_current_nfl_season()])
.filter(pl.col("week") == get_current_nfl_week())
)

get_current_season(roster: 'bool' = False) -> 'int'

Return the current NFL season year.

Parameters

ParameterTypeDefaultDescription
rosterboolFalseIf True, use roster-year logic (current calendar year on/after March 15, otherwise previous year). If False, use season logic (current calendar year on/after the Thursday following Labor Day, otherwise previous year).

Returns

The current season (or roster) year.

Example

from sportsdataverse.nfl import get_current_nfl_season
season = get_current_nfl_season()
print(season)

Roster-year semantics (March 15 cutover)::

roster_year = get_current_nfl_season(roster=True)

Pair with a loader to fetch only the active season::

from sportsdataverse.nfl import load_nfl_schedule
schedule = load_nfl_schedule(seasons=[get_current_nfl_season()])

get_current_week(use_date: 'bool' = True, roster: 'bool' = False) -> 'int'

Return the current NFL week (1-22).

Parameters

ParameterTypeDefaultDescription
use_dateboolTrueIf True (default), compute the week purely from the calendar (number of weeks since the first Thursday of September of the current season). If False, hit the live schedule via load_nfl_schedule() and return the week of the next unplayed game (matches nflreadpy's use_date=False path).
rosterboolFalseForwarded to get_current_nfl_season() for season inference.

Returns

The current week, capped at 22.

Example

from sportsdataverse.nfl import get_current_nfl_week
week = get_current_nfl_week()

Schedule-driven week (hits the live schedule parquet)::

week_live = get_current_nfl_week(use_date=False)

Roster-year season inference::

week_roster = get_current_nfl_week(roster=True)

Pair with a PBP fetch to grab only the most recent season+week::

import polars as pl
from sportsdataverse.nfl import (
get_current_nfl_season, get_current_nfl_week, load_nfl_pbp,
)
current_pbp = (
load_nfl_pbp(seasons=[get_current_nfl_season()])
.filter(pl.col("week") == get_current_nfl_week())
)

most_recent_nfl_season(roster: 'bool' = False) -> 'int'

Alias for get_current_nfl_season() mirroring nflreadr's

most_recent_season().

Parameters

ParameterTypeDefaultDescription
rosterboolFalse

Example

from sportsdataverse.nfl.utils_date import most_recent_nfl_season
season = most_recent_nfl_season()

Roster-year flavor::

roster_year = most_recent_nfl_season(roster=True)

Other

NflConfig(cache_mode: 'CacheMode' = 'memory', cache_dir: 'Optional[Path]' = None, cache_duration: 'int' = 86400, verbose: 'bool' = True, timeout: 'int' = 30, user_agent: 'str' = 'sportsdataverse-py-nfl') -> None

Runtime configuration for sdv-py NFL loaders.

Fields mirror nflreadpy's NflreadpyConfig so users can swap engines without changing call sites. The defaults are conservative: in-memory caching with a 24-hour TTL, verbose progress bars on, 30-second HTTP timeout.

Parameters

ParameterTypeDefaultDescription
cache_modeCacheMode'memory'
cache_dirOptional[Path]None
cache_durationint86400
verboseboolTrue
timeoutint30
user_agentstr'sportsdataverse-py-nfl'

Example

from sportsdataverse.nfl import get_config
cfg = get_config() # NflConfig instance
cfg.cache_mode # "memory"
cfg.cache_duration # 86400 (24h)
cfg.timeout # 30 (seconds)

Construct a fresh instance directly (rarely needed -- prefer
``update_config``)::

from sportsdataverse.nfl import NflConfig
cfg = NflConfig(cache_mode="off", timeout=10)

cached_loader(func: 'F') -> 'F'

Decorator that adds caching to a load_nfl_* function.

Honors the active NflConfig.cache_mode: - memory: dict-based per-process cache. - filesystem: parquet-based cross-process cache under cache_dir. - off: no caching, function runs every time. The cache key is the hash of (qualified_name, args, kwargs) with return_as_pandas excluded so memory / disk hits work regardless of which return shape the caller asked for. The cache always stores the polars frame internally and converts to pandas on read when requested.

Parameters

ParameterTypeDefaultDescription
funcF

Example

import polars as pl
from sportsdataverse.nfl.cache import cached_loader

@cached_loader
def load_my_thing(season: int, return_as_pandas: bool = False):
# ... fetch parquet, build a polars frame ...
return pl.DataFrame({"season": [season]})

df1 = load_my_thing(2024) # network hit, populates cache
df2 = load_my_thing(2024) # served from cache
df_pd = load_my_thing(2024, return_as_pandas=True)
# `return_as_pandas` is excluded from the cache key, so the
# polars hit is reused and converted to pandas on the way out.

Switch caching modes at runtime::

from sportsdataverse.nfl import clear_cache, update_config

update_config(cache_mode="filesystem") # parquet-on-disk reuse
df3 = load_my_thing(2024) # writes parquet under cache_dir
clear_cache() # wipe both memory + filesystem
update_config(cache_mode="off") # bypass cache entirely

clear_cache() -> 'None'

Clear both memory and filesystem caches.

Memory: empties the in-process dict. Filesystem: removes all entries under config.cache_dir. The directory itself is preserved so subsequent writes succeed without needing mkdir.

Example

from sportsdataverse.nfl import clear_cache, load_nfl_pbp
clear_cache()
pbp = load_nfl_pbp(seasons=[2024])

Pair with a cache-mode switch::

from sportsdataverse.nfl import clear_cache, update_config
update_config(cache_mode="filesystem")
# ... lots of cached calls accumulate parquet files on disk ...
clear_cache() # wipe disk + memory together

espn_nfl_teams(return_as_pandas=False, **kwargs) -> 'pl.DataFrame'

espn_nfl_teams - look up NFL teams

Parameters

ParameterTypeDefaultDescription
return_as_pandasboolFalseIf True, returns a pandas dataframe. If False, returns a polars dataframe.

Returns

Polars dataframe containing teams for the requested league. This function caches by default, so if you want to refresh the data, use the command sportsdataverse.nfl.espn_nfl_teams.clear_cache().

col_nametypedescription
team_abbreviationcharacterShort team abbreviation (e.g. 'LAS').
team_alternate_colorcharacterTeam alternate color (hex without leading '#').
team_colorcharacterTeam primary color (hex without leading '#').
team_display_namecharacterFull team display name.
team_idcharacterUnique team identifier.
team_is_activelogicalTRUE if the team is currently active.
team_is_all_starlogicalTRUE if the row represents an All-Star team.
team_locationcharacterTeam city or location string.
team_logosinteger
team_namecharacterFull team display name (e.g. 'Las Vegas Aces').
team_nicknamecharacterTeam nickname.
team_short_display_namecharacterShort team display name (e.g. 'Aces').
team_slugcharacterURL-safe team identifier (e.g. 'lasvegas-aces' / 'aces').
team_uidcharacterESPN universal team identifier (UID format 's:40~l:...~t:...').

Example

from sportsdataverse.nfl import espn_nfl_teams
teams = espn_nfl_teams()
teams.shape

Pandas round-trip::

teams_pd = espn_nfl_teams(return_as_pandas=True)
teams_pd[["team_abbreviation", "team_display_name"]].head()

Force a refresh after upstream ESPN updates::

espn_nfl_teams.cache_clear() # underlying lru_cache
teams = espn_nfl_teams()

get_config() -> 'NflConfig'

Return the live NflConfig singleton.

The same object is returned on every call; mutate via update_config rather than reassigning fields directly so future hooks (e.g. logging on config change) have a single choke point.

Example

from sportsdataverse.nfl import get_config
cfg = get_config()
print(cfg.cache_mode, cfg.cache_duration, cfg.cache_dir)

Pair with ``update_config`` to verify a change took effect::

from sportsdataverse.nfl import update_config, get_config
update_config(cache_mode="off")
assert get_config().cache_mode == "off"

nfl_game_details(game_id=None, headers=None, raw=False) -> 'Dict'

nfl_game_details() -- pull full api.nfl.com game details by game id.

Parameters

ParameterTypeDefaultDescription
game_idstrNoneUUID-style game id from api.nfl.com (e.g. '7ae87c4c-d24c-11ec-b23d-d15a91047884').
headersDict[str, str] | NoneNonePre-built header dict (skip the auth roundtrip). Defaults to a fresh nfl_headers_gen() call.
rawboolFalseIf True, return the ESPN payload untouched. If False (default), normalize keys to the expected schema (filling missing keys with empty dicts/lists).

Returns

Dictionary of game details (drives, plays, scoring summaries, timeouts, weather, attendance, etc.).

Example

from sportsdataverse.nfl.nfl_games import nfl_game_details
details = nfl_game_details(game_id="7ae87c4c-d24c-11ec-b23d-d15a91047884")
sorted(details.keys())[:5]

Reuse headers across many calls (avoids re-minting tokens)::

from sportsdataverse.nfl.nfl_games import nfl_game_details, nfl_headers_gen
hdrs = nfl_headers_gen()
details = nfl_game_details(
game_id="7ae87c4c-d24c-11ec-b23d-d15a91047884", headers=hdrs
)

Raw passthrough::

raw = nfl_game_details(
game_id="7ae87c4c-d24c-11ec-b23d-d15a91047884", raw=True
)

nfl_game_schedule(season=2021, season_type='REG', week=1, headers=None, raw=False) -> 'Dict'

nfl_game_schedule() -- list api.nfl.com games for a season/week slice.

Parameters

ParameterTypeDefaultDescription
seasonint2021season year (e.g. 2024).
season_typestr'REG'season type. One of "REG" or "POST".
weekint1week number (1-18 regular season, 1-4 post-season).
headersDict[str, str] | NoneNonePre-built header dict. Defaults to a fresh nfl_headers_gen() call.
rawboolFalseCurrently ignored -- the function always returns the raw NFL.com summary payload.

Returns

Dictionary with the games list under "games" plus pagination metadata.

Example

from sportsdataverse.nfl.nfl_games import nfl_game_schedule
week_one = nfl_game_schedule(season=2024, season_type="REG", week=1)

Wild Card weekend (post-season)::

wild_card = nfl_game_schedule(season=2023, season_type="POST", week=1)

Reuse headers across many calls::

from sportsdataverse.nfl.nfl_games import nfl_game_schedule, nfl_headers_gen
hdrs = nfl_headers_gen()
for week in range(1, 19):
summary = nfl_game_schedule(
season=2024, season_type="REG", week=week, headers=hdrs,
)

nfl_headers_gen()

Build the full request-header dict expected by api.nfl.com.

Mints a fresh bearer token via :func:nfl_token_gen and combines it with the browser-style headers (Origin, Referer, User-Agent, Sec-Fetch-*, etc.) the NFL.com web app sends on every request.

Returns

Header dict ready to drop into requests.get.

Example

from sportsdataverse.nfl.nfl_games import (
nfl_headers_gen, nfl_game_schedule,
)
hdrs = nfl_headers_gen()
week_one = nfl_game_schedule(season=2024, season_type="REG", week=1, headers=hdrs)
week_two = nfl_game_schedule(season=2024, season_type="REG", week=2, headers=hdrs)

nfl_token_gen()

Mint a fresh api.nfl.com access token via the public reroute endpoint.

Wraps the unauthenticated client_credentials grant the NFL.com web app uses. The returned bearer token is what nfl_headers_gen() puts on the Authorization header.

Returns

The access token string.

Example

from sportsdataverse.nfl.nfl_games import nfl_token_gen
token = nfl_token_gen()
assert isinstance(token, str)

Pair with a downstream call (``nfl_headers_gen`` does this for you)::

import requests
token = nfl_token_gen()
headers = {"Authorization": f"Bearer {token}"}

reset_config() -> 'NflConfig'

Reset the active config to its env-var-derived defaults.

Convenience for tests / interactive sessions that want to undo a chain of update_config() calls without restarting the interpreter.

Example

from sportsdataverse.nfl import update_config, reset_config
update_config(cache_mode="off", timeout=5)
# ... do work ...
reset_config() # back to env-derived defaults

scoreboard_event_parsing(event)

Normalize one ESPN scoreboard event into a flatter shape.

Splits the competitors list into home / away siblings, hoists notes / broadcast metadata onto the competition root, and drops the fields the schedule helper does not need (odds, leaders, geoBroadcasts, etc.). Used internally by :func:espn_nfl_schedule.

Parameters

ParameterTypeDefaultDescription
eventDictA single events[i] dict from the ESPN scoreboard endpoint.

Returns

The mutated event dict with normalized home / away / broadcast keys.

Example

from sportsdataverse.dl_utils import download
from sportsdataverse.nfl.nfl_schedule import scoreboard_event_parsing
url = "http://site.api.espn.com/apis/site/v2/sports/football/nfl/scoreboard"
payload = download(url=url).json()
for ev in payload.get("events", []):
scoreboard_event_parsing(ev)
ev["competitions"][0]["home"]["abbreviation"]

update_config(**kwargs: 'object') -> 'NflConfig'

Update the active config in place.

Pass keyword arguments matching NflConfig fields:: update_config(cache_mode="filesystem", cache_duration=3600) String values for cache_dir are coerced to pathlib.Path and ~ is expanded for convenience.

Returns

The (mutated) global config object, for chaining or inspection.

Example

from sportsdataverse.nfl import update_config
update_config(cache_mode="filesystem", cache_duration=3600)

Disable caching for development::

update_config(cache_mode="off")

Point cache at a custom directory::

update_config(cache_dir="~/sdv-cache")