Skip to main content

NFL — ESPN site API (v2)

sportsdataverse.nfl — 24 endpoints.

espn_nfl_scoreboard​

ESPN endpoint.

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/football/nfl/scoreboard

Valid URL: https://site.api.espn.com/apis/site/v2/sports/football/nfl/scoreboard?dates=20240115&limit=500

API ParameterPythonPatternRequiredNullableDescription
datesdatesYDate or date range filter (YYYYMMDD or YYYYMMDD-YYYYMMDD).
weekweekYWeek number within the season.
seasontypeseason_typeYSeason phase: 1=preseason, 2=regular season, 3=postseason.
groupsgroupsYConference or group id filter (e.g. an ESPN conference id).
limitlimitYMaximum number of items to return.

Returns​

return_parsed=True (default) — a tidy polars.DataFrame with the columns below; pass return_as_pandas=True for a pandas.DataFrame.

col_nametypedescription
game_idInt64ESPN event id.
uidString
dateStringMatch start timestamp (ISO 8601, UTC).
nameStringFull event name (e.g. 'Team A at Team B').
short_nameStringAbbreviated event name (e.g. 'TA @ TB').
season_yearInt64Integer season year ESPN assigns the event (e.g. 2025 for the 2025-26 season).
season_typeInt64ESPN season-type id of the event's season: 1 preseason, 2 regular season, 3 postseason, 4 offseason for the US leagues; soccer competitions carry their own competition-specific ids (e.g. 13481).
season_slugStringESPN slug of the event's season type (e.g. 'regular-season', 'post-season'; soccer competitions use their own, such as 'final' or 'torneo-apertura').
status_type_idInt64
status_type_nameString
status_type_stateString
status_type_completedBoolean
status_type_descriptionString
status_type_detailString
status_type_short_detailString
status_clockFloat64Game clock in seconds as ESPN reports it: time remaining in the period for clock sports, elapsed seconds for soccer (e.g. 5400.0 at full time); 0.0 once a game has ended.
status_display_clockString
status_periodInt64Current or final period number (quarter, half, inning or period, depending on the sport).
neutral_siteBooleanWhether the match is played at a neutral venue.
conference_competitionBoolean
attendanceInt64
venue_idInt64
venue_full_nameString
venue_cityString
venue_stateString
venue_indoorBoolean
broadcastStringEvery network name of the competition in feed order, deduped and ", "-joined (an entry with no names gives its market); "" when the game lists no broadcast.
noteStringEvent note text from the competition (e.g. a series or game label such as 'World Series - Game 1', or a shootout result); an empty string when there is none.
home_idInt64
home_nameString
home_abbreviationString
home_display_nameString
home_locationString
home_colorString
home_alternate_colorString
home_logoString
home_scoreStringHome team's score. For cricket, the innings string (e.g. '161/5 (18/20 ov, target 156)').
home_winnerBoolean
home_rankString
away_idInt64
away_nameString
away_abbreviationString
away_display_nameString
away_locationString
away_colorString
away_alternate_colorString
away_logoString
away_scoreStringAway team's score. For cricket, the innings string.
away_winnerBoolean
away_rankString

return_parsed=False — the raw JSON Dict payload, unparsed.

Raises​

ExceptionDescription
NoDataErrorThe host answered 404 -- the requested resource does not exist.
ValueErrorThe host answered 400 / 422 -- the request is wrong; retrying cannot help.
AssetFetchErrorThe fetch failed (a non-2xx answer or a connection failure after retries, e.g. 401/403/429/5xx, or an empty or unreadable 200 body) -- the answer is unknown, not empty.

Example​

espn_nfl_scoreboard(dates='20240115')

espn_nfl_summary​

ESPN endpoint.

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/football/nfl/summary

Valid URL: https://site.api.espn.com/apis/site/v2/sports/football/nfl/summary

API ParameterPythonPatternRequiredNullableDescription
eventevent_idYevent query parameter.

Returns​

return_parsed=True (default) — a dict of polars.DataFrames keyed by summary section (one table per documented key below); pass return_as_pandas=True for a dict of pandas.DataFrames (same keys).

boxscore_player

col_nametypedescription
team_idInt64Team id.
team_abbreviationStringTeam abbreviation.
team_display_nameStringTeam display name.
team_locationStringTeam location.
athlete_idInt64Athlete id.
athlete_display_nameStringAthlete display name.
athlete_short_nameStringAthlete short name.
athlete_jerseyStringAthlete jersey.
athlete_positionStringAthlete position.
starterStringStarter.
activeStringActive.
did_not_playStringDid not play.
ejectedStringEjected.
reasonStringReason.
completions/passing_attemptsStringPass completion ratio for the player in the box score, expressed as completions divided by pass attempts.
passing_yardsStringNumeric yards by the passer_player_name, including yards gained in pass plays with laterals. This should equal official passing statistics.
yards_per_pass_attemptStringAverage passing yards gained per pass attempt by the player in the box score.
passing_touchdownsStringNumber of touchdown passes thrown by the player in the box score.
interceptionsStringThe number of interceptions thrown.
sacks_sack_yards_lostStringCombined sack statistics for the player, including sack count and total yards lost by the opposing offense.
adj_qbrStringESPN's Adjusted Quarterback Rating for the player, measuring overall passing efficiency on a 0-100 scale.
qb_ratingStringTraditional passer rating for the quarterback in the box score, calculated from completions, yards, touchdowns, and interceptions.
rushing_attemptsString
rushing_yardsStringNumeric yards by the rusher_player_name, excluding yards gained in rush plays with laterals. This should equal official rushing statistics but could miss yards gained in rush plays with laterals. Please see the description of lateral_rusher_player_name for further information.
yards_per_rush_attemptString
rushing_touchdownsStringNumber of rushing touchdowns scored by the player in the box score.
long_rushingStringLongest single rushing gain recorded by the player in the game.
receptionsStringThe number of pass receptions. Lateral receptions officially don't count as reception.
receiving_yardsStringNumeric yards by the receiver_player_name, excluding yards gained in pass plays with laterals. This should equal official receiving statistics but could miss yards gained in pass plays with laterals. Please see the description of lateral_receiver_player_name for further information.
yards_per_receptionStringAverage receiving yards gained per reception by the player in the box score.
receiving_touchdownsStringNumber of receiving touchdowns scored by the player in the box score.
long_receptionStringLongest single reception recorded by the player in the game.
receiving_targetsStringNumber of passing targets directed at the receiver during the game.
fumblesStringNumber of fumbles committed by the player in the box score.
fumbles_lostString
fumbles_recoveredString
total_tacklesStringTotal tackles recorded by the player, including both solo and assisted tackles.
solo_tacklesStringNumber of unassisted tackles recorded by the player in the box score.
sacksStringThe Number of times sacked.
tackles_for_lossString
passes_defendedStringNumber of pass plays disrupted or broken up by the defensive player in the game.
qb_hitsStringNumber of times the player made contact with the opposing quarterback after or during a pass attempt.
defensive_touchdownsStringNumber of touchdowns scored by the player via defensive plays such as interception or fumble returns.
interception_yardsString
interception_touchdownsStringNumber of touchdowns scored by the player on interception return plays.
kick_returnsString
kick_return_yardsString
yards_per_kick_returnStringAverage yards gained per kick return by the player in the box score.
long_kick_returnStringLongest single kick return yardage recorded by the player in the game.
kick_return_touchdownsStringNumber of touchdowns scored on kick returns by the player in the box score.
punt_returnsString
punt_return_yardsString
yards_per_punt_returnStringAverage yards gained per punt return by the player in the box score.
long_punt_returnStringLongest single punt return yardage recorded by the player in the game.
punt_return_touchdownsStringNumber of touchdowns scored on punt returns by the player in the box score.
puntsStringTotal number of punts executed by the player in the box score.
punt_yardsStringTotal yardage of all punts executed by the player in the game.
gross_avg_punt_yardsStringAverage gross punt distance before accounting for returns, recorded for the player in the game.
touchbacksStringNumber of punts or kick-offs by the player that resulted in the opposing team starting from their own end zone.
punts_inside20StringNumber of punts by the player that were downed or stopped inside the opposing team's 20-yard line.
long_puntStringDistance of the longest individual punt executed by the player in the game.
field_goals_made/field_goal_attemptsStringField goal conversion ratio for the player, expressed as field goals made divided by attempts.
field_goal_pctString
long_field_goal_madeStringDistance of the longest successful field goal kicked by the player in the game.
extra_points_made/extra_point_attemptsStringExtra point conversion ratio for the player, expressed as extra points made divided by attempts.
total_kicking_pointsStringTotal points contributed by the player through field goals and extra points in the game.

boxscore_team

col_nametypedescription
team_idInt64Team id.
team_abbreviationStringTeam abbreviation.
team_display_nameStringTeam display name.
home_awayStringHome away.
display_orderInt64Display order.
stat_nameStringStat name.
stat_labelStringStat label.
stat_display_valueStringStat display value.
stat_valueStringStat value.

winprobability

col_nametypedescription
home_win_percentageFloat64Home win percentage.
tie_percentageFloat64Tie percentage.
play_idInt64Play id.

leaders

col_nametypedescription
team_idInt64Team id.
team_abbreviationStringTeam abbreviation.
category_nameStringCategory name.
category_display_nameStringCategory display name.
athlete_idInt64Athlete id.
athlete_display_nameStringAthlete display name.
athlete_positionStringAthlete position.
valueFloat64Value.
display_valueStringDisplay value.
main_statStringMain stat.
summaryStringSummary.

game_info

col_nametypedescription
attendanceInt64Attendance.
venue_idInt64Venue id.
venue_guidStringVenue guid.
venue_full_nameStringVenue full name.
venue_address_cityStringVenue address city.
venue_address_stateStringVenue address state.
venue_address_zip_codeStringPostal zip code of the venue where the game was played.
venue_address_countryStringCountry of the venue where the game was played.
venue_grassBooleanVenue grass.

officials

col_nametypedescription
full_nameStringFull name.
display_nameStringDisplay name.
orderInt64Order.
position_nameStringPosition name.
position_display_nameStringPosition display name.
position_idInt64Position id.

header

col_nametypedescription
idInt64Id.
uidStringUid.
time_validBooleanTime valid.
competitionsStringCompetitions.
linksStringLinks.
weekInt64Season week.
game_noteStringOptional editorial note or context annotation attached to the game in the header.
season_yearInt64Season year.
season_currentBooleanSeason current.
season_typeInt64Season type.
league_idInt64League id.
league_uidStringLeague uid.
league_nameStringLeague name.
league_abbreviationStringLeague abbreviation.
league_slugStringLeague slug.
league_is_tournamentBooleanLeague is tournament.
league_linksStringLeague links.
league_logosStringLeague logos.

standings

col_nametypedescription
group_headerStringGroup header.
conference_headerStringConference header.
division_headerStringDivision header.
team_idInt64Team id.
team_uidStringTeam uid.
team_locationStringTeam location.
lossesStringLosses.
points_againstString
points_forString
tiesString
win_percentStringWin percent.
winsStringWins.
overallString

format

col_nametypedescription
regulation_periodsInt64Regulation periods.
regulation_display_nameStringRegulation display name.
regulation_slugStringRegulation slug.
regulation_clockFloat64Regulation clock.
overtime_display_nameStringOvertime display name.
overtime_slugStringOvertime slug.
overtime_clockFloat64Overtime clock.
sudden_death_periodsInt64Number of sudden-death overtime periods defined in the game format rules.
sudden_death_clockFloat64Clock duration or time limit for sudden-death overtime periods as defined in the game format.

article

col_nametypedescription
idInt64Id.
now_idStringNow id.
content_keyStringContent key.
data_source_identifierStringData source identifier.
publishedkeyStringPublishedkey.
typeStringType.
game_idInt64Game id.
headlineStringHeadline.
descriptionStringDescription.
link_textStringLink text.
categorizedStringCategorized.
originally_postedStringOriginally posted.
last_modifiedStringLast modified.
publishedStringPublished.
sectionStringSection.
sourceStringSource.
imagesStringImages.
videoStringVideo.
categoriesStringCategories.
keywordsStringKeywords.
storyStringStory.
premiumBooleanPremium.
is_live_blogBooleanIs live blog.
allow_commentsBooleanAllow comments.
allow_searchBooleanAllow search.
allow_content_reactionsBooleanAllow content reactions.
links_web_hrefStringLinks web href.
links_mobile_hrefStringLinks mobile href.
links_api_self_hrefStringLinks api self href.
links_app_sportscenter_hrefStringLinks app sportscenter href.

injuries

col_nametypedescription
injuriesStringInjuries.
team_idInt64Team id.
team_uidStringTeam uid.
team_display_nameStringTeam display name.
team_abbreviationStringTeam abbreviation.
team_linksStringTeam links.
team_logoStringTeam logo.
team_logosStringTeam logos.

news

col_nametypedescription
idInt64Id.
now_idStringNow id.
content_keyStringContent key.
data_source_identifierStringData source identifier.
typeStringType.
headlineStringHeadline.
descriptionStringDescription.
last_modifiedStringLast modified.
publishedStringPublished.
imagesStringImages.
categoriesStringCategories.
premiumBooleanPremium.
bylineStringByline.
links_web_hrefStringLinks web href.
links_mobile_hrefStringLinks mobile href.
links_api_self_hrefStringLinks api self href.
links_app_sportscenter_hrefStringLinks app sportscenter href.

drives

col_nametypedescription
idInt64Id.
descriptionStringDescription.
yardsInt64The number of receiving yards
is_scoreBoolean
offensive_playsInt64
resultStringThe number of points the home team scored minus the number of points the visiting team scored. Equals h_score - v_score. Is NA for games which haven't yet been played. Convenient for evaluating against the spread bets.
short_display_resultString
display_resultString
playsString
team_idInt64Team id.
team_nameStringFull display name of the team.
team_abbreviationStringTeam abbreviation.
team_display_nameStringTeam display name.
team_short_display_nameString
team_logosStringTeam logos.
start_period_typeString
start_period_numberInt64Period or quarter number in which the drive or sequence began.
start_clock_display_valueStringGame clock time displayed at the start of the drive or scoring sequence.
start_yard_lineInt64
start_textString
end_period_typeString
end_period_numberInt64Period or quarter number in which the drive or sequence ended.
end_clock_display_valueStringGame clock time displayed at the end of the drive or scoring sequence.
end_yard_lineInt64String indicating the yardline at the end of the given play consisting of team half and yard line number.
end_textString
time_elapsed_display_valueStringHuman-readable duration of time elapsed during the drive or scoring sequence.

drive_plays

col_nametypedescription
drive_idInt64
drive_sequenceInt64Sequential position of the drive within the game's broadcast or play-by-play listing.
idInt64Id.
sequence_numberStringSequence number.
textStringText.
away_scoreInt64Away score.
home_scoreInt64Home score.
scoring_playBooleanScoring play.
priorityBoolean
modifiedString
wallclockStringWallclock.
team_participantsStringTeams or participants associated with a specific drive or sequence in the broadcast record.
is_penaltyBoolean
stat_yardageInt64
is_turnoverBoolean
type_idInt64Type id.
type_textStringType text.
type_abbreviationString
period_numberInt64Period number.
clock_display_valueStringClock display value.
start_downInt64
start_distanceInt64
start_yard_lineInt64
start_yards_to_endzoneInt64
start_team_idInt64
end_downInt64
end_distanceInt64
end_yard_lineInt64String indicating the yardline at the end of the given play consisting of team half and yard line number.
end_yards_to_endzoneInt64
end_down_distance_textString
end_short_down_distance_textString
end_possession_textString
end_team_idInt64
start_down_distance_textString
start_short_down_distance_textString
start_possession_textString
scoring_type_nameString
scoring_type_display_nameString
scoring_type_abbreviationString
point_after_attempt_idInt64
point_after_attempt_textString
point_after_attempt_abbreviationString
point_after_attempt_valueFloat64

scoring_plays

col_nametypedescription
idInt64Id.
textStringText.
away_scoreInt64Away score.
home_scoreInt64Home score.
type_idInt64Type id.
type_textStringType text.
type_abbreviationString
period_numberInt64Period number.
clock_valueFloat64
clock_display_valueStringClock display value.
team_idInt64Team id.
team_uidStringTeam uid.
team_display_nameStringTeam display name.
team_abbreviationStringTeam abbreviation.
team_linksStringTeam links.
team_logoStringTeam logo.
team_logosStringTeam logos.
scoring_type_nameString
scoring_type_display_nameString
scoring_type_abbreviationString

return_parsed=False — the raw JSON Dict payload, unparsed.

Raises​

ExceptionDescription
NoDataErrorThe host answered 404 -- the requested resource does not exist.
ValueErrorThe host answered 400 / 422 -- the request is wrong; retrying cannot help.
AssetFetchErrorThe fetch failed (a non-2xx answer or a connection failure after retries, e.g. 401/403/429/5xx, or an empty or unreadable 200 body) -- the answer is unknown, not empty.

Example​

espn_nfl_summary()

espn_nfl_calendar_site​

ESPN endpoint.

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/football/nfl/calendar

Valid URL: https://site.api.espn.com/apis/site/v2/sports/football/nfl/calendar

API ParameterPythonPatternRequiredNullableDescription

Returns​

return_parsed=True (default) — the output of parse_items; pass return_as_pandas=True for a pandas.DataFrame.

No returns table is published for this endpoint: no capture: 404 in nba, nfl, mlb, nhl, wnba, cfb, mbb, wbb with the documented example arguments (2026-10-07).

return_parsed=False — the raw JSON Dict payload, unparsed.

Raises​

ExceptionDescription
NoDataErrorThe host answered 404 -- the requested resource does not exist.
ValueErrorThe host answered 400 / 422 -- the request is wrong; retrying cannot help.
AssetFetchErrorThe fetch failed (a non-2xx answer or a connection failure after retries, e.g. 401/403/429/5xx, or an empty or unreadable 200 body) -- the answer is unknown, not empty.

Example​

espn_nfl_calendar_site()

espn_nfl_news​

ESPN endpoint.

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/football/nfl/news

Valid URL: https://site.api.espn.com/apis/site/v2/sports/football/nfl/news?limit=50

API ParameterPythonPatternRequiredNullableDescription
limitlimitYMaximum number of items to return.

Returns​

return_parsed=True (default) — a tidy polars.DataFrame with the columns below; pass return_as_pandas=True for a pandas.DataFrame.

col_nametypedescription
idInt64ESPN numeric identifier for the article.
now_idStringESPN 'now' feed id.
content_keyStringInternal content key.
data_source_identifierStringSource-system identifier.
typeStringArticle type (Story, Media, HeadlineNews, etc.).
headlineStringArticle headline.
descriptionStringArticle summary/description.
last_modifiedStringLast-modified timestamp (ISO 8601).
publishedStringPublish timestamp (ISO 8601).
imagesStringArticle images (list, stringified).
categoriesStringArticle categories (list, stringified).
premiumBooleanWhether the article is premium/paywalled.
bylineStringAuthor byline string as published by ESPN.
links_web_hrefStringWeb article URL.
links_mobile_hrefStringMobile article URL.
links_api_self_hrefStringESPN API canonical self-link for the article resource.
links_app_sportscenter_hrefStringSportsCenter app deep link.

return_parsed=False — the raw JSON Dict payload, unparsed.

Raises​

ExceptionDescription
NoDataErrorThe host answered 404 -- the requested resource does not exist.
ValueErrorThe host answered 400 / 422 -- the request is wrong; retrying cannot help.
AssetFetchErrorThe fetch failed (a non-2xx answer or a connection failure after retries, e.g. 401/403/429/5xx, or an empty or unreadable 200 body) -- the answer is unknown, not empty.

Example​

espn_nfl_news()

espn_nfl_injuries​

ESPN endpoint.

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/football/nfl/injuries

Valid URL: https://site.api.espn.com/apis/site/v2/sports/football/nfl/injuries

API ParameterPythonPatternRequiredNullableDescription

Returns​

return_parsed=True (default) — a tidy polars.DataFrame with the columns below; pass return_as_pandas=True for a pandas.DataFrame.

col_nametypedescription
idInt64ESPN numeric identifier for the athlete.
display_nameStringAthlete's full display name as shown on ESPN.
injuriesStringInjury entries for the athlete (list of dicts, stringified): status, type, details, dates.

return_parsed=False — the raw JSON Dict payload, unparsed.

Raises​

ExceptionDescription
NoDataErrorThe host answered 404 -- the requested resource does not exist.
ValueErrorThe host answered 400 / 422 -- the request is wrong; retrying cannot help.
AssetFetchErrorThe fetch failed (a non-2xx answer or a connection failure after retries, e.g. 401/403/429/5xx, or an empty or unreadable 200 body) -- the answer is unknown, not empty.

Example​

espn_nfl_injuries()

espn_nfl_transactions​

ESPN endpoint.

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/football/nfl/transactions

Valid URL: https://site.api.espn.com/apis/site/v2/sports/football/nfl/transactions?limit=500

API ParameterPythonPatternRequiredNullableDescription
limitlimitYMaximum number of items to return.

Returns​

return_parsed=True (default) — a tidy polars.DataFrame with the columns below; pass return_as_pandas=True for a pandas.DataFrame.

col_nametypedescription
dateString
descriptionString
team_abbreviationString
team_alternate_colorString
team_colorString
team_display_nameString
team_idInt64
team_linksString
team_locationString
team_logosString
team_nameString

return_parsed=False — the raw JSON Dict payload, unparsed.

Raises​

ExceptionDescription
NoDataErrorThe host answered 404 -- the requested resource does not exist.
ValueErrorThe host answered 400 / 422 -- the request is wrong; retrying cannot help.
AssetFetchErrorThe fetch failed (a non-2xx answer or a connection failure after retries, e.g. 401/403/429/5xx, or an empty or unreadable 200 body) -- the answer is unknown, not empty.

Example​

espn_nfl_transactions()

espn_nfl_conferences​

ESPN endpoint.

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/football/nfl/groups

Valid URL: https://site.api.espn.com/apis/site/v2/sports/football/nfl/groups

API ParameterPythonPatternRequiredNullableDescription

Returns​

return_parsed=True (default) — a tidy polars.DataFrame with the columns below; pass return_as_pandas=True for a pandas.DataFrame.

col_nametypedescription
group_idInt64
nameStringName, as reported by MFL but reordered into FirstName LastName instead of Last, First
abbreviationString
short_nameStringPlayer short name (i.e. "F.Last")
is_conferenceBoolean
parent_group_idInt64
depthInt64
children_countInt64

return_parsed=False — the raw JSON Dict payload, unparsed.

Raises​

ExceptionDescription
NoDataErrorThe host answered 404 -- the requested resource does not exist.
ValueErrorThe host answered 400 / 422 -- the request is wrong; retrying cannot help.
AssetFetchErrorThe fetch failed (a non-2xx answer or a connection failure after retries, e.g. 401/403/429/5xx, or an empty or unreadable 200 body) -- the answer is unknown, not empty.

Example​

espn_nfl_conferences()

espn_nfl_statistics_league​

ESPN endpoint.

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/football/nfl/statistics

Valid URL: https://site.api.espn.com/apis/site/v2/sports/football/nfl/statistics

API ParameterPythonPatternRequiredNullableDescription

Returns​

return_parsed=True (default) — the output of parse_items; pass return_as_pandas=True for a pandas.DataFrame.

No returns table is published for this endpoint: parser: parse_items returns no columns on the live payload (nba, nfl, mlb, nhl, wnba, cfb, mbb, wbb, 2026-10-07); its rows sit under keys it does not read (top level: league, season, status, timestamp).

return_parsed=False — the raw JSON Dict payload, unparsed.

Raises​

ExceptionDescription
NoDataErrorThe host answered 404 -- the requested resource does not exist.
ValueErrorThe host answered 400 / 422 -- the request is wrong; retrying cannot help.
AssetFetchErrorThe fetch failed (a non-2xx answer or a connection failure after retries, e.g. 401/403/429/5xx, or an empty or unreadable 200 body) -- the answer is unknown, not empty.

Example​

espn_nfl_statistics_league()

espn_nfl_draft​

ESPN endpoint.

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/football/nfl/draft

Valid URL: https://site.api.espn.com/apis/site/v2/sports/football/nfl/draft

API ParameterPythonPatternRequiredNullableDescription

Returns​

return_parsed=True (default) — the output of parse_items; pass return_as_pandas=True for a pandas.DataFrame.

No returns table is published for this endpoint: parser: parse_items returns no columns on the live payload (nba, nfl, nhl, wnba, 2026-10-07); its rows sit under keys it does not read (top level: breakingNews, broadcasts, displayName, picks, positions, rounds, shortDisplayName, status).

return_parsed=False — the raw JSON Dict payload, unparsed.

Raises​

ExceptionDescription
NoDataErrorThe host answered 404 -- the requested resource does not exist.
ValueErrorThe host answered 400 / 422 -- the request is wrong; retrying cannot help.
AssetFetchErrorThe fetch failed (a non-2xx answer or a connection failure after retries, e.g. 401/403/429/5xx, or an empty or unreadable 200 body) -- the answer is unknown, not empty.

Example​

espn_nfl_draft()

espn_nfl_teams_site​

ESPN endpoint.

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/football/nfl/teams

Valid URL: https://site.api.espn.com/apis/site/v2/sports/football/nfl/teams?limit=1000

API ParameterPythonPatternRequiredNullableDescription
limitlimitYMaximum number of items to return.

Returns​

return_parsed=True (default) — a tidy polars.DataFrame with the columns below; pass return_as_pandas=True for a pandas.DataFrame.

col_nametypedescription
team_abbreviationStringShort team abbreviation (e.g. "BOS").
team_alternate_colorStringSecondary team color as a hex string (no leading '#').
team_colorStringPrimary team color as a hex string (no leading '#').
team_display_nameStringFull team display name (location + nickname).
team_idInt64ESPN team id (stable join key across ESPN endpoints).
team_is_activeBooleanWhether the team is currently active.
team_is_all_starBooleanWhether the entry is an all-star squad rather than a franchise.
team_locationStringTeam location / city (e.g. "Boston").
team_logosStringPipe-delimited logo image URLs.
team_nameStringTeam nickname/mascot (e.g. "Celtics").
team_nicknameStringTeam nickname as ESPN labels it (often equals team_name).
team_short_display_nameStringAbbreviated display name for compact UIs.
team_slugStringURL slug used in ESPN web paths.
team_uidStringESPN global UID (encodes sport/league/team).

return_parsed=False — the raw JSON Dict payload, unparsed.

Raises​

ExceptionDescription
NoDataErrorThe host answered 404 -- the requested resource does not exist.
ValueErrorThe host answered 400 / 422 -- the request is wrong; retrying cannot help.
AssetFetchErrorThe fetch failed (a non-2xx answer or a connection failure after retries, e.g. 401/403/429/5xx, or an empty or unreadable 200 body) -- the answer is unknown, not empty.

Example​

espn_nfl_teams_site()

espn_nfl_team​

ESPN endpoint.

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/football/nfl/teams/{team_id}

Valid URL: https://site.api.espn.com/apis/site/v2/sports/football/nfl/teams/4

API ParameterPythonPatternRequiredNullableDescription
team_idteam_idYteam_id path parameter.

Returns​

return_parsed=True (default) — a tidy polars.DataFrame with the columns below; pass return_as_pandas=True for a pandas.DataFrame.

col_nametypedescription
team_abbreviationString
team_alternate_colorString
team_colorString
team_display_nameString
team_franchise_$refString
team_franchise_abbreviationString
team_franchise_colorString
team_franchise_display_nameString
team_franchise_idInt64
team_franchise_is_activeBoolean
team_franchise_locationString
team_franchise_nameString
team_franchise_short_display_nameString
team_franchise_slugString
team_franchise_team_$refString
team_franchise_uidString
team_franchise_venue_$refString
team_franchise_venue_address_cityString
team_franchise_venue_address_stateString
team_franchise_venue_full_nameString
team_franchise_venue_grassBoolean
team_franchise_venue_guidString
team_franchise_venue_idInt64
team_franchise_venue_imagesString
team_franchise_venue_indoorBoolean
team_franchise_venue_short_nameString
team_groups_idInt64
team_groups_is_conferenceBoolean
team_groups_parent_idInt64
team_idInt64
team_is_activeBoolean
team_linksString
team_locationString
team_logosString
team_nameString
team_next_eventString
team_record_itemsString
team_short_display_nameString
team_slugString
team_standing_summaryString
team_uidString

return_parsed=False — the raw JSON Dict payload, unparsed.

Raises​

ExceptionDescription
NoDataErrorThe host answered 404 -- the requested resource does not exist.
ValueErrorThe host answered 400 / 422 -- the request is wrong; retrying cannot help.
AssetFetchErrorThe fetch failed (a non-2xx answer or a connection failure after retries, e.g. 401/403/429/5xx, or an empty or unreadable 200 body) -- the answer is unknown, not empty.

Example​

espn_nfl_team(team_id='4')

espn_nfl_team_roster​

ESPN endpoint.

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/football/nfl/teams/{team_id}/roster

Valid URL: https://site.api.espn.com/apis/site/v2/sports/football/nfl/teams/4/roster?limit=500

API ParameterPythonPatternRequiredNullableDescription
team_idteam_idYteam_id path parameter.
limitlimitYMaximum number of items to return.

Returns​

return_parsed=True (default) — a tidy polars.DataFrame with the columns below; pass return_as_pandas=True for a pandas.DataFrame.

col_nametypedescription
position_groupStringPostion group of player as listed by NFL
idInt64Id.
uidStringUid.
guidStringGuid.
first_nameStringFirst name.
last_nameStringLast name.
full_nameStringFull name.
display_nameStringDisplay name.
short_nameStringShort name.
weightFloat64Weight.
display_weightStringDisplay weight.
heightFloat64Height.
display_heightStringDisplay height.
linksStringLinks.
slugStringSlug.
jerseyStringJersey.
injuriesStringInjuries.
contractsStringContracts.
alternate_ids_sdrStringAlternate ids sdr.
birth_place_cityStringBirth place city.
birth_place_stateStringBirth place state.
birth_place_countryStringBirth place country.
college_idInt64College id.
college_guidStringCollege guid.
college_mascotStringCollege mascot.
college_nameStringCollege name.
college_short_nameStringCollege short name.
college_abbrevStringCollege abbrev.
college_logosStringCollege logos.
headshot_hrefStringHeadshot href.
headshot_altStringHeadshot alt.
position_idInt64Position id.
position_nameStringPosition name.
position_display_nameStringPosition display name.
position_abbreviationStringPosition abbreviation.
position_leafBooleanPosition leaf.
position_parent_idInt64
position_parent_nameString
position_parent_display_nameString
position_parent_abbreviationString
position_parent_leafBoolean
experience_yearsInt64Experience years.
status_idInt64Status id.
status_nameStringStatus name.
status_typeStringStatus type.
status_abbreviationStringStatus abbreviation.
ageFloat64Age.
date_of_birthStringDate of birth.
debut_yearFloat64Debut year.
hand_typeStringHand type.
hand_abbreviationStringHand abbreviation.
hand_display_valueStringHand display value.

return_parsed=False — the raw JSON Dict payload, unparsed.

Raises​

ExceptionDescription
NoDataErrorThe host answered 404 -- the requested resource does not exist.
ValueErrorThe host answered 400 / 422 -- the request is wrong; retrying cannot help.
AssetFetchErrorThe fetch failed (a non-2xx answer or a connection failure after retries, e.g. 401/403/429/5xx, or an empty or unreadable 200 body) -- the answer is unknown, not empty.

Example​

espn_nfl_team_roster(team_id='4')

espn_nfl_team_schedule​

ESPN endpoint.

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/football/nfl/teams/{team_id}/schedule

Valid URL: https://site.api.espn.com/apis/site/v2/sports/football/nfl/teams/4/schedule

API ParameterPythonPatternRequiredNullableDescription
team_idteam_idYteam_id path parameter.
seasonseasonYSeason year (e.g. 2024).

Returns​

return_parsed=True (default) — a tidy polars.DataFrame with the columns below; pass return_as_pandas=True for a pandas.DataFrame.

col_nametypedescription
idInt64ESPN numeric event identifier.
dateStringEvent timestamp (ISO 8601, UTC).
nameStringFull event name (e.g. 'Team A at Team B').
short_nameStringAbbreviated event name (e.g. 'TA @ TB').
time_validBooleanWhether the event time is confirmed.
competitionsStringCompetition detail (list of dicts, stringified): competitors, venue, status.
linksStringRelated links (list, stringified).
season_yearInt64Four-digit season year.
season_display_nameStringHuman-readable season label (e.g. '2024-25').
season_type_idInt64ESPN numeric identifier for the season type.
season_type_typeInt64Season type numeric code.
season_type_nameStringSeason type name (e.g. Regular Season).
season_type_abbreviationStringSeason type abbreviation.
week_numberInt64
week_textStringHuman-readable label for the week or scheduling block in which the event falls (e.g., 'Week 3', 'Bowl Week'), as returned by the ESPN schedule API.

return_parsed=False — the raw JSON Dict payload, unparsed.

Raises​

ExceptionDescription
NoDataErrorThe host answered 404 -- the requested resource does not exist.
ValueErrorThe host answered 400 / 422 -- the request is wrong; retrying cannot help.
AssetFetchErrorThe fetch failed (a non-2xx answer or a connection failure after retries, e.g. 401/403/429/5xx, or an empty or unreadable 200 body) -- the answer is unknown, not empty.

Example​

espn_nfl_team_schedule(team_id='4')

espn_nfl_team_record​

ESPN endpoint.

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/football/nfl/teams/{team_id}/record

Valid URL: https://site.api.espn.com/apis/site/v2/sports/football/nfl/teams/4/record

API ParameterPythonPatternRequiredNullableDescription
team_idteam_idYteam_id path parameter.

Returns​

return_parsed=True (default) — the output of parse_items; pass return_as_pandas=True for a pandas.DataFrame.

No returns table is published for this endpoint: no capture: ESPN answers an empty object in nba, nfl, mlb, nhl, wnba, cfb, mbb, wbb with the documented example arguments (2026-10-07).

return_parsed=False — the raw JSON Dict payload, unparsed.

Raises​

ExceptionDescription
NoDataErrorThe host answered 404 -- the requested resource does not exist.
ValueErrorThe host answered 400 / 422 -- the request is wrong; retrying cannot help.
AssetFetchErrorThe fetch failed (a non-2xx answer or a connection failure after retries, e.g. 401/403/429/5xx, or an empty or unreadable 200 body) -- the answer is unknown, not empty.

Example​

espn_nfl_team_record(team_id='4')

espn_nfl_team_depthcharts​

ESPN endpoint.

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/football/nfl/teams/{team_id}/depthcharts

Valid URL: https://site.api.espn.com/apis/site/v2/sports/football/nfl/teams/4/depthcharts

API ParameterPythonPatternRequiredNullableDescription
team_idteam_idYteam_id path parameter.

Returns​

return_parsed=True (default) — the output of parse_items; pass return_as_pandas=True for a pandas.DataFrame.

No returns table is published for this endpoint: parser: parse_items returns no columns on the live payload (nba, nfl, mlb, nhl, wnba, cfb, mbb, wbb, 2026-10-07); its rows sit under keys it does not read (top level: depthchart, season, status, team, timestamp).

return_parsed=False — the raw JSON Dict payload, unparsed.

Raises​

ExceptionDescription
NoDataErrorThe host answered 404 -- the requested resource does not exist.
ValueErrorThe host answered 400 / 422 -- the request is wrong; retrying cannot help.
AssetFetchErrorThe fetch failed (a non-2xx answer or a connection failure after retries, e.g. 401/403/429/5xx, or an empty or unreadable 200 body) -- the answer is unknown, not empty.

Example​

espn_nfl_team_depthcharts(team_id='4')

espn_nfl_team_injuries​

ESPN endpoint.

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/football/nfl/teams/{team_id}/injuries

Valid URL: https://site.api.espn.com/apis/site/v2/sports/football/nfl/teams/4/injuries

API ParameterPythonPatternRequiredNullableDescription
team_idteam_idYteam_id path parameter.

Returns​

return_parsed=True (default) — a tidy polars.DataFrame with the columns below; pass return_as_pandas=True for a pandas.DataFrame.

col_nametypedescription
idInt64ESPN numeric identifier for the athlete.
display_nameStringAthlete's full display name as shown on ESPN.
injuriesStringInjury entries for the athlete (list of dicts, stringified): status, type, details, dates.

return_parsed=False — the raw JSON Dict payload, unparsed.

Raises​

ExceptionDescription
NoDataErrorThe host answered 404 -- the requested resource does not exist.
ValueErrorThe host answered 400 / 422 -- the request is wrong; retrying cannot help.
AssetFetchErrorThe fetch failed (a non-2xx answer or a connection failure after retries, e.g. 401/403/429/5xx, or an empty or unreadable 200 body) -- the answer is unknown, not empty.

Example​

espn_nfl_team_injuries(team_id='4')

espn_nfl_team_transactions​

ESPN endpoint.

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/football/nfl/teams/{team_id}/transactions

Valid URL: https://site.api.espn.com/apis/site/v2/sports/football/nfl/teams/4/transactions

API ParameterPythonPatternRequiredNullableDescription
team_idteam_idYteam_id path parameter.

Returns​

return_parsed=True (default) — the output of parse_items; pass return_as_pandas=True for a pandas.DataFrame.

No returns table is published for this endpoint: no capture: ESPN answers an empty object in nba, nfl, mlb, nhl, wnba, cfb, mbb, wbb with the documented example arguments (2026-10-07).

return_parsed=False — the raw JSON Dict payload, unparsed.

Raises​

ExceptionDescription
NoDataErrorThe host answered 404 -- the requested resource does not exist.
ValueErrorThe host answered 400 / 422 -- the request is wrong; retrying cannot help.
AssetFetchErrorThe fetch failed (a non-2xx answer or a connection failure after retries, e.g. 401/403/429/5xx, or an empty or unreadable 200 body) -- the answer is unknown, not empty.

Example​

espn_nfl_team_transactions(team_id='4')

espn_nfl_team_history​

ESPN endpoint.

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/football/nfl/teams/{team_id}/history

Valid URL: https://site.api.espn.com/apis/site/v2/sports/football/nfl/teams/4/history

API ParameterPythonPatternRequiredNullableDescription
team_idteam_idYteam_id path parameter.

Returns​

return_parsed=True (default) — the output of parse_items; pass return_as_pandas=True for a pandas.DataFrame.

No returns table is published for this endpoint: no capture: ESPN answers an empty object in nba, nfl, mlb, nhl, wnba, mbb, wbb; 400 in cfb with the documented example arguments (2026-10-07).

return_parsed=False — the raw JSON Dict payload, unparsed.

Raises​

ExceptionDescription
NoDataErrorThe host answered 404 -- the requested resource does not exist.
ValueErrorThe host answered 400 / 422 -- the request is wrong; retrying cannot help.
AssetFetchErrorThe fetch failed (a non-2xx answer or a connection failure after retries, e.g. 401/403/429/5xx, or an empty or unreadable 200 body) -- the answer is unknown, not empty.

Example​

espn_nfl_team_history(team_id='4')

espn_nfl_team_news​

ESPN endpoint.

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/football/nfl/teams/{team_id}/news

Valid URL: https://site.api.espn.com/apis/site/v2/sports/football/nfl/teams/4/news?limit=50

API ParameterPythonPatternRequiredNullableDescription
team_idteam_idYteam_id path parameter.
limitlimitYMaximum number of items to return.

Returns​

return_parsed=True (default) — a tidy polars.DataFrame with the columns below; pass return_as_pandas=True for a pandas.DataFrame.

col_nametypedescription
idInt64ESPN numeric identifier for the article.
now_idStringESPN 'now' feed id.
content_keyStringInternal content key.
data_source_identifierStringSource-system identifier.
typeStringArticle type (Story, Media, HeadlineNews, etc.).
headlineStringArticle headline.
descriptionStringArticle summary/description.
last_modifiedStringLast-modified timestamp (ISO 8601).
publishedStringPublish timestamp (ISO 8601).
imagesStringArticle images (list, stringified).
categoriesStringArticle categories (list, stringified).
premiumBooleanWhether the article is premium/paywalled.
bylineStringAuthor byline string as published by ESPN.
links_web_hrefStringWeb article URL.
links_mobile_hrefStringMobile article URL.
links_api_self_hrefStringESPN API canonical self-link for the article resource.
links_app_sportscenter_hrefStringSportsCenter app deep link.

return_parsed=False — the raw JSON Dict payload, unparsed.

Raises​

ExceptionDescription
NoDataErrorThe host answered 404 -- the requested resource does not exist.
ValueErrorThe host answered 400 / 422 -- the request is wrong; retrying cannot help.
AssetFetchErrorThe fetch failed (a non-2xx answer or a connection failure after retries, e.g. 401/403/429/5xx, or an empty or unreadable 200 body) -- the answer is unknown, not empty.

Example​

espn_nfl_team_news(team_id='4')

espn_nfl_team_leaders​

ESPN endpoint.

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/football/nfl/teams/{team_id}/leaders

Valid URL: https://site.api.espn.com/apis/site/v2/sports/football/nfl/teams/4/leaders

API ParameterPythonPatternRequiredNullableDescription
team_idteam_idYteam_id path parameter.

Returns​

return_parsed=True (default) — the output of parse_items; pass return_as_pandas=True for a pandas.DataFrame.

No returns table is published for this endpoint: no capture: ESPN answers an empty object in nba, nfl, mlb, nhl, wnba, cfb, mbb, wbb with the documented example arguments (2026-10-07).

return_parsed=False — the raw JSON Dict payload, unparsed.

Raises​

ExceptionDescription
NoDataErrorThe host answered 404 -- the requested resource does not exist.
ValueErrorThe host answered 400 / 422 -- the request is wrong; retrying cannot help.
AssetFetchErrorThe fetch failed (a non-2xx answer or a connection failure after retries, e.g. 401/403/429/5xx, or an empty or unreadable 200 body) -- the answer is unknown, not empty.

Example​

espn_nfl_team_leaders(team_id='4')

espn_nfl_player_info​

ESPN endpoint.

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/football/nfl/athletes/{athlete_id}

Valid URL: https://site.api.espn.com/apis/site/v2/sports/football/nfl/athletes/4239

API ParameterPythonPatternRequiredNullableDescription
athlete_idathlete_idYathlete_id path parameter.

Returns​

return_parsed=True (default) — the output of parse_single_entity; pass return_as_pandas=True for a pandas.DataFrame.

No returns table is published for this endpoint: no capture: 404 in nba, nfl, mlb, nhl, wnba, cfb, mbb, wbb with the documented example arguments (2026-10-07).

return_parsed=False — the raw JSON Dict payload, unparsed.

Raises​

ExceptionDescription
NoDataErrorThe host answered 404 -- the requested resource does not exist.
ValueErrorThe host answered 400 / 422 -- the request is wrong; retrying cannot help.
AssetFetchErrorThe fetch failed (a non-2xx answer or a connection failure after retries, e.g. 401/403/429/5xx, or an empty or unreadable 200 body) -- the answer is unknown, not empty.

Example​

espn_nfl_player_info(athlete_id='4239')

espn_nfl_player_bio​

ESPN endpoint.

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/football/nfl/athletes/{athlete_id}/bio

Valid URL: https://site.api.espn.com/apis/site/v2/sports/football/nfl/athletes/4239/bio

API ParameterPythonPatternRequiredNullableDescription
athlete_idathlete_idYathlete_id path parameter.

Returns​

return_parsed=True (default) — the output of parse_single_entity; pass return_as_pandas=True for a pandas.DataFrame.

No returns table is published for this endpoint: no capture: 404 in nba, nfl, mlb, nhl, wnba, cfb, mbb, wbb with the documented example arguments (2026-10-07).

return_parsed=False — the raw JSON Dict payload, unparsed.

Raises​

ExceptionDescription
NoDataErrorThe host answered 404 -- the requested resource does not exist.
ValueErrorThe host answered 400 / 422 -- the request is wrong; retrying cannot help.
AssetFetchErrorThe fetch failed (a non-2xx answer or a connection failure after retries, e.g. 401/403/429/5xx, or an empty or unreadable 200 body) -- the answer is unknown, not empty.

Example​

espn_nfl_player_bio(athlete_id='4239')

espn_nfl_player_news​

ESPN endpoint.

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/football/nfl/athletes/{athlete_id}/news

Valid URL: https://site.api.espn.com/apis/site/v2/sports/football/nfl/athletes/4239/news

API ParameterPythonPatternRequiredNullableDescription
athlete_idathlete_idYathlete_id path parameter.

Returns​

return_parsed=True (default) — a tidy polars.DataFrame with the columns below; pass return_as_pandas=True for a pandas.DataFrame.

col_nametypedescription
idInt64ESPN numeric identifier for the article.
now_idStringESPN 'now' feed id.
content_keyStringInternal content key.
data_source_identifierStringSource-system identifier.
typeStringArticle type (Story, Media, HeadlineNews, etc.).
headlineStringArticle headline.
descriptionStringArticle summary/description.
last_modifiedStringLast-modified timestamp (ISO 8601).
publishedStringPublish timestamp (ISO 8601).
imagesStringArticle images (list, stringified).
categoriesStringArticle categories (list, stringified).
premiumBooleanWhether the article is premium/paywalled.
bylineStringAuthor byline string as published by ESPN.
links_web_hrefStringWeb article URL.
links_mobile_hrefStringMobile article URL.
links_api_self_hrefStringESPN API canonical self-link for the article resource.
links_app_sportscenter_hrefStringSportsCenter app deep link.

return_parsed=False — the raw JSON Dict payload, unparsed.

Raises​

ExceptionDescription
NoDataErrorThe host answered 404 -- the requested resource does not exist.
ValueErrorThe host answered 400 / 422 -- the request is wrong; retrying cannot help.
AssetFetchErrorThe fetch failed (a non-2xx answer or a connection failure after retries, e.g. 401/403/429/5xx, or an empty or unreadable 200 body) -- the answer is unknown, not empty.

Example​

espn_nfl_player_news(athlete_id='4239')

espn_nfl_standings​

ESPN endpoint.

Endpoint URL: GET https://site.api.espn.com/apis/v2/sports/football/nfl/standings

Valid URL: https://site.api.espn.com/apis/v2/sports/football/nfl/standings

API ParameterPythonPatternRequiredNullableDescription
seasonseasonYSeason year (e.g. 2024).
groupgroupYConference or group id filter (e.g. an ESPN conference id).
typestandings_typeYStandings variant (e.g. 'by-division' or 'by-conference').

Returns​

return_parsed=True (default) — a tidy polars.DataFrame with the columns below; pass return_as_pandas=True for a pandas.DataFrame.

col_nametypedescription
group_nameStringGroup name.
group_abbreviationStringGroup abbreviation.
team_idInt64Team id.
team_nameStringTeam name.
team_abbreviationStringTeam abbreviation.
team_display_nameStringTeam display name.
team_locationStringTeam location.
team_logoStringTeam logo.
clincherFloat64Clincher.
differentialFloat64Differential.
games_behindFloat64Games behind.
lossesFloat64Losses.
playoff_seedFloat64Playoff seed.
point_differentialFloat64Point differential.
points_againstFloat64Points against.
points_forFloat64Points for.
streakFloat64Streak.
tiesFloat64Number of matches the team has drawn.
win_percentFloat64Win percent.
winsFloat64Wins.
division_lossesFloat64Number of games the team has lost against opponents within their own division.
division_recordFloat64The team's composite win-loss-tie record against division opponents, serialized as a numeric value.
division_tiesFloat64Number of games the team has tied against opponents within their own division.
division_winsFloat64Number of games the team has won against opponents within their own division.
overallStringOverall.
homeStringHome.
roadStringRoad.
vs. div.StringVs. div..
vs. conf.StringVs. conf..

return_parsed=False — the raw JSON Dict payload, unparsed.

Raises​

ExceptionDescription
NoDataErrorThe host answered 404 -- the requested resource does not exist.
ValueErrorThe host answered 400 / 422 -- the request is wrong; retrying cannot help.
AssetFetchErrorThe fetch failed (a non-2xx answer or a connection failure after retries, e.g. 401/403/429/5xx, or an empty or unreadable 200 body) -- the answer is unknown, not empty.

Example​

espn_nfl_standings()