nflreadr 
nflreadr is a minimal package for downloading data from nflverse repositories. It includes caching, optional progress updates, and data dictionaries.
Please note that nflverse data repositories have been reorganized and pushed towards the nflverse-data repo, and v1.2.0+ is the minimum version that supports this change. We encourage all users to upgrade to this version immediately.
For Python access to nflverse data, please check out nfl-data-py - maintained by Cooper Adams.
Installation
Install the stable version from CRAN with:
install.packages("nflreadr")Install the development version from GitHub with:
install.packages("nflreadr", repos = "https://nflverse.r-universe.dev")
# or use remotes/devtools
# install.packages("remotes")
remotes::install_github("nflverse/nflreadr")Usage
The main functions of nflreadr are prefixed with load_.
library(nflreadr)
load_pbp(2020)
#> # A tibble: 48,514 x 372
#> play_id game_id old_game_id home_team away_team season_type week posteam
#> <dbl> <chr> <chr> <chr> <chr> <chr> <int> <chr>
#> 1 1 2020_01_AR~ 2020091311 SF ARI REG 1 <NA>
#> 2 39 2020_01_AR~ 2020091311 SF ARI REG 1 SF
#> 3 54 2020_01_AR~ 2020091311 SF ARI REG 1 SF
#> 4 93 2020_01_AR~ 2020091311 SF ARI REG 1 SF
#> 5 118 2020_01_AR~ 2020091311 SF ARI REG 1 SF
#> 6 143 2020_01_AR~ 2020091311 SF ARI REG 1 SF
#> 7 165 2020_01_AR~ 2020091311 SF ARI REG 1 SF
#> 8 197 2020_01_AR~ 2020091311 SF ARI REG 1 SF
#> 9 226 2020_01_AR~ 2020091311 SF ARI REG 1 ARI
#> 10 245 2020_01_AR~ 2020091311 SF ARI REG 1 ARI
#> # ... with 48,504 more rows, and 364 more variables: posteam_type <chr>,
#> # defteam <chr>, side_of_field <chr>, yardline_100 <dbl>, game_date <chr>,
#> # quarter_seconds_remaining <dbl>, half_seconds_remaining <dbl>,
#> # game_seconds_remaining <dbl>, game_half <chr>, quarter_end <dbl>,
#> # drive <dbl>, sp <dbl>, qtr <dbl>, down <dbl>, goal_to_go <dbl>, time <chr>,
#> # yrdln <chr>, ydstogo <dbl>, ydsnet <dbl>, desc <chr>, ...Data Sources
Data accessed by this package is stored on GitHub and can typically be found in one of the following repositories:
- nflverse/nflverse-data
- nflverse/nfldata
- nflverse/espnscrapeR-data
- dynastyprocess/data
- ffverse/ffopportunity
For a full list of functions, please see the reference page.
This data is maintained by the nflverse project team and is primarily automated via GitHub Actions. You can check the status and schedules page here: https://github.com/nflverse/nflverse-data
Configuration
The following options help configure default nflreadr behaviours.
options(nflreadr.verbose)
# TRUE/FALSE to silence messages such as cache warnings
options(nflreadr.cache)
# one of "memory", "filesystem", or "off"
options(nflreadr.prefer)
# one of "qs" or "rds"You can also configure nflreadr to display progress messages with the
progressr package, e.g.
progressr::with_progress(load_rosters(seasons = 2010:2020))
|======== | 40%Getting help
The best places to get help on this package are:
- the nflverse discord (for both this package as well as anything R/NFL related)
- opening an issue
Contributing
Many hands make light work! Here are some ways you can contribute to this project:
-
You can open an issue if you’d like to request specific data or report a bug/error.
-
If you’d like to contribute code, please check out the contribution guidelines.
Terms of Use
The R code for this package is released as open source under the MIT License. NFL data accessed by this package belong to their respective owners, and are governed by their terms of use.

Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.
