Open sports data for R, Python and JavaScript.
Tidy play-by-play, box scores, schedules, rosters and fitted models (expected points, win probability, expected goals)
for college and pro football, basketball, hockey and baseball, published by automated pipelines that every package reads from.
Website · Cheat sheets · R-universe · Data releases · Data status · Join the list · Patreon
# R: the whole family from R-universe (the core packages are also on CRAN)
install.packages("sportsdataverse",
repos = c("https://sportsdataverse.r-universe.dev", "https://cloud.r-project.org"))
pbp <- cfbfastR::load_cfb_pbp(2025)# Python: pip install sportsdataverse
from sportsdataverse.cfb import load_cfb_pbp
pbp = load_cfb_pbp(seasons=[2025]) # a polars DataFrame; return_as_pandas=True for pandas# Node.js
npm install sportsdataverse| Package | Covers | Version | Downloads | Cheat sheet |
|---|---|---|---|---|
| sportsdataverse | The meta-package: installs and loads the core SDV R packages in one call | |||
| cfbfastR | College football play-by-play, EPA and win probability (CollegeFootballData, ESPN, stats.ncaa.org) | |||
| hoopR | Men's basketball, NBA and college (NBA Stats API, ESPN, KenPom, stats.ncaa.org) | |||
| wehoop | Women's basketball, WNBA and college (WNBA Stats API, ESPN, stats.ncaa.org) | |||
| fastRhockey | Hockey play-by-play and stats (NHL, PWHL, HockeyTech leagues) | |||
| baseballr | Baseball data (MLB Stats API, Statcast, FanGraphs, Baseball Reference, NCAA) | |||
| oddsapiR | Sportsbook odds (The Odds API) | |||
| cfbseedR | College football season simulation: conference tiebreakers and CFP seeding | |||
| cfb4th | College football fourth-down decisions | |||
| cfbplotR | College football logos and colors for ggplot2 | |||
| sdvplotR | New: team logos, wordmarks, headshots and colors across leagues for ggplot2, gt and reactable | |||
| recruitR | College football recruiting (CollegeFootballData, 247Sports) | |||
| usfootballR | MLS and NWSL play-by-play (ESPN) | |||
| softballR | College softball (NCAA, ESPN) | |||
| sportyR | Regulation playing surfaces for ggplot2 | |||
| mlbplotR | MLB logos for ggplot2 and gt |
Community packages in the family: ggshakeR (soccer analysis and visuals: FBref, StatsBomb, Understat) · soccerAnimate (2D animations of soccer tracking data) · nwslR (National Women's Soccer League datasets) · puntr (puntalytics) · chessR (Lichess and Chess.com game data). All of them install from sportsdataverse.r-universe.dev.
| Package | Covers | Version | Downloads |
|---|---|---|---|
| sportsdataverse | 29 leagues across ESPN, NBA/WNBA Stats, HockeyTech, stats.ncaa.org, MLB Statcast and more, plus every release loader and the EP/WP models · cheat sheet | ||
| sdvplot | New, pre-release: team logos, wordmarks, headshots and colors for matplotlib, plotnine and table plots (source) | not yet on PyPI | |
| sportypy | Regulation playing surfaces in Python, the companion to sportyR · cheat sheet | ||
| collegebaseball | College baseball data and analysis (NCAA, Boyd's World) | ||
| nwslpy | National Women's Soccer League data |
Documentation · Cheat sheet (PDF)
ESPN, 247Sports and NCAA endpoints for Node.js. Documentation · Cheat sheet (PDF)
Every load_*() function reads the automated
sportsdataverse-data releases, free to download
directly. Freshness and pipeline health for every producer are on
sportsdataverse.org/status, rebuilt nightly. Out of season a league reads idle
rather than stale; red means its update pipeline failed.
-
Game on Paper: live college football analytics on the same expected-points and win-probability models the packages ship.
-
sdv-toolkit: a Claude Code plugin with skills, agents, hooks and an MCP server encoding the SDV engineering conventions (codegen-safe edit guards, multi-provider league scaffolding, returns-schema and docstring auditors, polars 1.x and parser-contract reviewers, R pkgdown/roxygen helpers).
claude plugin marketplace add sportsdataverse/sportsdataverse claude plugin install sdv-toolkit@sportsdataverse
Thank you to everyone who has filed an issue, sent a fix or added a league.
Printable one-page references for every package: the function families, the loaders, and what each one returns. Free to download, print and hand out; every sheet ships light and dark on US Letter landscape. Browse them all at sportsdataverse.org/cheatsheets
Every sheet
| Sheet | Covers |
|---|---|
| sportsdataverse (R) | the R metapackage |
| sportsdataverse (Python) | the Python package, 6 pages |
| sportsdataverse (Node.js) | the JavaScript client |
| cfbfastR | college football |
| hoopR | men's basketball, NBA + NCAA |
| wehoop | women's basketball, WNBA + NCAA |
| baseballr | baseball |
| fastRhockey | hockey, NHL + PWHL |
| oddsapiR | sportsbook odds |
| cfbplotR · cfb4th · cfbseedR | the college football toolkit |
| sportyR | playing surfaces in R |
| sportypy | playing surfaces in Python |
| mlbplotR | MLB logos for ggplot2 + gt |
The SportsDataverse is led by Saiem Gilani, who authors or maintains most of the packages above with a community of contributors. The first conversation on the SportsDataverse projects happened at the Carnegie Mellon Sports Analytics Conference in 2021, where the paper was selected as the winner of the Data and Software contribution, Open Track, in the reproducible research competition: Slides · Repository · Paper
Release notes and new-dataset announcements by email: sportsdataverse.org/join



