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 ontoposition_id, appending the fiveposition_*detail columns shown in the Value table. A catalog failure degrades toNArather than erroring the wrapper. SetFALSEto 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 theteam_idcolumn (see Details). SetFALSEto skip the catalog fetch and the join.
Value
A data frame with one row per athlete:
| col_name | types | description |
| season | integer | Season (4-digit year). |
| team_id | character | ESPN team id. |
| team_name | character | Team nickname; team_detail = TRUE only. |
| team_abbreviation | character | Team abbreviation; team_detail = TRUE only. |
| team_location | character | Team location / school name; team_detail = TRUE only. |
| team_display_name | character | Full team display name; team_detail = TRUE only. |
| team_short_display_name | character | Short team display name; team_detail = TRUE only. |
| team_nickname | character | Team nickname label; team_detail = TRUE only. |
| team_color | character | Primary team color; team_detail = TRUE only. |
| team_alternate_color | character | Alternate team color; team_detail = TRUE only. |
| team_logo_href | character | Default team logo URL; team_detail = TRUE only. |
| team_logo_dark_href | character | Dark-variant team logo URL; team_detail = TRUE only. |
| athlete_id | character | ESPN athlete id. |
| first_name | character | Athlete first name. |
| last_name | character | Athlete last name. |
| full_name | character | Athlete full name. |
| display_name | character | Athlete display name. |
| jersey | character | Jersey number. |
| position | character | Position display name. |
| position_abbr | character | Position abbreviation. |
| height | numeric | Height in inches. |
| display_height | character | Human-readable height (e.g. 6' 1"). |
| weight | numeric | Weight in pounds. |
| display_weight | character | Human-readable weight (e.g. 205 lbs). |
| experience | integer | Years of experience. |
| class | character | Class / experience label (e.g. Junior). |
| birth_city | character | Birth city. |
| birth_state | character | Birth state. |
| birth_country | character | Birth country. |
| status | character | Athlete status (e.g. Active). |
| active | logical | Whether the athlete is active. |
| headshot_href | character | URL of the athlete headshot image. |
| position_id | character | ESPN position id; position_detail = TRUE only. |
| position_name | character | Position name (e.g. Quarterback); position_detail = TRUE only. |
| position_display_name | character | Human-readable position name; position_detail = TRUE only. |
| position_abbreviation | character | Position abbreviation (e.g. QB); position_detail = TRUE only. |
| position_leaf | logical | TRUE for a most-specific (leaf) position; position_detail = TRUE only. |
| position_parent_id | character | ESPN 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>, …
# }
