wehoop 3.0.0
WBB cross-source crosswalk (wbb_*_crosswalk / load_wbb_*_crosswalk)
Three new live builders — wbb_team_crosswalk(), wbb_schedule_crosswalk(), wbb_player_crosswalk() — and three cached loaders — load_wbb_team_crosswalk(), load_wbb_schedule_crosswalk(), load_wbb_player_crosswalk() — link ESPN, Fox Sports (Bifrost), and Bart Torvik (barttorvik.com/ncaaw) WBB team/game/player identities into wide, one-row-per-entity tibbles keyed on espn_team_id. Team and schedule crosswalks use deterministic normalized-name joins with curated alias tables for known ESPN/Fox/Torvik name divergences (e.g. “UConn” / “Connecticut”, “Ole Miss” / “Mississippi”); player matching uses blocked Jaro-Winkler fuzzy matching with jersey tiebreakers (min_confidence = 0.92). Yahoo columns are NA placeholders reserved for a future source.
Two new women’s Bart Torvik scrapers — bart_wbb_ratings() (T-Rank team ratings) and bart_wbb_game_schedule() (full season schedule + results) — pull CSV/JSON from barttorvik.com/ncaaw. A new fox_wbb_teams_all() enumerator walks unseen Fox team ids to assemble the complete WBB team directory (single fox_wbb_teams() calls only return one conference at a time). Parallels the WNBA crosswalk surface added in the same release.
WNBA cross-source crosswalk (wnba_*_crosswalk / load_wnba_*_crosswalk)
Three new live builders — wnba_team_crosswalk(), wnba_schedule_crosswalk(), wnba_player_crosswalk() — and three cached loaders — load_wnba_team_crosswalk(), load_wnba_schedule_crosswalk(), load_wnba_player_crosswalk() — link ESPN, WNBA Stats API, and Fox Sports team/game/player identities into wide, one-row-per-entity tibbles. wnba_team_crosswalk() and wnba_player_crosswalk() are keyed on espn_team_id; wnba_schedule_crosswalk() is keyed on espn_game_id. Team and schedule crosswalks use deterministic normalized-name joins; player matching uses blocked Jaro-Winkler fuzzy matching with jersey/DOB tiebreakers (min_confidence = 0.92). Yahoo columns are NA placeholders reserved for a future source. A new fox_wnba_teams() / fox_wbb_teams() wrapper provides the Fox Bifrost team directory used by the crosswalk engine. Cached artifacts are backed by the wnba_crosswalk release tag in sportsdataverse-data.
Fox Sports basketball wrappers (fox_wnba_* / fox_wbb_*)
Read-only Fox Sports “Bifrost” basketball wrappers over api.foxsports.com/bifrost/v1/{wnba,wcbk}/*, complementing the espn_wnba_* / espn_wbb_* families. Eight wrappers per league flatten Fox’s layout-oriented JSON (sections → tables → rows → cells) into tidy wehoop_data tibbles: fox_<lg>_pbp (period-based play-by-play), _boxscore, _odds, _team_roster, _team_stats, _team_gamelog, _standings, _league_leaders. A shared internal layer backs both leagues. Verified live; reverse-engineering notes + an OpenAPI 3.1 spec live in the sdv-internal-refs repo. Parallels the cfbfastR / hoopR / fastRhockey / baseballr / sportsdataverse-py fox_* families.
Her Hoop Stats (hhs_*) — subscription
New hhs_*() family for Her Hoop Stats, a subscription women’s-basketball statistics service. Like hoopR’s KenPom kp_*() wrappers, these log in with the subscriber’s own credentials (read from the email/password arguments, the wehoop.herhoopstats_email / wehoop.herhoopstats_password options, or the HERHOOPSTATS_EMAIL / HERHOOPSTATS_PW environment variables — never bundled) and reuse the session cookie:
-
hhs_teams(min_season, max_season, division)— NCAA women’s team single-season summary index (with ateam_linkper row). -
hhs_team_stats(team_link)— a team’s statistics page. -
hhs_team_roster(team_link)— a team’s player roster.
Examples are \dontrun{} and tests skip unless credentials are present, so R CMD check never attempts a login. Because the service is subscriber-only, the login flow and member-table selectors are provided as a starting point and may need adjustment if the site changes.
WNBA Basketball-Reference (bref_wnba_*)
New bref_wnba_*() family scraping WNBA data from Basketball-Reference — a deep historical source (back to 1997) wehoop did not previously cover, complementing the WNBA Stats API and ESPN wrappers. No account or API key is required:
-
bref_wnba_player_stats(season, table)— league-wide player season stats (table = "per_game"/"totals"/"advanced"). -
bref_wnba_team_stats(season, table)— team season stats (table = "per_game"/"totals"/"per_poss"/"advanced"). -
bref_wnba_standings(season)— both conferences, labelledEastern/Western.
All echo the requested season (and the stat table) as columns. The two Sports-Reference scraping quirks are handled internally (comment-hidden tables are un-commented; columns are read from each cell’s data-stat attribute). Basketball-Reference rate-limits aggressive scraping (~20 requests/minute); examples are \donttest{} and tests are network-gated.
ESPN endpoint naming convention (game_/player_)
The new-in-3.0.0 ESPN endpoint wrappers are named with the shared sportsdataverse taxonomy used by cfbfastR/hoopR: event_competitor* → game_team*, event_competition → game, event_* → game_*, and athlete_* → player_* (58 functions). These wrappers are new this release and were never on CRAN (2.1.0), so the convention is applied directly without deprecation shims. The web-common-v3 /athletes/{id}/stats wrapper becomes *_player_stats_v3 (kept alongside the core-v2 *_player_stats, a different endpoint). The long-standing espn_wnba_pbp() / espn_wnba_team_box() / etc. are unaffected.
New exported functions
New WNBA Stats API V3 endpoints
| Function | Description |
|---|---|
wnba_playbyplayv3() |
V3 play-by-play endpoint wrapper. Used internally by wnba_pbp() via a V3→V2 compatibility pipeline (.v3_to_v2_format_wnba(), .build_player_roster_wnba(), .players_on_court_v3_wnba()) that retains V2-compatible columns while adding V3-only columns (x_legacy, y_legacy, shot_distance, shot_result, is_field_goal, points_total, shot_value). |
wnba_boxscoresummaryv3() |
V3 boxscore summary endpoint wrapper. |
wnba_boxscoreusagev3() |
V3 boxscore usage endpoint wrapper. |
58 new ESPN endpoint wrappers (across 7 domains)
Built on shared internal helpers in R/espn_basketball_*_helpers.R so each WBB/WNBA pair stays DRY (one bugfix to the helper propagates to both). The pkgdown reference index was reorganized into 14 per-domain ESPN subsections to scale the rendered nav.
News & calendar
| Function | Description |
|---|---|
espn_wbb_news() / espn_wnba_news()
|
League-level news feed (site-v2 /news). |
espn_wbb_team_news() / espn_wnba_team_news()
|
Team-level news feed (site-v2 /teams/{id}/news). |
espn_wbb_calendar() / espn_wnba_calendar()
|
Scoreboard calendar blocks (site-v2 /scoreboard?dates={season}). |
Injuries
| Function | Description |
|---|---|
espn_wbb_injuries() / espn_wnba_injuries()
|
League-wide injury feed (site-v2 /injuries). The season parameter is attached as a constant output column for downstream joins (ESPN’s injury endpoint has no server-side season filter). |
espn_wbb_team_injuries() / espn_wnba_team_injuries()
|
Team-scoped injury feed (site-v2 /teams/{id}/injuries). |
WBB injury data is typically sparse on ESPN; both variants return an empty tibble (rather than erroring) when no injuries are reported.
Team detail
| Function | Description |
|---|---|
espn_wbb_team() / espn_wnba_team()
|
Single-team info as a named list (Info, Record, NextEvent, StandingSummary, Coaches) via site-v2 /teams/{id}. |
espn_wbb_team_roster() / espn_wnba_team_roster()
|
Roster (one row per athlete with position, height, weight, headshot) via site-v2 /teams/{id}/roster. |
espn_wbb_team_schedule() / espn_wnba_team_schedule()
|
Schedule (one row per event with opponent, venue, broadcast, result) via site-v2 /teams/{id}/schedule. |
espn_wbb_team_leaders() / espn_wnba_team_leaders()
|
Statistical leaders (long format per category-rank-athlete) via site-v2 /teams/{id}/leaders. |
Athlete coverage (8 endpoints × 2 leagues = 16 functions)
| Function | Endpoint family | Description |
|---|---|---|
espn_wbb_athlete_info() / espn_wnba_athlete_info()
|
site-v2 | Athlete bio/team/position/status/college/draft info. |
espn_wbb_athlete_overview() / espn_wnba_athlete_overview()
|
web-common-v3 | Season overview and last-5-games. |
espn_wbb_athlete_stats() / espn_wnba_athlete_stats()
|
web-common-v3 | Per-category stats as a named list. |
espn_wbb_athlete_gamelog() / espn_wnba_athlete_gamelog()
|
web-common-v3 | Game-by-game log. |
espn_wbb_athlete_splits() / espn_wnba_athlete_splits()
|
web-common-v3 | Long-format home/away/opponent splits. |
espn_wbb_athlete_eventlog() / espn_wnba_athlete_eventlog()
|
core-v2 | Per-event log; statistics.$ref URLs returned as a statistics_ref character column (not auto-resolved). |
espn_wbb_athlete_awards() / espn_wnba_athlete_awards()
|
core-v2 | Awards (sparse / often empty). Empty payload returns a canonical-shape empty tibble. |
espn_wbb_athlete_statisticslog() / espn_wnba_athlete_statisticslog()
|
core-v2 | Statistics log. |
WNBA-only ESPN endpoints
| Function | Description |
|---|---|
espn_wnba_draft() |
Paginates core-v2 /seasons/{year}/draft (up to 20 pages); flat tibble of picks (round, pick, overall, team, athlete, position, college). |
espn_wnba_freeagents() |
Wraps core-v2 /seasons/{year}/freeagents; returns an empty tibble outside the free-agent window. |
espn_wnba_transactions() |
Wraps site-v2 /transactions?season={year}&limit={limit} with null-safe to_team_id for release transactions. |
espn_wnba_conferences() |
Mirrors espn_wbb_conferences() against the WNBA scoreboard-conferences endpoint; uses the same dplyr::select(-dplyr::any_of("subGroups")) drift guard. |
Event detail — all under core-v2 /events/{id}/competitions/{id}/
| Function | Description |
|---|---|
espn_wbb_event_odds() / espn_wnba_event_odds()
|
Game-level odds (one row per provider; WBB typically empty). |
espn_wbb_event_probabilities() / espn_wnba_event_probabilities()
|
Paginated play-level win probabilities (/probabilities); internal page loop capped at 50 pages, respects limit parameter. |
espn_wbb_event_officials() / espn_wnba_event_officials()
|
Per-game officials. |
espn_wbb_event_broadcasts() / espn_wnba_event_broadcasts()
|
Broadcast outlets. |
League-wide catalog (6 endpoints × 2 leagues = 12 functions)
| Function | Description |
|---|---|
espn_wbb_leaders() / espn_wnba_leaders()
|
League leaders (web-common-v3 statistics/byathlete). |
espn_wbb_venues() / espn_wnba_venues()
|
Venue catalog. |
espn_wbb_coaches() / espn_wnba_coaches()
|
Coach roster. |
espn_wbb_athletes_index() / espn_wnba_athletes_index()
|
Athlete index, paginated with progress messages (WBB default limit 25000, WNBA 5000). |
espn_wbb_seasons() / espn_wnba_seasons()
|
Season list. |
espn_wbb_season_info() / espn_wnba_season_info()
|
Single-season info; $ref components returned as character columns (not auto-resolved). |
New data loaders (50+ functions)
All loaders follow the existing load_wnba_pbp() shape — (seasons, ..., dbConnection = NULL, tablename = NULL), progressively() decorator, data.table::rbindlist(use.names = TRUE, fill = TRUE), optional DB write, and a final wehoop_data class set on the in-memory result. Tests gated by WEHOOP_LOAD_TESTS=1 via skip_load_test() in tests/testthat/helper-skip.R. All datasets read from new sportsdataverse-data release tags published by the wehoop-wbb-data, wehoop-wnba-data, and wehoop-wnba-stats-data pipelines.
Season-level rosters and player stats
| Function | Release tag |
|---|---|
load_wbb_rosters() |
espn_womens_college_basketball_rosters |
load_wbb_player_stats() |
espn_womens_college_basketball_player_season_stats |
load_wnba_rosters() |
espn_wnba_rosters |
load_wnba_player_stats() |
espn_wnba_player_season_stats |
load_wnba_stats_rosters() |
wnba_stats_rosters |
load_wnba_stats_coaches() |
wnba_stats_coaches |
load_wnba_stats_player_stats() |
wnba_stats_player_season_stats |
load_wnba_stats_lineups() |
wnba_stats_lineups |
New file R/load_wnba_stats.R houses the four wnba_stats_* loaders. Adds most_recent_wnba_stats_season() helper in R/utils.R (thin wrapper around most_recent_wnba_season() for naming symmetry with the wnba_stats_* family).
Season-summary loaders
| Function | Release tag |
|---|---|
load_wbb_team_stats() |
espn_womens_college_basketball_team_season_stats |
load_wbb_standings() |
espn_womens_college_basketball_standings |
load_wnba_team_stats() |
espn_wnba_team_season_stats |
load_wnba_standings() |
espn_wnba_standings |
load_wnba_draft() |
espn_wnba_draft |
load_wnba_stats_team_stats() |
wnba_stats_team_season_stats |
load_wnba_stats_standings() |
wnba_stats_standings |
load_wnba_stats_draft() |
wnba_stats_draft |
Shot events, per-game rosters, game officials
| Function | Release tag |
|---|---|
load_wbb_shots() |
espn_womens_college_basketball_shots |
load_wbb_game_rosters() |
espn_womens_college_basketball_game_rosters |
load_wbb_officials() |
espn_womens_college_basketball_officials |
load_wnba_shots() |
espn_wnba_shots |
load_wnba_game_rosters() |
espn_wnba_game_rosters |
load_wnba_officials() |
espn_wnba_officials |
load_wnba_stats_shots() |
wnba_stats_shots |
load_wnba_stats_game_rosters() |
wnba_stats_game_rosters |
load_wnba_stats_officials() |
wnba_stats_officials |
WNBA Stats API schedule + game logs + PBP
| Function | Release tag |
|---|---|
load_wnba_stats_schedule() + _manifest()
|
wnba_stats_schedules |
load_wnba_stats_player_game_logs() + _manifest()
|
wnba_stats_player_game_logs (new tag) |
load_wnba_stats_pbp() + _manifest()
|
wnba_stats_pbp |
Populated by the rewritten wehoop-wnba-stats-data/R/wnba_stats_01_pbp.R pipeline (V3 PBP with on-court lineups supplied directly by wnba_pbp(), plus possession assignment, FT-to-foul attribution, garbage-time flag, and a per-season + master schedule build). All three datasets are wired into update_wnba_stats_db() (datasets = c("schedule", "player_game_logs", "pbp", ...)).
Manifest helpers + selective DB updates
- Adds 25
load_*_manifest()helpers (one per non-PBP/non-schedule dataset across the three release-tag families). Each manifest returns the per-seasonseason/row_count/generated_at_utc/source_endpointCSV attached to its release tag, so users can discover available seasons without triggering a heavyload_*()call. - Adds a
datasets=argument onupdate_wnba_db()/update_wbb_db()and a newupdate_wnba_stats_db()for selective DB population. Example:update_wbb_db(datasets = c("rosters", "player_stats")). Whendatasets=NULL, the historical play-by-play behavior is preserved.
Vignettes & reference reorganization
- Adds
vignettes/espn-endpoints.Rmdcovering all 80 ESPN basketball wrappers (existing 22 + 58 new). - Reorganizes the pkgdown reference index into 14 per-domain ESPN subsections so the rendered nav scales for the new surface.
Tier 1 core-v2 expansion (crawler-driven)
20 new wrappers across 9 resource families, paired with the matching hoopR additions. Surfaced by an internal $ref-following crawler that mapped the entire reachable basketball API surface (21,962 fetches, 1,570 unique templates across all 4 basketball leagues). Each wrapper is a thin shim over a shared .espn_basketball_*() helper.
| Function | Description |
|---|---|
espn_wnba_team_season_profile() / espn_wbb_team_season_profile()
|
Era-correct team identity in a specific season plus $ref URLs for deeper resources (record, statistics, leaders, athletes, coaches, etc.). Historical depth back to 1997 (WNBA) / 1982 (WBB). |
espn_wnba_franchise() / espn_wbb_franchise()
|
Franchise-level metadata. IDs are stable across relocations and rebrands. |
espn_wnba_franchises() / espn_wbb_franchises()
|
Index of franchise IDs in the league. |
espn_wnba_season_awards() / espn_wbb_season_awards()
|
Index of award IDs given out in a season. |
espn_wnba_award() / espn_wbb_award()
|
Award detail with winners (one row per winner; multi-recipient awards return one row each). |
espn_wnba_futures() |
WNBA per-season futures betting board, long format (one row per market × team × sportsbook). ESPN does not expose a futures endpoint for WBB. |
espn_wbb_tournaments() |
Index of WBB tournaments (NCAA Tournament, WNIT, conference tournaments). ESPN does not expose a tournaments endpoint for the WNBA. |
espn_wbb_tournament() |
Single tournament metadata + seasons-list $ref. |
espn_wbb_tournament_seasons() |
Seasons in which a given WBB tournament was held. |
espn_wnba_team_record() |
WNBA team record breakdown for one (team × season × season-type). |
espn_wbb_coach() |
Single WBB head coach biography, current team / college refs, and counts of career-record + per-season coaching entries. |
espn_wnba_powerindex() / espn_wbb_powerindex()
|
Per-season Basketball Power Index and related metrics, long format (one row per team × stat). |
Tier 2A core-v2 expansion — season metadata
10 new wrappers across 5 resource families covering season-level metadata: season types, the per-(season × season-type) leaderboards, and (mostly college-only) season rankings. Backed by a shared R/espn_basketball_season_meta_helpers.R. NBA + MBB siblings ship in hoopR’s matching release.
| Function | Description |
|---|---|
espn_wnba_season_types() / espn_wbb_season_types()
|
Index of season-type IDs that exist for one season (1 = preseason, 2 = regular, 3 = postseason, 4 = off-season). |
espn_wnba_season_type() / espn_wbb_season_type()
|
Single season-type detail (start / end dates, has-groups / has-standings / has-legs flags, $ref URLs to deeper resources). |
espn_wnba_season_leaders() / espn_wbb_season_leaders()
|
Per-(season × season-type) leaderboards in long format. 14–15 categories × 25 leaders ≈ 350 rows. |
espn_wnba_season_rankings() / espn_wbb_season_rankings()
|
Index of season-level rankings (WNBA returns zero; WBB returns AP Top 25 + Coaches Poll). |
espn_wnba_season_ranking() / espn_wbb_season_ranking()
|
Per-week snapshot index for one ranking source — each row resolves to a per-week ranked-teams endpoint. |
Tier 2A core-v2 expansion — weeks + per-week rankings
8 new wrappers across 4 resource families covering the week structure of a season. Backed by a shared R/espn_basketball_week_helpers.R. NBA + MBB siblings ship in hoopR’s matching release.
| Function | Description |
|---|---|
espn_wnba_season_weeks() / espn_wbb_season_weeks()
|
Index of weeks within one (season × season-type). WNBA returns 0 rows (no week structure exposed); WBB returns ~20 weeks per regular season. |
espn_wnba_season_week() / espn_wbb_season_week()
|
Single-week metadata (number, start / end dates, text label, $ref to the per-week rankings endpoint). |
espn_wnba_week_rankings() / espn_wbb_week_rankings()
|
Index of ranking sources for one week (WNBA returns zero; WBB returns AP + Coaches). |
espn_wnba_week_ranking() / espn_wbb_week_ranking()
|
The ranked teams (typically 25 rows for WBB) for one (season-type × week × source). Includes current / previous rank, points, first-place votes, trend, record summary, team $ref. |
Tier 2A core-v2 expansion — groups (conferences and divisions)
8 new wrappers across 4 resource families covering the per-season group hierarchy. Backed by a shared R/espn_basketball_group_helpers.R. NBA + MBB siblings ship in hoopR’s matching release.
| Function | Description |
|---|---|
espn_wnba_season_groups() / espn_wbb_season_groups()
|
Index of group IDs (conferences / divisions) for one (season × season-type). |
espn_wnba_season_group() / espn_wbb_season_group()
|
Single-group metadata + $ref URLs to parent, children, member teams, and standings. |
espn_wnba_season_group_children() / espn_wbb_season_group_children()
|
Index of child groups (e.g. divisions inside a conference, or conferences inside the NCAA Division I umbrella group). |
espn_wnba_season_group_teams() / espn_wbb_season_group_teams()
|
Index of team IDs that belong to the group for that (season × season-type). |
Tier 2A core-v2 expansion — team deep + coach-in-season
4 new wrappers paired with hoopR’s Tier 2A team-deep release. Backed by R/espn_basketball_team_deep_helpers.R. (The odds-records and depth-chart endpoints are NBA / MBB only at ESPN — those siblings live in hoopR.)
| Function | Description |
|---|---|
espn_wnba_team_season_roster() / espn_wbb_team_season_roster()
|
Per-season roster (core-v2 seasons/{y}/teams/{id}/athletes). Era-correct alternative to the existing site-v2 espn_*_team_roster(). |
espn_wnba_coach_season() / espn_wbb_coach_season()
|
Single-coach metadata for one (coach × season). Sparse coverage — many combinations 404. |
Tier 2A core-v2 expansion — athlete career + draft pick
5 new wrappers paired with hoopR’s matching release.
| Function | Description |
|---|---|
espn_wnba_athlete_seasons() / espn_wbb_athlete_seasons()
|
List of seasons an athlete appeared in. |
espn_wnba_athlete_career_stats() / espn_wbb_athlete_career_stats()
|
Long-format career stats. Default stat_type = 0L fetches the standard “All Splits” / regular-season view; pass a vector like c(0L, 1L, 2L) to bind multiple types via a stat_type_id column. Coverage of types 1 and 2 is sparse. |
espn_wnba_draft_pick() |
Single WNBA draft-pick detail. WBB has no draft endpoint, so this wrapper is WNBA-only on the wehoop side. |
Tier 2B core-v2 expansion — athlete event log + draft completion
5 new wrappers paired with hoopR’s matching release.
| Function | Description |
|---|---|
espn_wnba_athlete_eventlog_v2() / espn_wbb_athlete_eventlog_v2()
|
Per-season event log from core-v2. One row per (event × team) with played flag + refs. Distinct from espn_*_athlete_eventlog() (web-common-v3 with stats per game). |
espn_wnba_draft_rounds() |
Round-level summary for one WNBA draft year. |
espn_wnba_draft_athletes() |
Index of every athlete in a given WNBA draft year. |
espn_wnba_draft_status() |
Single-row snapshot of one draft year’s current state. |
Tier 2B core-v2 expansion — event meta endpoints
8 new wrappers per league (16 across both packages) wrapping events/{eid}/competitions/{cid}/.... Paired with hoopR’s matching release.
| Function | Description |
|---|---|
espn_wnba_event_situation() / espn_wbb_event_situation()
|
Live game situation: timeouts, fouls, bonus state. |
espn_wnba_event_predictor() / espn_wbb_event_predictor()
|
Pre-game predictor stats in long format (per team × stat). |
espn_wnba_event_powerindex() / espn_wbb_event_powerindex()
|
Per-event power-index $ref index (sparse coverage). |
espn_wnba_event_propbets() / espn_wbb_event_propbets()
|
Per-(event × provider) prop-bet markets in long format. |
Tier 2B core-v2 expansion — event competitor sub-resources
5 new resource families under events/{eid}/competitions/{cid}/competitors/{team_id}/, each shimmed for WNBA and WBB (10 new public functions). Paired with hoopR’s matching release.
| Function | Description |
|---|---|
espn_wnba_event_competitor_linescores() / espn_wbb_event_competitor_linescores()
|
Per-quarter scoring for one team in one event. One row per period (regulation + OT). |
espn_wnba_event_competitor_leaders() / espn_wbb_event_competitor_leaders()
|
Per-team top performers in long format (one row per category × athlete rank). |
espn_wnba_event_competitor_roster() / espn_wbb_event_competitor_roster()
|
Game-day roster index — athlete ids + core-v2 $ref URLs for deferred dereferencing. |
espn_wnba_event_competitor_statistics() / espn_wbb_event_competitor_statistics()
|
Full team-game statistics in long format (one row per category × stat) with raw values and display strings. |
espn_wnba_event_competitor_records() / espn_wbb_event_competitor_records()
|
Team records as of the event: overall / home / away / conference / division breakdowns. |
Tier 2F core-v2 expansion — typed-detail companions
5 new resource families completing index/detail pairs for existing wrappers. WBB has no league-wide draft; WNBA has no coach/tournament wrappers — those families ship in the leagues where the index exists.
| Function | Description |
|---|---|
espn_wnba_event_official_detail() / espn_wbb_event_official_detail()
|
Per-official details for one event. URL segment is the crew order (1-indexed), not the ESPN stable official_id — wrapper takes order = to match event_officials()$order. |
espn_wnba_team_record_detail() / espn_wbb_team_record_detail()
|
Per-record stat array in long format (overall / home / away / conference / per-opponent). |
espn_wbb_coach_record() |
Coach career record by type (Total / Pre Season / Regular Season / Post Season). |
espn_wbb_tournament_season() |
Single tournament-year detail. |
espn_wnba_draft_athlete_detail() |
Rich single-row drafted-player record: height/weight, position, pick, athlete $ref. |
_pkgdown.yml updated for both WBB + WNBA.
Tier 2E.2 core-v2 expansion — team-season stats + quick lookups
3 new resource families across WNBA + WBB (5 new exports — season_draft is WNBA-only). Paired with hoopR’s matching release.
| Function | Description |
|---|---|
espn_wnba_team_season_statistics() / espn_wbb_team_season_statistics()
|
Full team-season-type stat sheet in long format, with rank + rank_display_value per stat. |
espn_wnba_event_competitor_score() / espn_wbb_event_competitor_score()
|
Single-row final score for one team in one event: value, display_value, winner flag, source. |
espn_wnba_season_draft() |
Draft-year top-level metadata: year, number_of_rounds, display_name, plus sub-refs. |
_pkgdown.yml updated to surface the new entries.
Tier 2E.1 core-v2 expansion — event-scoped player + play deep dives
4 new resource families covering per-game player stats, starter/DNP metadata, single-play detail, and on-court personnel (8 new public functions). Paired with hoopR’s matching release.
| Function | Description |
|---|---|
espn_wnba_event_player_box() / espn_wbb_event_player_box()
|
Per-game box score for one athlete in long format (one row per category × stat). |
espn_wnba_event_competitor_roster_entry() / espn_wbb_event_competitor_roster_entry()
|
Per-athlete game-day roster row: starter, DNP + reason, ejected, period, substitution slot. |
espn_wnba_event_play() / espn_wbb_event_play()
|
Rich single-play detail (sequence, period, clock, text, scoring flags, shot coordinates). |
espn_wnba_event_play_personnel() / espn_wbb_event_play_personnel()
|
Players on court at a specific play (long format). Sparse coverage. |
Tier 2D core-v2 expansion — position dictionary
2 new resource families for the league-specific position dictionary (4 new public functions). Position ids are not shared across the basketball family — id 1 resolves to Point Guard in WNBA and Center in WBB. These wrappers make the dictionary explicit so users can disambiguate position $ref URLs in athlete records.
| Function | Description |
|---|---|
espn_wnba_positions() / espn_wbb_positions()
|
League position dictionary index. One row per position with id + canonical $ref. |
espn_wnba_position() / espn_wbb_position()
|
Single-position detail: id, name, displayName, abbreviation, leaf flag, parent $ref. |
Both _pkgdown.yml league-catalog subsections updated to surface the new entries.
Behavior changes to existing functions
Restored functionality (un-deprecations)
wnba_draftboard() is rewritten against the new upstream endpoint https://content-api-prod.nba.com/public/1/leagues/wnba/draft/{season}/board (the old wnba.com/wp-json/api/v1/get_draft_board endpoint stopped serving data). It now returns a tidied named list of two tibbles — board (draft metadata) and picks (one row per pick with team, prospect, career stats, and headshot URL). See ?wnba_draftboard for the column schema.
The following wrappers were deprecated in 2.1.0 or earlier in 3.0.0 dev when their underlying endpoints returned empty result sets. Re-probing in mid-season 2026 (verified 2026-05-16 against LeagueID=10, current 2025-26 season) shows the endpoints have resumed publishing populated data, so the lifecycle::deprecate_stop() shim has been removed and the original body restored on each:
| Restored function | Verified return |
|---|---|
wnba_playerprofilev2() |
SeasonTotalsRegularSeason (9 seasons), SeasonTotalsPostSeason (7), SeasonTotalsAllStarSeason (6), SeasonTotalsPreseason (7), matching CareerTotals* rollups, SeasonRankings*, SeasonHighs (17), CareerHighs (22), and NextGame for A’ja Wilson (PLAYER_ID = 1628932). Default league_id is now '10'. |
wnba_teaminfocommon() |
TeamInfoCommon (current-season W/L + conference/division + slug/code), TeamSeasonRanks (PTS/REB/AST + opponent PTS rank), and 76-season AvailableSeasons list for the Aces. Body un-commented; error handling migrated from raw cli::cli_alert_danger() to .report_api_error() / .report_api_warning(). |
wnba_teamyearbyyearstats() |
TeamStats with 30 seasons × 34 columns of full franchise-level year-by-year ledger (GP, W, L, win%, conference rank, division rank, ratings) for the Aces. |
wnba_leaguelineupviz() |
LeagueLineupViz with 458–4,169 5-player lineup combinations × 25 columns (off/def/net rating, pace, TS%, eFG%) depending on filters, current 2025-26 WNBA season. |
ESPN return-shape streamlining (rectangularization)
Following an audit of all ESPN wrappers against the package’s “single wide, self-describing tibble” preference:
| Function(s) | Change |
|---|---|
espn_wbb_athlete_stats(), espn_wnba_athlete_stats()
|
Return shape changed from a named list of per-category tibbles to a single wide wehoop_data tibble. One row per athlete-season-team, with each ESPN stat category spread across prefixed columns (avg_* season averages, tot_* totals, misc_* miscellaneous). Stat columns are labeled from ESPN’s positional names array per category. The previous list (mostly empty General/Offensive/… slots plus nested stats/season list-columns) is gone; downstream code that indexed $General etc. should read the wide columns instead. |
espn_wbb_athlete_gamelog(), espn_wnba_athlete_gamelog(), espn_*_athlete_splits(), espn_*_athlete_eventlog(), espn_*_athlete_statisticslog()
|
Now echo the athlete_id and season inputs back as the first two columns, so the returned tibble is self-describing without re-attaching context. Implemented via a new internal .echo_identity() helper that preserves the wehoop_data class. |
Bug fixes
| Function | Fix |
|---|---|
wnba_schedule() |
Migrated off the retired stats.wnba.com/stats/scheduleleaguev2 endpoint (returns Connection Reset since March 2026; issue #53) to the public CDN at cdn.wnba.com/static/json/staticData/scheduleLeagueV2.json. Same leagueSchedule.gameDates[].games[] payload, no authentication or special headers, stays current with the live season. For historical seasons (CDN only serves the current season) the function now emits a cli::cli_alert_info pointing users at load_wnba_schedule(seasons = ...). |
wnba_leaguegamelog() |
Two fixes for issue #48: (1) default league_id was '00' (NBA), causing every parameterless call to return ~2,500 rows of NBA data; default is now '10' (WNBA), matching the rest of the package. (2) The outgoing query-string parameter order was reordered to put LeagueID first — the WNBA Stats API as of 2026 returns a Cloudflare HTML page for the alphabetical ordering but a populated LeagueGameLog for LeagueID-first. Verified 2026-05-16: alphabetical-first returns HTML, LeagueID-first returns 572 WNBA rows. |
.players_on_court() |
Corrected quarter-length math to use 10-minute WNBA quarters (600 seconds/quarter, 2400 seconds of regulation) rather than the NBA 12-minute quarter constants. |
espn_wbb_conferences() |
ESPN dropped the subGroups column from its scoreboard-conferences response; the function now uses dplyr::select(-dplyr::any_of("subGroups")) so further column drops no longer break the call. Also initializes conferences <- NULL before tryCatch so a transient error surfaces a cli_alert_danger instead of object 'conferences' not found. |
ncaa_wbb_NET_rankings() |
NCAA.com renamed table headers — after janitor::clean_names() these land as conf/prev/quad_1..4, breaking the documented schema. The function now renames conf → conference and prev → previous via dplyr::rename(dplyr::any_of(...)) so existing consumers keep working while the new quad_* columns ride along untouched. |
ncaa_wbb_teams() |
No longer returns NA ids. stats.ncaa.org migrated team links from the legacy /team/{team_id}/{season_id} pair to a single modern /teams/{season_team_id} resource, so the previous str_extract("(\\d+)/(\\d+)") matched nothing. The function now extracts ids from whichever url shape is present (legacy rows populate team_id/season_id; modern rows populate the new season_team_id column), so the id columns are never all-NA when the site flips formats. |
wnba_data_pbp() |
Added plays_df <- data.frame() init so HTTP/2 stream errors from data.wnba.com return an empty data frame with a cli_alert_danger rather than object 'plays_df' not found. |
Return-value initialization sweep. Swept ~124 WNBA and ESPN wrappers that return(df_list) (or returned other vars assigned only inside tryCatch(expr = ...)) without initializing the return value first. When the API errored, callers saw object 'df_list' not found instead of the intended cli::cli_alert_danger + empty-list fallback. Each wrapper now initializes its return variable before tryCatch, so errors degrade gracefully to an empty list / NULL. Affected files: R/wnba_stats_boxscore.R, R/wnba_stats_boxscore_v3.R, R/wnba_stats_cume.R, R/wnba_stats_draft.R, R/wnba_stats_franchise.R, R/wnba_stats_leaders.R, R/wnba_stats_league.R, R/wnba_stats_league_dash.R, R/wnba_stats_lineups.R, R/wnba_stats_pbp.R, R/wnba_stats_player.R, R/wnba_stats_player_dash.R, R/wnba_stats_roster.R, R/wnba_stats_scoreboard.R, R/wnba_stats_shotchart.R, R/wnba_stats_team.R, R/wnba_stats_team_dash.R, R/wnba_stats_video.R, R/espn_wbb_data.R, R/espn_wnba_data.R, R/wnba_data_pbp.R.
Data-loader URL migration
| Function | Change |
|---|---|
update_wnba_db() |
Now uses the sportsdataverse-data releases URL instead of the legacy wehoop-data repository URL. |
update_wbb_db() |
Same migration. |
Deprecations (lifecycle, slated for 3.1.0 removal)
Adds lifecycle to Imports and migrates every existing cli::cli_alert_danger() deprecation stub to lifecycle::deprecate_stop(), matching the style used in hoopR. Calling any of these functions now errors with a structured lifecycleDeprecatedError that names a replacement (or, where none exists, an explanation). Their tests skip with a "Deprecated: <fn>() now errors by design; use <replacement>." message before the function call.
Newly deprecated in 3.0.0 — endpoints returned <!DOCTYPE html> (HTTP 404 / maintenance page) at test time:
| Deprecated function | Replacement | Reason |
|---|---|---|
wnba_boxscoreplayertrackv2() |
wnba_boxscoreplayertrackv3() |
V2 returns 404 HTML |
wnba_data_pbp() |
wnba_pbp() |
data.wnba.com mobile_teams feed unstable; HTTP/2 stream errors routine |
wnba_playercareerbycollege() |
wnba_playercareerbycollegerollup() / wnba_leaguedashplayerbiostats()
|
details endpoint returns empty |
wnba_teamgamestreakfinder() |
wnba_teamgamelogs() |
endpoint returns 404 HTML |
wnba_teamhistoricalleaders() |
wnba_franchiseleaders() |
endpoint returns 404 HTML |
Already deprecated, re-stated under the lifecycle pattern:
| Deprecated function | Replacement | Deprecated in |
|---|---|---|
wnba_boxscorehustlev2() |
(endpoint dead, no replacement) | 3.0.0 |
wnba_hustlestatsboxscore() |
(endpoint dead, no replacement) | 3.0.0 |
wnba_leaguehustlestatsplayer() |
(endpoint dead, no replacement) | 3.0.0 |
wnba_leaguehustlestatsplayerleaders() |
(endpoint dead, no replacement) | 3.0.0 |
wnba_leaguehustlestatsteam() |
(endpoint dead, no replacement) | 3.0.0 |
wnba_leaguehustlestatsteamleaders() |
(endpoint dead, no replacement) | 3.0.0 |
wnba_homepageleaders() |
wnba_homepagewidget() |
2.1.0 |
wnba_homepagev2() |
wnba_homepagewidget() |
2.1.0 |
wnba_leaderstiles() |
wnba_homepagewidget() |
2.1.0 |
wnba_scoreboard() |
wnba_scoreboardv3() |
2.1.0 |
wnba_videodetails() |
wnba_videoevents() |
3.0.0 |
wnba_videodetailsasset() |
wnba_videoevents() |
3.0.0 |
Soft warning (lifecycle::deprecate_warn) — function still runs but recommends a replacement; will escalate to deprecate_stop if the upstream endpoint isn’t restored:
-
wnba_boxscoresummaryv3()→wnba_boxscoresummaryv2(). The V3 endpoint still answers 200 OK with the full schema, but the core result sets (game_summary,line_score,inactive_players,other_stats,available_video,game_info,arena_info) come back zero-row in 2025; onlyofficialsandlast_five_meetingspopulate. The V2 variant still returns full data.
Documentation improvements
@return column descriptions on every exported function
Every @return markdown table across the 42 R source files is upgraded from two columns (col_name | types) to three columns (col_name | types | description). 580+ tables touched and 4,341 total table rows; every result set on every function now ships a per-column description in ?<function> help, the pkgdown reference, and the rendered man pages. Existing prose \describe{} blocks (notably on load_wbb_pbp(), load_wnba_pbp(), and parameter_descriptions) are unchanged.
Coverage — frequency-weighted, what ?fn readers actually see — 74.7% of the 4,341 @return table rows now carry a hand-quality description (curated + ESPN-API + mined). The remaining 25.3% are heuristic-fallback rows; the heuristic generator’s snake_case expansion + suffix rules cover most of those acceptably (e.g. defended_at_rim_field_goals_attempted → “Number of defended at rim field goals attempted.”), and the long tail is dominated by single-occurrence columns from low-traffic endpoints.
Description sources (precedence order, first match wins):
-
tools/docs/column_descriptions_curated.csv— 619 hand-authored entries focused on the highest-traffic columns and basketball / ESPN domain conventions (team identity, advanced shooting metrics, hustle stats, V2 vs V3 column pairs, ESPN athlete / event / news fields). -
tools/docs/column_descriptions_api.csv— 181 ESPN-authored descriptions mined live from 14 endpoints per league across bothwnbaandwomens-college-basketball, covering 9 endpoint families: core-v2 athlete statistics (per-season, post-season, career), core-v2 team statistics, core-v2 statisticslog, core-v2 leaders, web-v3 athlete stats / splits / gamelog / overview, and web-v3 statistics/byathlete leaderboards. Three response shapes are recognized: nested categories with stats objects, parallel arrays under categories, and top-level parallel-array shapes (splits / gamelog). This covers the ESPN stat-section column families (general_*,offensive_*,defensive_*,rebounding_*,shooting_*,misc_*) with full prose definitions straight from ESPN — e.g.defensive_blocks→ “Short for blocked shot, number of times when a defensive player legally deflects a field goal attempt from an offensive player.” Re-mine at any time withRscript tools/docs/mine_api_descriptions.R. - Mined
\item{...}{...}lines from existing\describe{}blocks. - Heuristic patterns driven by column-name suffixes (
*_id,*_pct,*_made,*_attempted,*_per_36, etc.) with basketball-friendly noun substitution (fg → field goals,tov → turnovers,oreb → offensive rebounds).
New tooling under tools/docs/ (.Rbuildignore’d, sibling of the existing tools/probes/ diagnostic toolkit):
| File | Purpose |
|---|---|
build_column_descriptions.R |
One-shot builder that combines the curated CSV + ESPN-API CSV + mined describe-block entries + heuristic fallbacks into column_descriptions.csv. |
column_descriptions_curated.csv |
Hand-edit surface; new entries here override API / mined / heuristic outputs on the next build. |
column_descriptions_api.csv |
ESPN-API-mined descriptions, regenerated by mine_api_descriptions.R. |
column_descriptions.csv |
Generated dictionary (1,381 rows; 619 curated, 161 ESPN-API, 8 mined, 3 parameter-overlap, 590 heuristic). |
mine_api_descriptions.R |
Driver that probes the ESPN endpoints which self-document their stat columns. |
audit_column_descriptions.R |
Diagnostic that reports coverage stats and the highest-leverage heuristic columns still to curate. |
markdown_man_table_helper.R |
Programmatic helpers (load_column_descriptions(), make_return_table_md(), roxygenize_return(), augment_return_tables_in_file(), augment_all_r_files(), plus the public mine_espn_api_descriptions(url) API miner). Legacy paste-snippet hand-tools preserved inside if (FALSE) {} so the file is source()-able. |
espn_endpoints_catalog.md |
Basketball-scoped ESPN endpoint reference used to scope the miner. |
The sweep is idempotent: re-running augment_all_r_files() after updating the dictionary refreshes existing 3-column tables in place rather than appending a fourth column.
Internals
HTTP layer
Jittered exponential backoff in
.retry_request(). Replaced the default fixed 2-second retry cadence withrunif(1, 0.5, 1.5) * 2^iso retries from concurrent users hitting the same rate-limited endpoint don’t synchronize into a thundering-herd burst that Cloudflare scores as an attack. Same 3 max tries; same backoff envelope (~0.5–6s); just spread.-
Restored proxy support. When wehoop migrated from
httrtohttr2in the V3 work, the legacyhttr::use_proxy()plumbing was dropped andrequest_with_proxy()quietly stopped honoring proxies (its...was preserved purely for source compatibility). Bothrequest_with_proxy()and the lower-level.retry_request()now accept aproxy =argument:-
proxy = NULL(default) — libcurl readshttp_proxy/https_proxy/no_proxyenv vars automatically. -
proxy = "http://host:port"— string form, forwarded tohttr2::req_proxy(url = ...). -
proxy = list(url=, port=, username=, password=, auth=)— named list spread intohttr2::req_proxy()for authenticated proxies.
Resolution order in
.retry_request(): explicitproxy =arg →getOption("wehoop.proxy")→ libcurl env vars. The...thread works for WNBA Stats wrappers (which forward intorequest_with_proxy()); ESPN / NCAA wrappers call.retry_request()directly without..., so useoptions(wehoop.proxy = ...)at the top of the session to cover those without per-function plumbing. Validated end-to-end:ncaa_wbb_teams()andespn_wnba_game_all()both routed through an authenticated test proxy via the option fallback. -
Test infrastructure
-
Empty / NULL responses now FAIL the test instead of silently SKIPping. The earlier
skip("No rows returned from endpoint at test time")guard was hiding regressions: when an upstream endpoint starts returning HTML (404 / maintenance) or breaks in some other silent way, the test should flag it. Converted all 117 such guards acrosstests/testthat/test-*.Rfromskip(...)tofail(...) + return(invisible(NULL))so the test surfaces a FAIL count for follow-up. Deprecation skips and the env-gatedskip_*_test()/skip_on_cran()/skip_on_ci()helpers are unchanged. - Pinned 16
wnba_team*test files frommost_recent_wnba_season()tomost_recent_wnba_season() - 1so the team-stats endpoints have a known-completed season to query and don’t degenerate to “no rows” in the WNBA off-season window.wnba_teams()and standings tests still track the live season because that’s what they’re meant to verify. - Bumped
.ncaa_headers()user-agent to Chrome 130 and added theSec-Fetch-*/sec-ch-ua-*headers a real browser sends. -
ncaa_wbb_teams()keeps its legacystats.ncaa.org/team/inst_team_listscrape (per-season per-division team list withseason_idpopulated), and now threads theproxy =argument from...through to.retry_request()at the top level.stats.ncaa.orgis fronted by Akamai and returns HTTP 403 (Reference #18.<...>) to many residential and cloud IP ranges; pass a proxy that egresses from a non-blocked address — either per-call (ncaa_wbb_teams(year, division, proxy = list(url=, port=, username=, password=))) or session-wide (options(wehoop.proxy = list(...))). See theNetwork accesssection of?ncaa_wbb_teamsfor the full resolution order.
Test suite hardening (column-drift resilience)
- Flipped 394 column assertions from strict
expect_equal(sort(colnames(x)), sort(cols))to subset checksexpect_in(sort(cols), sort(colnames(x)))across 115 test files — per the CLAUDE.md guidance, WNBA / ESPN APIs add columns without removing old ones, and the strict checks were brittle. - Injected
skip("No rows returned from endpoint at test time")guards into 114 test files so tests which accessx[[1]]degrade gracefully to a skip (rather than a subscript-out-of-bounds error) when the upstream endpoint errors or returns empty. (Later converted tofail()— see “Test infrastructure” above.) - Cleaned stale column names out of expected
colslists where ESPN renamed/removed columns (jersey,active,team_x_ref_2,team_is_all_star,Team_ID→TEAM_ID). - Added per-element null/empty-column check helpers to
test-wnba_teamvsplayer.Randtest-wnba_playerdashboardbyclutch.Rso tests tolerate the WNBA Stats API returning fewer result-set elements than the test expects. - Added
tools/directory (excluded from the package build via.Rbuildignore) containing the one-off R scripts used to apply the above sweeps:patch_df_list_init.R,patch_return_var_init.R,flip_expect_equal_cols.R,inject_skip_guard.R.
Release / CRAN preparation
- Add
cph(copyright holder) role toSaiem GilaniinAuthors@R(CRAN strict requirement). - Bump
LICENSEandLICENSE.mdcopyright year from 2020 to 2026. - Add full roxygen blocks (description,
@return,@examples) tomost_recent_wbb_season()andmost_recent_wnba_season(), which had been title/@export-only. - Add
@examples \donttest{}blocks to all 58 new ESPN endpoint wrappers. Live-API examples are wrapped in\donttest{}so they do not run during routineR CMD checkbut are still exercised under--run-donttest. The redundant@detailscode-block samples were removed from these 58 functions; the legacy@details-with-code-block convention is retained for the WNBA Stats API (wnba_*) and NCAA (ncaa_wbb_*) wrappers per the project’s documentation conventions inCLAUDE.md. - Modernize
inst/CITATION: replace deprecatedcitEntry()/personList()withbibentry()/c(person(), ...)(R 4.x deprecation cleanup). - Add
parameter_descriptions(dataset) andyear_to_season(utility) to_pkgdown.ymlreference index sopkgdown::check_pkgdown()passes (resolves the gh-pages deploy failure).
wehoop 2.1.0
CRAN release: 2024-07-21
-
wnba_homepagewidget()function added to replace the following homepage functions being deprecated. -
wnba_homepageleaders()function deprecated due to WNBA Stats API deprecation. -
wnba_homepagev2()function deprecated due to WNBA Stats API deprecation. -
wnba_leaderstiles()function deprecated due to WNBA Stats API deprecation. -
wnba_scoreboard()function deprecated due to WNBA Stats API deprecation (usewnba_scoreboardv3()). -
wnba_teaminfocommon()function deprecated due to WNBA Stats API deprecation (usewnba_teamdetails()).
wehoop 2.0.0
CRAN release: 2023-11-25
-
load_wnba_*()functions now usesportsdataverse-datareleases url instead ofwehoop-datarepository URL -
load_wbb_*()functions now usesportsdataverse-datareleases url instead ofwehoop-datarepository URL -
wnba_pbp()function and newwnba_pbps()function added withon_court(defaultTRUE) parameter to return on court players for each play event
wehoop 1.9.0
WNBA Stats API Live Endpoints
-
wnba_live_pbp()function added. -
wnba_live_boxscore()function added. -
wnba_todays_scoreboard()function added.
WNBA Boxscore V3 (and V3-styled) Endpoints Added
-
wnba_scoreboardv3()function added. -
wnba_boxscoretraditionalv3()function added. -
wnba_boxscoreadvancedv3()function added. -
wnba_boxscoremiscv3()function added. -
wnba_boxscorescoringv3()function added. -
wnba_boxscoreusagev3()function added. -
wnba_boxscorefourfactorsv3()function added. -
wnba_boxscoreplayertrackv3()function added. -
wnba_boxscorehustlev2()function added.
Other WNBA Stats API functions added
-
wnba_shotchartlineupdetail()function added. -
wnba_franchiseleaderswrank()function added. -
wnba_leaderstiles()function added. -
wnba_leagueleaders()function added. -
wnba_videodetailsasset()function added. -
wnba_infographicfanduelplayer()function added.
Other Functions Added
-
ncaa_wbb_teams()function added.
Proxy Capability Added and Other Notes
- Add rlang dots option for passing
httr::use_proxy()option townba_*()functions - Returns documentation added for all working WNBA Stats API endpoints and ESPN functions
- Tests added for all working WNBA Stats API endpoints and ESPN functions, over 750 tests when run locally
wehoop 1.8.0
- Add proxy rlang dots option for passing httr::use_proxy() option to wnba_stats_*() functions
- Improved output for
espn_wbb_team_box(),espn_wbb_player_box(),espn_wnba_team_box(),espn_wnba_player_box()
wehoop 1.7.0
-
espn_wbb_game_rosters()function added. -
espn_wnba_game_rosters()function added. -
wnba_teams()function added. Useful for cross-walking between ESPN and WNBA Stats API
wehoop 1.6.0
- Updates tidyr and dplyr statements to use quotations on columns instead of data masking per tidyselect deprecation notice.
wehoop 1.5.0
CRAN release: 2022-06-17
~106 WNBA Stats API functions added
Adds 4 ESPN WBB and WNBA functions
wehoop::espn_wbb_player_stats()function added.wehoop::espn_wbb_team_stats()function added.wehoop::espn_wnba_player_stats()function added.wehoop::espn_wnba_team_stats()function added.Removes
furrrandfuturedependencies and replaces withpurrr (>= 0.3.0)
wehoop 1.2.0
CRAN release: 2021-11-03
- Add returns for all the functions
- Update a handful of field names from the scoreboard functions and to also include neutral_site and conference_competition columns for the women’s college basketball scoreboard function.
wehoop 1.1.1
- Change functions from
furrr::future_map_dfr()functions todata.table::rbindlist()functions for loaders.
wehoop 1.1.0
Add schedule loaders
-
wehoop::load_wbb_schedule()function added -
wehoop::load_wnba_schedule()function added
wehoop 1.0.0
Add team box score loaders
-
wehoop::load_wbb_team_box()function added -
wehoop::load_wnba_team_box()function added
Add player box score loaders
-
wehoop::load_wbb_player_box()function added -
wehoop::load_wnba_player_box()function added
wehoop 0.9.1
Clean names and team returns
- All functions have now been given the
janitor::clean_names()treatment -
wehoop::espn_wbb_teams()has updated the returns to be more identity information related only -
wehoop::espn_wnba_teams()to be more identity information related only - All tests were updated
wehoop 0.9.0
Loading capabilities added to the package
-
wehoop::load_wbb_pbp()andwehoop::update_wbb_db()functions added -
wehoop::load_wnba_pbp()andwehoop::update_wnba_db()functions added
wehoop 0.3.0
Dependencies
-
Rversion 3.5.0 or greater dependency added -
purrrversion 0.3.0 or greater dependency added -
rvestversion 1.0.0 or greater dependency added -
progressrversion 0.6.0 or greater dependency added -
usethisversion 1.6.0 or greater dependency added -
xgboostversion 1.1.0 or greater dependency added -
tidyrversion 1.0.0 or greater dependency added -
stringrversion 1.3.0 or greater dependency added -
tibbleversion 3.0.0 or greater dependency added -
furrrdependency added -
futuredependency added
wehoop 0.2.0
- Added support for ESPN’s play-by-play endpoints with the addition of the following functions:
-
wehoop::espn_wnba_game_all()- a convenience wrapper function around the following three functions (returns the results as a list of three data frames) wehoop::espn_wnba_team_box()wehoop::espn_wnba_player_box()wehoop::espn_wnba_pbp()wehoop::espn_wnba_teams()wehoop::espn_wbb_scoreboard()
wehoop 0.1.0
- Added support for ESPN’s play-by-play endpoints with the addition of the following functions:
-
wehoop::espn_wbb_game_all()- a convenience wrapper function around the following three functions (returns the results as a list of three data frames) wehoop::espn_wbb_team_box()wehoop::espn_wbb_player_box()wehoop::espn_wbb_pbp()wehoop::espn_wbb_teams()wehoop::espn_wbb_conferences()wehoop::espn_wbb_scoreboard()wehoop::ncaa_wbb_NET_rankings()wehoop::espn_wbb_rankings()
