Skip to contents

Get one athlete's box-score line for a single college football game – one row per stat, in long format.

Usage

espn_cfb_game_player_statistics(
  game_id = NULL,
  athlete_id = NULL,
  position_detail = TRUE,
  team_detail = TRUE
)

Arguments

game_id

(Integer required): ESPN game identifier.

athlete_id

(Integer required): ESPN athlete id (from espn_cfb_game_leaders() or a roster wrapper).

position_detail

(Logical): when TRUE (default), fetch the ESPN position catalog once and join it onto position_id, appending the five position_* detail columns shown in the Value table. A catalog failure degrades to NA rather than erroring the wrapper. Set FALSE to skip the extra fetch and the join.

team_detail

(Logical): when TRUE (default), fetch the ESPN team catalog (espn_cfb_teams()) once and join friendly team fields next to the team_id column – team_name, team_abbreviation, team_location, team_display_name, team_short_display_name, team_nickname, team_color, team_alternate_color, team_logo_href, and team_logo_dark_href, inserted immediately after team_id. A catalog failure degrades to NA rather than erroring the wrapper. Set FALSE to skip the catalog fetch and the join.

Value

A data frame with one row per stat for the athlete:

col_nametypesdescription
game_idcharacterESPN game identifier.
athlete_idcharacterESPN athlete id.
team_idcharacterESPN team id of the athlete's team (competitor id).
team_namecharacterTeam nickname; team_detail = TRUE only.
team_abbreviationcharacterTeam abbreviation; team_detail = TRUE only.
team_locationcharacterTeam location / school name; team_detail = TRUE only.
team_display_namecharacterFull team display name; team_detail = TRUE only.
team_short_display_namecharacterShort team display name; team_detail = TRUE only.
team_nicknamecharacterTeam nickname label; team_detail = TRUE only.
team_colorcharacterPrimary team color; team_detail = TRUE only.
team_alternate_colorcharacterAlternate team color; team_detail = TRUE only.
team_logo_hrefcharacterDefault team logo URL; team_detail = TRUE only.
team_logo_dark_hrefcharacterDark-variant team logo URL; team_detail = TRUE only.
athlete_display_namecharacterAthlete display name (from the roster entry).
jerseycharacterAthlete jersey number (from the roster entry).
starterlogicalTRUE if the athlete started the game.
did_not_playlogicalTRUE if the athlete did not play.
position_idcharacterESPN position id (from the roster entry; NA if none).
category_namecharacterStat-category key (e.g. passing, rushing).
category_display_namecharacterHuman-readable stat-category name.
category_short_display_namecharacterShort human-readable stat-category name.
category_summarycharacterESPN's summary string for the category.
stat_namecharacterStat key (e.g. completions, rushingYards).
stat_display_namecharacterHuman-readable stat name.
stat_short_display_namecharacterShort human-readable stat name.
abbreviationcharacterStat abbreviation.
valuenumericNumeric stat value.
display_valuecharacterDisplay-formatted stat value.
descriptioncharacterESPN's description of the stat.
position_namecharacterPosition name (e.g. Quarterback); position_detail = TRUE only.
position_display_namecharacterHuman-readable position name; position_detail = TRUE only.
position_abbreviationcharacterPosition abbreviation (e.g. QB); position_detail = TRUE only.
position_leaflogicalTRUE for a most-specific (leaf) position; position_detail = TRUE only.
position_parent_idcharacterESPN id of the parent position; position_detail = TRUE only.

Details

Wraps the ESPN core-v2 per-game, per-player statistics resource events/{game_id}/competitions/{game_id}/competitors/{t}/roster/{a}/statistics/{s}. The competition id always equals the game id.

ESPN reaches per-player game stats through the competitor roster tree – dereferencing all ~250 athletes on the two rosters per game is impractical, so this wrapper is scoped to one athlete. It fetches the two competitor rosters, finds the entry whose athlete_id matches the supplied athlete_id, follows that athlete's statistics $ref, and returns that player's stat line in long format – one row per stat, with the stat category, name, value, and display value.

For a full all-players game box score, the site-v2 game-summary feed is the better source – it returns every player's box line in one call. Use this core-v2 wrapper when you need a single athlete's stats in the core-v2 id space, e.g. drilling down from espn_cfb_game_leaders().

If the athlete is not found on either roster, or did not record stats for the game (no statistics $ref), an empty data frame is returned.

When position_detail = TRUE (the default) the ESPN position catalog (espn_cfb_positions()) is fetched once and joined onto the athlete's position_id, so the output carries the full position name / abbreviation (see Details).

When position_detail = TRUE (the default), the athlete's position_id (read from the roster entry) is enriched with five columns from the ESPN position catalog (espn_cfb_positions()): position_name, position_display_name, position_abbreviation, position_leaf, and position_parent_id. The catalog is fetched once per call. If the athlete carries no position_id or it is unmatched, all five are NA, and a catalog-fetch failure degrades the whole set to NA rather than erroring the wrapper. With position_detail = FALSE the five columns (and the catalog fetch) are skipped.

See also

Other ESPN CFB Functions: espn_cfb_award(), espn_cfb_awards(), espn_cfb_clear_cache(), espn_cfb_coach(), espn_cfb_coach_record(), espn_cfb_coaches(), espn_cfb_franchise(), espn_cfb_franchises(), espn_cfb_futures(), espn_cfb_game_broadcasts(), espn_cfb_game_drive_plays(), espn_cfb_game_drives(), espn_cfb_game_leaders(), espn_cfb_game_odds(), espn_cfb_game_pbp(), espn_cfb_game_play(), espn_cfb_game_player_box(), espn_cfb_game_powerindex(), espn_cfb_game_predictor(), espn_cfb_game_probabilities(), espn_cfb_game_situation(), espn_cfb_game_status(), espn_cfb_game_team_leaders(), espn_cfb_game_team_linescores(), espn_cfb_game_team_records(), espn_cfb_game_team_roster(), espn_cfb_game_team_statistics(), espn_cfb_game_teams(), espn_cfb_groups(), espn_cfb_pbp_v2(), espn_cfb_player(), espn_cfb_player_career_stats(), espn_cfb_player_eventlog(), espn_cfb_player_gamelog(), espn_cfb_player_overview(), espn_cfb_player_seasons(), espn_cfb_player_splits(), espn_cfb_player_stats_v3(), espn_cfb_players(), espn_cfb_position(), espn_cfb_positions(), espn_cfb_powerindex(), espn_cfb_qbr(), espn_cfb_rankings(), espn_cfb_recruits(), espn_cfb_season_info(), espn_cfb_season_types(), espn_cfb_season_weeks(), espn_cfb_seasons(), espn_cfb_standings(), espn_cfb_team(), espn_cfb_team_ats(), espn_cfb_team_awards(), espn_cfb_team_coaches(), espn_cfb_team_events(), espn_cfb_team_leaders(), espn_cfb_team_powerindex(), espn_cfb_team_ranks(), espn_cfb_team_record(), espn_cfb_team_roster(), espn_cfb_team_schedule(), espn_cfb_teams(), espn_cfb_unnest_plays(), espn_cfb_venue(), espn_cfb_venues(), espn_cfb_week_rankings()

Examples

# \donttest{
  try(espn_cfb_game_player_statistics(game_id = 401628339,
                                      athlete_id = 4429105))
#> ── Game player statistics data from ESPN ───────────────────── cfbfastR 2.3.0 ──
#>  Data updated: 2026-06-09 07:56:27 UTC
#> # A tibble: 137 × 34
#>    game_id   athlete_id team_id team_name team_abbreviation team_location
#>    <chr>     <chr>      <chr>   <chr>     <chr>             <chr>        
#>  1 401628339 4429105    61      Bulldogs  UGA               Georgia      
#>  2 401628339 4429105    61      Bulldogs  UGA               Georgia      
#>  3 401628339 4429105    61      Bulldogs  UGA               Georgia      
#>  4 401628339 4429105    61      Bulldogs  UGA               Georgia      
#>  5 401628339 4429105    61      Bulldogs  UGA               Georgia      
#>  6 401628339 4429105    61      Bulldogs  UGA               Georgia      
#>  7 401628339 4429105    61      Bulldogs  UGA               Georgia      
#>  8 401628339 4429105    61      Bulldogs  UGA               Georgia      
#>  9 401628339 4429105    61      Bulldogs  UGA               Georgia      
#> 10 401628339 4429105    61      Bulldogs  UGA               Georgia      
#> # ℹ 127 more rows
#> # ℹ 28 more variables: team_display_name <chr>, team_short_display_name <chr>,
#> #   team_nickname <chr>, team_color <chr>, team_alternate_color <chr>,
#> #   team_logo_href <chr>, team_logo_dark_href <chr>,
#> #   athlete_display_name <chr>, jersey <chr>, starter <lgl>,
#> #   did_not_play <lgl>, position_id <chr>, category_name <chr>,
#> #   category_display_name <chr>, category_short_display_name <chr>, …
  try(espn_cfb_game_player_statistics(game_id = 401628339,
                                      athlete_id = 4429105,
                                      position_detail = FALSE))
#> ── Game player statistics data from ESPN ───────────────────── cfbfastR 2.3.0 ──
#>  Data updated: 2026-06-09 07:56:27 UTC
#> # A tibble: 137 × 29
#>    game_id   athlete_id team_id team_name team_abbreviation team_location
#>    <chr>     <chr>      <chr>   <chr>     <chr>             <chr>        
#>  1 401628339 4429105    61      Bulldogs  UGA               Georgia      
#>  2 401628339 4429105    61      Bulldogs  UGA               Georgia      
#>  3 401628339 4429105    61      Bulldogs  UGA               Georgia      
#>  4 401628339 4429105    61      Bulldogs  UGA               Georgia      
#>  5 401628339 4429105    61      Bulldogs  UGA               Georgia      
#>  6 401628339 4429105    61      Bulldogs  UGA               Georgia      
#>  7 401628339 4429105    61      Bulldogs  UGA               Georgia      
#>  8 401628339 4429105    61      Bulldogs  UGA               Georgia      
#>  9 401628339 4429105    61      Bulldogs  UGA               Georgia      
#> 10 401628339 4429105    61      Bulldogs  UGA               Georgia      
#> # ℹ 127 more rows
#> # ℹ 23 more variables: team_display_name <chr>, team_short_display_name <chr>,
#> #   team_nickname <chr>, team_color <chr>, team_alternate_color <chr>,
#> #   team_logo_href <chr>, team_logo_dark_href <chr>,
#> #   athlete_display_name <chr>, jersey <chr>, starter <lgl>,
#> #   did_not_play <lgl>, position_id <chr>, category_name <chr>,
#> #   category_display_name <chr>, category_short_display_name <chr>, …
  try(espn_cfb_game_player_statistics(game_id = 401628339,
                                      athlete_id = 4429105,
                                      team_detail = FALSE))
#> ── Game player statistics data from ESPN ───────────────────── cfbfastR 2.3.0 ──
#>  Data updated: 2026-06-09 07:56:27 UTC
#> # A tibble: 137 × 24
#>    game_id   athlete_id team_id athlete_display_name jersey starter did_not_play
#>    <chr>     <chr>      <chr>   <chr>                <chr>  <lgl>   <lgl>       
#>  1 401628339 4429105    61      A. Smith             11     FALSE   FALSE       
#>  2 401628339 4429105    61      A. Smith             11     FALSE   FALSE       
#>  3 401628339 4429105    61      A. Smith             11     FALSE   FALSE       
#>  4 401628339 4429105    61      A. Smith             11     FALSE   FALSE       
#>  5 401628339 4429105    61      A. Smith             11     FALSE   FALSE       
#>  6 401628339 4429105    61      A. Smith             11     FALSE   FALSE       
#>  7 401628339 4429105    61      A. Smith             11     FALSE   FALSE       
#>  8 401628339 4429105    61      A. Smith             11     FALSE   FALSE       
#>  9 401628339 4429105    61      A. Smith             11     FALSE   FALSE       
#> 10 401628339 4429105    61      A. Smith             11     FALSE   FALSE       
#> # ℹ 127 more rows
#> # ℹ 17 more variables: position_id <chr>, category_name <chr>,
#> #   category_display_name <chr>, category_short_display_name <chr>,
#> #   category_summary <chr>, stat_name <chr>, stat_display_name <chr>,
#> #   stat_short_display_name <chr>, abbreviation <chr>, value <dbl>,
#> #   display_value <chr>, description <chr>, position_name <chr>,
#> #   position_display_name <chr>, position_abbreviation <chr>, …
# }