cfbfastR v3.0.0

New release-dataset loaders (39 functions)

cfbfastR now loads every published CFB dataset on the sportsdataverse-data release repo, closing the gap with sportsdataverse-py’s loader surface. All loaders return cfbfastR_data-tagged tibbles, accept seasons = TRUE for the full published range, and support the dbConnection/tablename database write-through.

Which play-by-play loader do I want? Nothing is deprecated — the classic functions are unchanged; the new families add sources:

This release adds a 65-function ESPN college-football API layer, expanding cfbfastR’s ESPN surface from 8 wrappers to 73. The new wrappers expose ESPN’s core-v2 endpoints in ESPN’s own ID space — complementary to the CollegeFootballData (cfbd_*) wrappers, and the natural join partners for espn_cfb_pbp() / espn_cfb_scoreboard(). Every wrapper was verified live against the 2023, 2024, and 2025 seasons.

Naming alignment with the sportsdataverse convention (this dev cycle, never on CRAN): espn_cfb_player_statistics() is renamed to espn_cfb_player_career_stats() (the core-v2 /athletes/{id}/statistics career view, matching hoopR/wehoop/sportsdataverse-py). New espn_cfb_player_stats_v3() wraps the comprehensive web-common-v3 /athletes/{id}/stats payload (all categories, long format) — the _v3 companion to espn_cfb_player_stats() (core-v2 season statistics).

New Fox Sports API wrappers (fox_cfb_*)

A read-only Fox Sports “Bifrost” college-football layer (api.foxsports.com/bifrost/v1/cfb/*), complementary to the espn_cfb_* and cfbd_* families. Eight wrappers flatten Fox’s layout-oriented JSON (sections → tables → rows → cells) into tidy cfbfastR-tagged tibbles. Reverse-engineering notes and an OpenAPI 3.1 spec live in the sdv-internal-refs repo. Verified live against the 2025 season.

New ESPN wrappers — football-specific metrics

New ESPN wrappers — players

New ESPN wrappers — teams

New ESPN wrappers — game detail

New ESPN wrappers — catalogs and season metadata

New Yahoo Sports wrappers

New CollegeFootballData wrappers

Play-by-play engine — v2 is now the default

CFBD API coverage

Audited against the CollegeFootballData OpenAPI spec (5.24.1, 74 endpoints).

15 endpoints that had no wrapper now have one: cfbd_playoffs_cfp(), cfbd_playoffs_cfp_games(), cfbd_playoffs_cfp_participants(), cfbd_conference_affiliations(), cfbd_conference_changes(), cfbd_coaches_profile(), cfbd_coaches_seasons(), cfbd_coaches_tenures(), cfbd_ratings_core(), cfbd_ratings_srs_expanded(), cfbd_teams_fbs(), cfbd_stats_player_success(), cfbd_stats_player_success_game(), cfbd_player_season_overview() and cfbd_info_usage(). Every one was exercised against the live API before being committed.

26 parameters added to existing wrappers — most importantly division on ten more functions, plus defense / offense_conference / defense_conference / conference / division on cfbd_pbp_data(), competition and round on cfbd_game_info() (College Football Playoff filtering), line_provider on cfbd_betting_lines(), conference on cfbd_play_stats_player() and recruit_type on cfbd_recruiting_position(). cfbd_conferences() previously took no arguments at all and now accepts year and division.

New validate_division() covering fbs / fcs / ii / ii/iii / iii. This validates locally because CFBD ignores an unrecognised filter value rather than rejecting it — so without it a typo silently returns every division.

Two spec parameters were deliberately not exposed after testing them: /rankings declares latest and final as booleans, but the API returns HTTP 400 for every form of both. poll is validated to "cfp", the only value it accepts.

Bug fixes

Internal changes

cfbfastR v2.2.0

cfbfastR v2.1.0

cfbfastR v2.0.0

Breaking Changes to Loading Functions

Now upgraded to the CFBD v2 API

Special thanks are in order for our newest contributor, Brad Hill (@bradisbrad) for providing most of the v2 upgrade via his first PR to cfbfastR!! 🙌🏽 👑 🥇 Your contributions are most appreciated by the community.

Note: The free-tier API key for the CFBD v2 API has a strict 1k calls/month limit, so plan your workflows accordingly! If you receive errors mentioning r Request failed [429], you have most likely run out of API calls for the month in your membership tier.

cfbfastR v1.9.5

cfbfastR v1.9.4

cfbfastR v1.9.3

cfbfastR v1.9.2

cfbfastR v1.9.1

cfbfastR v1.9.0

Added functions to access ESPN API:

Added functions to pull data from the data repo:

cfbfastR v1.8.0

cfbfastR v1.7.1

cfbfastR v1.7.0

cfbfastR v1.6.7

cfbfastR v1.6.6

cfbfastR v1.6.5

cfbfastR v1.6.4

cfbfastR v1.6.3

cfbfastR v1.6.2

cfbfastR v1.6.1

cfbfastR v1.6.0

cfbfastR v1.5.2

cfbfastR v1.5.1

Minor release

cfbfastR v1.5.0

Added espn_cfb_scoreboard()

Added espn_cfb_pbp()

cfbfastR v1.4.0

Added cfbd_game_weather()

cfbfastR v1.3.3

Hotfix cfbd_game_player_stats()

cfbfastR v1.3.2

Added ID linking to cfbd_recruiting_players()

cfbfastR v1.3.0-1

Added three NFL draft functions:

cfbfastR v1.2.1

Minor release

cfbfastR v1.2.0-1

Add significant documentation to the package

ESPN/CFBD metrics function variable return standardization

cfbfastR v1.1.0

Add loading from Data Repository functionality

Add support for parallel processing and progress updates

cfbfastR v1.0.0

Function Naming Convention Change

College Football Data API Keys

The CollegeFootballData API now requires an API key, here’s a quick run-down:

CFBD_API_KEY = XXXX-YOUR-API-KEY-HERE-XXXXX

Save the script and restart your RStudio session, by clicking Session (in between Plots and Build) and click Restart R (n.b. there also exists the shortcut Ctrl + Shift + F10 to restart your session). If set correctly, from then on you should be able to use any of the cfbd_ functions without any other changes.

{r} Sys.setenv(CFBD_API_KEY = "XXXX-YOUR-API-KEY-HERE-XXXXX")