Skip to contents

wehoop is an R package for working with women’s college and professional basketball data. The package has functions to access live play by play and box score data from ESPN with shot locations when available.

A scraping and aggregating interface for ESPN’s women’s college basketball and WNBA statistics. It provides users with the capability to access the API’s game play-by-plays, box scores, standings and results to analyze the data for themselves.

Installation

You can install the CRAN version of wehoop with:

This documentation describes wehoop 3.0.0. If the CRAN release hasn’t caught up yet, install the GitHub development version instead:

# You can install using the pak package using the following code:
if (!requireNamespace('pak', quietly = TRUE)){
  install.packages('pak')
}
pak::pak("sportsdataverse/wehoop")

Quick Start

WNBA full play-by-play seasons (2002-2026) ~ 1-2 minutes

tictoc::tic()
progressr::with_progress({
  wnba_pbp <- wehoop::load_wnba_pbp()
})
## Warning in readRDS(con): cannot open URL
## 'https://github.com/sportsdataverse/sportsdataverse-data/releases/download/espn_wnba_pbp/play_by_play_2026.rds':
## HTTP status was '404 Not Found'

## Warning: Failed to readRDS from
## <https://github.com/sportsdataverse/sportsdataverse-data/releases/download/espn_wnba_pbp/play_by_play_2026.rds>
tictoc::toc()
## 0.3 sec elapsed

## Warning: Unknown or uninitialised column: `game_id`.

## 0 rows of WNBA play-by-play data from 0 games.

Women’s college basketball full play-by-play seasons (2004-2026) ~ 2-3 minutes

tictoc::tic()
progressr::with_progress({
  wbb_pbp <- wehoop::load_wbb_pbp()
})
tictoc::toc()
## 10.58 sec elapsed

## 2824090 rows of women's college basketball play-by-play data from 6011 games.

Documentation

For more information on the package and function reference, please see the wehoop documentation website.

wehoop 3.0.0 ships 180 ESPN basketball endpoint wrappers (88 espn_wbb_* + 92 espn_wnba_*) covering reference and catalog data, team detail, athlete coverage, event-level enrichments (odds, win probability, officials, broadcasts), WNBA-only artifacts (draft, free agents, transactions), and league-wide catalogs. See the ESPN basketball endpoints vignette for a full walkthrough.

Beyond the live ESPN scrapers, wehoop ships 90 load_*() release-dataset loaders that pull pre-built season parquet/rds instead of hitting the source APIs: load_wnba_* / load_wbb_* (ESPN-backed pbp, box scores, rosters, standings, crosswalks), load_wnba_stats_* (WNBA Stats API, including load_wnba_stats_possessions()), and the load_ncaa_wbb_* family (pbp, shots, lineups, matchup_stints, possessions, rapm_within_team, rapm (league-wide), player_box, team_box, rosters, team_rosters, schedule, team_ids; seasons 2010-2026, shots 2019-2026, rapm 2011-2026) backed by the sportsdataverse-py NCAA engine. Model-dataset loaders round out the surface: load_wnba_player_impact(), load_wbb_player_value(), and load_wbb_ratings().

Breaking Changes

Full News on Releases

Follow the SportsDataverse (@SportsDataverse) on X and star this repo

X Follow

GitHub stars

Our Authors

@SaiemGilani @saiemgilani

@HutchNGo @hutchngo

Citations

To cite the wehoop R package in publications, use:

BibTex Citation

@misc{hutchinson_gilani_2021_wehoop,
  title = {wehoop: Access Women’s Basketball Play by Play Data},
  url = {http://doi.org/10.32614/CRAN.package.wehoop},
  DOI = {10.32614/cran.package.wehoop},
  journal = {CRAN: Contributed Packages},
  publisher = {The R Foundation},
  author = {Gilani,  Saiem and Hutchinson,  Geoffery},
  year = {2021},
  month = nov
}