Skip to contents

Get the season roster for a single college football team – one row per athlete with biographical detail, position, jersey number, and class/experience.

Usage

espn_cfb_team_roster(
  team_id = NULL,
  year = NULL,
  position_detail = TRUE,
  team_detail = TRUE
)

Arguments

team_id

(Integer required): ESPN team id.

year

(Integer required): Season, 4 digit format (YYYY).

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 once and join friendly team fields next to the team_id column (see Details). Set FALSE to skip the catalog fetch and the join.

Value

A data frame with one row per athlete:

col_nametypesdescription
seasonintegerSeason (4-digit year).
team_idcharacterESPN team 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_idcharacterESPN athlete id.
first_namecharacterAthlete first name.
last_namecharacterAthlete last name.
full_namecharacterAthlete full name.
display_namecharacterAthlete display name.
jerseycharacterJersey number.
positioncharacterPosition display name.
position_abbrcharacterPosition abbreviation.
heightnumericHeight in inches.
display_heightcharacterHuman-readable height (e.g. 6' 1").
weightnumericWeight in pounds.
display_weightcharacterHuman-readable weight (e.g. 205 lbs).
experienceintegerYears of experience.
classcharacterClass / experience label (e.g. Junior).
birth_citycharacterBirth city.
birth_statecharacterBirth state.
birth_countrycharacterBirth country.
statuscharacterAthlete status (e.g. Active).
activelogicalWhether the athlete is active.
headshot_hrefcharacterURL of the athlete headshot image.
position_idcharacterESPN position id; position_detail = TRUE only.
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 season athlete index sports.core.api.espn.com/v2/sports/football/leagues/college-football/seasons/{year}/teams/{team_id}/athletes. The index returns one $ref per athlete; this wrapper dereferences each athlete resource and flattens it into a row. The site-v2 roster endpoint is deliberately not used: it returns only the team's current roster and silently ignores a season query parameter, so it cannot deliver historical rosters. The core-v2 path used here is genuinely season-scoped.

Because each athlete is dereferenced individually, a full roster is roughly 150-220 HTTP requests; allow a few seconds per call.

When team_detail = TRUE (the default) the ESPN team catalog (espn_cfb_teams()) is fetched once and friendly team fields are joined in 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 team_detail = FALSE to skip the catalog fetch and the join.

When position_detail = TRUE (the default) the ESPN position catalog (espn_cfb_positions()) is fetched once and joined onto the position_id column, appending the five position_* detail columns (position_name, position_display_name, position_abbreviation, position_leaf, position_parent_id). A catalog failure degrades to NA rather than erroring the wrapper. Set position_detail = FALSE to skip the extra fetch and the join.

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_player_statistics(), 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_schedule(), espn_cfb_teams(), espn_cfb_unnest_plays(), espn_cfb_venue(), espn_cfb_venues(), espn_cfb_week_rankings()

Examples

# \donttest{
  try(espn_cfb_team_roster(team_id = 61, year = 2024))
#> ── Team roster from ESPN ───────────────────────────────────── cfbfastR 2.3.0 ──
#>  Data updated: 2026-06-09 07:58:05 UTC
#> # A tibble: 177 × 38
#>    season team_id team_name team_abbreviation team_location team_display_name
#>     <int> <chr>   <chr>     <chr>             <chr>         <chr>            
#>  1   2024 61      Bulldogs  UGA               Georgia       Georgia Bulldogs 
#>  2   2024 61      Bulldogs  UGA               Georgia       Georgia Bulldogs 
#>  3   2024 61      Bulldogs  UGA               Georgia       Georgia Bulldogs 
#>  4   2024 61      Bulldogs  UGA               Georgia       Georgia Bulldogs 
#>  5   2024 61      Bulldogs  UGA               Georgia       Georgia Bulldogs 
#>  6   2024 61      Bulldogs  UGA               Georgia       Georgia Bulldogs 
#>  7   2024 61      Bulldogs  UGA               Georgia       Georgia Bulldogs 
#>  8   2024 61      Bulldogs  UGA               Georgia       Georgia Bulldogs 
#>  9   2024 61      Bulldogs  UGA               Georgia       Georgia Bulldogs 
#> 10   2024 61      Bulldogs  UGA               Georgia       Georgia Bulldogs 
#> # ℹ 167 more rows
#> # ℹ 32 more variables: 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_id <chr>, first_name <chr>,
#> #   last_name <chr>, full_name <chr>, display_name <chr>, jersey <chr>,
#> #   position <chr>, position_abbr <chr>, height <dbl>, display_height <chr>,
#> #   weight <dbl>, display_weight <chr>, experience <int>, class <chr>, …
  try(espn_cfb_team_roster(team_id = 61, year = 2024,
                           position_detail = FALSE))
#> ── Team roster from ESPN ───────────────────────────────────── cfbfastR 2.3.0 ──
#>  Data updated: 2026-06-09 07:58:09 UTC
#> # A tibble: 177 × 32
#>    season team_id team_name team_abbreviation team_location team_display_name
#>     <int> <chr>   <chr>     <chr>             <chr>         <chr>            
#>  1   2024 61      Bulldogs  UGA               Georgia       Georgia Bulldogs 
#>  2   2024 61      Bulldogs  UGA               Georgia       Georgia Bulldogs 
#>  3   2024 61      Bulldogs  UGA               Georgia       Georgia Bulldogs 
#>  4   2024 61      Bulldogs  UGA               Georgia       Georgia Bulldogs 
#>  5   2024 61      Bulldogs  UGA               Georgia       Georgia Bulldogs 
#>  6   2024 61      Bulldogs  UGA               Georgia       Georgia Bulldogs 
#>  7   2024 61      Bulldogs  UGA               Georgia       Georgia Bulldogs 
#>  8   2024 61      Bulldogs  UGA               Georgia       Georgia Bulldogs 
#>  9   2024 61      Bulldogs  UGA               Georgia       Georgia Bulldogs 
#> 10   2024 61      Bulldogs  UGA               Georgia       Georgia Bulldogs 
#> # ℹ 167 more rows
#> # ℹ 26 more variables: 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_id <chr>, first_name <chr>,
#> #   last_name <chr>, full_name <chr>, display_name <chr>, jersey <chr>,
#> #   position <chr>, position_abbr <chr>, height <dbl>, display_height <chr>,
#> #   weight <dbl>, display_weight <chr>, experience <int>, class <chr>, …
  try(espn_cfb_team_roster(team_id = 61, year = 2024,
                           team_detail = FALSE))
#> ── Team roster from ESPN ───────────────────────────────────── cfbfastR 2.3.0 ──
#>  Data updated: 2026-06-09 07:58:13 UTC
#> # A tibble: 177 × 28
#>    season team_id athlete_id first_name last_name full_name  display_name jersey
#>     <int> <chr>   <chr>      <chr>      <chr>     <chr>      <chr>        <chr> 
#>  1   2024 61      4870588    Joenel     Aguero    Joenel Ag… Joenel Ague… 8     
#>  2   2024 61      4870598    CJ         Allen     CJ Allen   CJ Allen     3     
#>  3   2024 61      5150384    Liam       Badger    Liam Badg… Liam Badger  96    
#>  4   2024 61      4691816    Aliou      Bah       Aliou Bah  Aliou Bah    66    
#>  5   2024 61      5160178    Clinton    Barlow    Clinton B… Clinton Bar… 67    
#>  6   2024 61      4914220    Henry      Bates     Henry Bat… Henry Bates  94    
#>  7   2024 61      4430841    Carson     Beck      Carson Be… Carson Beck  11    
#>  8   2024 61      4712579    Dillon     Bell      Dillon Be… Dillon Bell  86    
#>  9   2024 61      5150831    Jeremy     Bell      Jeremy Be… Jeremy Bell  81    
#> 10   2024 61      5081059    Luke       Bennett   Luke Benn… Luke Bennett 29    
#> # ℹ 167 more rows
#> # ℹ 20 more variables: position <chr>, position_abbr <chr>, height <dbl>,
#> #   display_height <chr>, weight <dbl>, display_weight <chr>, experience <int>,
#> #   class <chr>, birth_city <chr>, birth_state <chr>, birth_country <chr>,
#> #   status <chr>, active <lgl>, headshot_href <chr>, position_id <chr>,
#> #   position_name <chr>, position_display_name <chr>,
#> #   position_abbreviation <chr>, position_leaf <lgl>, …
# }