Table of Contents generated with DocToc
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_*_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_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.
hhs_*) — subscriptionNew 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 a
team_link per 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.
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, labelled Eastern / 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.
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.
| Function | Description |
|---|---|
load_ncaa_wbb_rapm() |
League-wide regularized adjusted plus-minus (single ridge over all
Division I stints per season, Torvik-gated), one row per player-season.
Backed by the ncaa_wbb_rapm release tag, seasons 2011-2026.
Distinct from the within-team
load_ncaa_wbb_rapm_within_team(). |
| 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. |
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). |
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
load_*_manifest() helpers (one
per non-PBP/non-schedule dataset across the three release-tag families).
Each manifest returns the per-season season /
row_count / generated_at_utc /
source_endpoint CSV attached to its release tag, so users
can discover available seasons without triggering a heavy
load_*() call.datasets= argument on
update_wnba_db() / update_wbb_db() and a new
update_wnba_stats_db() for selective DB population.
Example:
update_wbb_db(datasets = c("rosters", "player_stats")).
When datasets=NULL, the historical play-by-play behavior is
preserved.vignettes/espn-endpoints.Rmd covering all 80 ESPN
basketball wrappers (existing 22 + 58 new).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). |
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. |
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. |
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). |
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. |
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. |
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. |
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. |
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. |
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.
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.
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. |
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.
The wehoop pkgdown reference index now lists every Tier 1 + Tier 2A wrapper (the 3.0.0 pkgdown build was failing with “topics missing from index” for the Tier 1 additions — fixed by adding a “Core-v2 expansion” subsection per league).
Seventeen further bulk-data loaders, following the established loader shape:
sportsdataverse-py engine (wehoop ships loaders only):
load_ncaa_wbb_pbp(), load_ncaa_wbb_shots()
(2019+), load_ncaa_wbb_lineups(),
load_ncaa_wbb_matchup_stints(),
load_ncaa_wbb_possessions(),
load_ncaa_wbb_rapm() (league-wide regularized adjusted
plus-minus, 2011+), load_ncaa_wbb_rapm_within_team(),
load_ncaa_wbb_player_box(),
load_ncaa_wbb_team_box(),
load_ncaa_wbb_rosters(),
load_ncaa_wbb_team_rosters(),
load_ncaa_wbb_schedule(), and
load_ncaa_wbb_team_ids() (2010+ unless noted).load_wnba_stats_possessions() (1997+), also registered
in update_wnba_stats_db().load_wnba_player_impact()
(1997+), load_wbb_player_value() (2014+), and
load_wbb_ratings() (2008+).wnba_pbp() (V3): when the flaky upstream
gamerotation call fails or returns empty, on-court player
columns are now inferred from substitution events (the pre-V3 method)
instead of degrading to all-NA, with a warning naming the
affected game id.espn_wbb_standings() now requests ESPN’s
conference-grouped standings — the flat league list silently omitted the
six 2022-23 Division-I newcomer programs (356 of 362 teams). All 362
teams are returned and the result gains a conference
column.espn_wnba_pbp() / espn_wbb_pbp() no longer
error on games whose plays carry fewer (or more) participants than a
previously hardcoded column count; participant columns are named
dynamically and padded to the documented schema.... is now genuinely forwarded to
DBI::dbWriteTable() in every loader documenting it (35 call
sites), and load_wbb_player_core(),
load_wnba_team_box(), and
load_wnba_player_core() — which documented an optional
database write without performing it — now perform it.load_wbb_pbp() / load_wnba_pbp() docs:
type_text is ESPN-verbatim (“MadeFreeThrow” is the
free-throw play type for made and missed attempts — filter
makes with scoring_play), score_value carries
the attempt’s value even on misses, and load_wbb_pbp()
documents the producer-appended pregame_home_prob /
home_win_prob columns.The pre-2006 WNBA (2002-2005) and pre-2016 NCAA WBB (2003-2015) ESPN
play-by-play release assets were rebuilt with the correct halves-era
clock model: those seasons were 2×20-minute halves, but the published
half, start/end *_seconds_remaining, overtime,
and timeout-bucket columns had been derived under a 4×10-minute quarters
assumption. load_wnba_pbp() and load_wbb_pbp()
for the affected seasons now serve corrected values (row counts and all
other columns unchanged).
Probe sweeps against stats.wnba.com (August 2026)
confirmed five more endpoints permanently empty upstream; their wrappers
now emit lifecycle::deprecate_warn()
(when = "3.0.0") while remaining callable:
wnba_videoevents() and the four
wnba_draftcombine*() wrappers (the WNBA publishes no
draft-combine data).
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. |
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. |
| 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.
| 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. |
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; only
officials and last_five_meetings populate. The
V2 variant still returns full data.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 both wnba and
womens-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 with
Rscript tools/docs/mine_api_descriptions.R.\item{...}{...} lines from existing
\describe{} blocks.*_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.
Jittered exponential backoff in
.retry_request(). Replaced the default fixed
2-second retry cadence with runif(1, 0.5, 1.5) * 2^i so
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 httr to httr2 in the V3 work, the legacy
httr::use_proxy() plumbing was dropped and
request_with_proxy() quietly stopped honoring proxies (its
... was preserved purely for source compatibility). Both
request_with_proxy() and the lower-level
.retry_request() now accept a proxy =
argument:
proxy = NULL (default) — libcurl reads
http_proxy / https_proxy /
no_proxy env vars automatically.proxy = "http://host:port" — string form, forwarded to
httr2::req_proxy(url = ...).proxy = list(url=, port=, username=, password=, auth=)
— named list spread into httr2::req_proxy() for
authenticated proxies.Resolution order in .retry_request(): explicit
proxy = arg → getOption("wehoop.proxy") →
libcurl env vars. The ... thread works for WNBA Stats
wrappers (which forward into request_with_proxy()); ESPN /
NCAA wrappers call .retry_request() directly without
..., so use options(wehoop.proxy = ...) at the
top of the session to cover those without per-function plumbing.
Validated end-to-end: ncaa_wbb_teams() and
espn_wnba_game_all() both routed through an authenticated
test proxy via the option fallback.
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 across
tests/testthat/test-*.R from skip(...) to
fail(...) + return(invisible(NULL)) so the test surfaces a
FAIL count for follow-up. Deprecation skips and the env-gated
skip_*_test() / skip_on_cran() /
skip_on_ci() helpers are unchanged.wnba_team* test files from
most_recent_wnba_season() to
most_recent_wnba_season() - 1 so 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..ncaa_headers() user-agent to Chrome 130 and
added the Sec-Fetch-* / sec-ch-ua-* headers a
real browser sends.ncaa_wbb_teams() keeps its legacy
stats.ncaa.org/team/inst_team_list scrape (per-season
per-division team list with season_id populated), and now
threads the proxy = argument from ... through
to .retry_request() at the top level.
stats.ncaa.org is 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
the Network access section of ?ncaa_wbb_teams
for the full resolution order.expect_equal(sort(colnames(x)), sort(cols)) to subset
checks expect_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.skip("No rows returned from endpoint at test time") guards
into 114 test files so tests which access
x[[1]] degrade gracefully to a skip (rather than a
subscript-out-of-bounds error) when the upstream endpoint errors or
returns empty. (Later converted to fail() — see “Test
infrastructure” above.)cols lists
where ESPN renamed/removed columns (jersey,
active, team_x_ref_2,
team_is_all_star, Team_ID →
TEAM_ID).test-wnba_teamvsplayer.R and
test-wnba_playerdashboardbyclutch.R so tests tolerate the
WNBA Stats API returning fewer result-set elements than the test
expects.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.cph (copyright holder) role to
Saiem Gilani in Authors@R (CRAN strict
requirement).LICENSE and LICENSE.md copyright year
from 2020 to 2026.@return,
@examples) to most_recent_wbb_season() and
most_recent_wnba_season(), which had been
title/@export-only.@examples \donttest{} blocks to all 58 new ESPN
endpoint wrappers. Live-API examples are wrapped in
\donttest{} so they do not run during routine
R CMD check but are still exercised under
--run-donttest. The redundant @details
code-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 in
CLAUDE.md.inst/CITATION: replace deprecated
citEntry() / personList() with
bibentry() / c(person(), ...) (R 4.x
deprecation cleanup).parameter_descriptions (dataset) and
year_to_season (utility) to _pkgdown.yml
reference index so pkgdown::check_pkgdown() passes
(resolves the gh-pages deploy failure).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 (use wnba_scoreboardv3()).wnba_teaminfocommon() function deprecated due to WNBA
Stats API deprecation (use wnba_teamdetails()).load_wnba_*() functions now use
sportsdataverse-data releases url instead of
wehoop-data repository URLload_wbb_*() functions now use
sportsdataverse-data releases url instead of
wehoop-data repository URLwnba_pbp() function and new wnba_pbps()
function added with on_court (default TRUE)
parameter to return on court players for each play eventwnba_live_pbp() function added.wnba_live_boxscore() function added.wnba_todays_scoreboard() function 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.wnba_shotchartlineupdetail() function added.wnba_franchiseleaderswrank() function added.wnba_leaderstiles() function added.wnba_leagueleaders() function added.wnba_videodetailsasset() function added.wnba_infographicfanduelplayer() function added.ncaa_wbb_teams() function added.httr::use_proxy()
option to wnba_*() functionsespn_wbb_team_box(),
espn_wbb_player_box(), espn_wnba_team_box(),
espn_wnba_player_box()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| name | file |
|---|---|
wnba_alltimeleadersgrids() |
R/wnba_stats_leaders.R |
wnba_assistleaders() |
R/wnba_stats_leaders.R |
wnba_assisttracker() |
R/wnba_stats_leaders.R |
wnba_boxscoreadvancedv2() |
R/wnba_stats_boxscore.R |
wnba_boxscorefourfactorsv2() |
R/wnba_stats_boxscore.R |
wnba_boxscoremiscv2() |
R/wnba_stats_boxscore.R |
wnba_boxscoreplayertrackv2() |
R/wnba_stats_boxscore.R |
wnba_boxscorescoringv2() |
R/wnba_stats_boxscore.R |
wnba_boxscoresummaryv2() |
R/wnba_stats_boxscore.R |
wnba_boxscoretraditionalv2() |
R/wnba_stats_boxscore.R |
wnba_boxscoreusagev2() |
R/wnba_stats_boxscore.R |
wnba_commonallplayers() |
R/wnba_stats_roster.R |
wnba_commonplayerinfo() |
R/wnba_stats_roster.R |
wnba_commonplayoffseries() |
R/wnba_stats_roster.R |
wnba_commonteamroster() |
R/wnba_stats_roster.R |
wnba_cumestatsplayer() |
R/wnba_stats_cume.R |
wnba_cumestatsplayergames() |
R/wnba_stats_cume.R |
wnba_cumestatsteam() |
R/wnba_stats_cume.R |
wnba_cumestatsteamgames() |
R/wnba_stats_cume.R |
wnba_data_pbp() |
R/wnba_data_pbp.R |
wnba_draftboard() |
R/wnba_stats_draft.R |
wnba_draftcombinedrillresults() |
R/wnba_stats_draft.R |
wnba_draftcombinenonstationaryshooting() |
R/wnba_stats_draft.R |
wnba_draftcombineplayeranthro() |
R/wnba_stats_draft.R |
wnba_draftcombinespotshooting() |
R/wnba_stats_draft.R |
wnba_draftcombinestats() |
R/wnba_stats_draft.R |
wnba_drafthistory() |
R/wnba_stats_draft.R |
wnba_fantasywidget() |
R/wnba_stats_lineups.R |
wnba_franchisehistory() |
R/wnba_stats_franchise.R |
wnba_franchiseleaders() |
R/wnba_stats_franchise.R |
wnba_franchiseplayers() |
R/wnba_stats_franchise.R |
wnba_gamerotation() |
R/wnba_stats_boxscore.R |
wnba_homepageleaders() |
R/wnba_stats_leaders.R |
wnba_homepagev2() |
R/wnba_stats_leaders.R |
wnba_hustlestatsboxscore() |
R/wnba_stats_boxscore.R |
wnba_leaguedashlineups() |
R/wnba_stats_lineups.R |
wnba_leaguedashplayerbiostats() |
R/wnba_stats_league_dash.R |
wnba_leaguedashplayerclutch() |
R/wnba_stats_league_dash.R |
wnba_leaguedashplayershotlocations() |
R/wnba_stats_league_dash.R |
wnba_leaguedashplayerstats() |
R/wnba_stats_league_dash.R |
wnba_leaguedashteamclutch() |
R/wnba_stats_league_dash.R |
wnba_leaguedashteamshotlocations() |
R/wnba_stats_league_dash.R |
wnba_leaguedashteamstats() |
R/wnba_stats_league_dash.R |
wnba_leaguegamefinder() |
R/wnba_stats_league.R |
wnba_leaguegamelog() |
R/wnba_stats_league.R |
wnba_leaguehustlestatsplayer() |
R/wnba_stats_hustle.R |
wnba_leaguehustlestatsplayerleaders() |
R/wnba_stats_hustle.R |
wnba_leaguehustlestatsteam() |
R/wnba_stats_hustle.R |
wnba_leaguehustlestatsteamleaders() |
R/wnba_stats_hustle.R |
wnba_leaguelineupviz() |
R/wnba_stats_lineups.R |
wnba_leagueplayerondetails() |
R/wnba_stats_lineups.R |
wnba_leagueseasonmatchups() |
R/wnba_stats_lineups.R |
wnba_leaguestandingsv3() |
R/wnba_stats_league.R |
wnba_pbp() |
R/wnba_stats_pbp.R |
wnba_playerawards() |
R/wnba_stats_player.R |
wnba_playercareerbycollege() |
R/wnba_stats_player.R |
wnba_playercareerbycollegerollup() |
R/wnba_stats_player.R |
wnba_playercareerstats() |
R/wnba_stats_player.R |
wnba_playercompare() |
R/wnba_stats_player.R |
wnba_playerdashboardbyclutch() |
R/wnba_stats_player_dash.R |
wnba_playerdashboardbygamesplits() |
R/wnba_stats_player_dash.R |
wnba_playerdashboardbygeneralsplits() |
R/wnba_stats_player_dash.R |
wnba_playerdashboardbylastngames() |
R/wnba_stats_player_dash.R |
wnba_playerdashboardbyopponent() |
R/wnba_stats_player_dash.R |
wnba_playerdashboardbyshootingsplits() |
R/wnba_stats_player_dash.R |
wnba_playerdashboardbyteamperformance() |
R/wnba_stats_player_dash.R |
wnba_playerdashboardbyyearoveryear() |
R/wnba_stats_player_dash.R |
wnba_playerestimatedmetrics() |
R/wnba_stats_player.R |
wnba_playerfantasyprofile() |
R/wnba_stats_player.R |
wnba_playerfantasyprofilebargraph() |
R/wnba_stats_player.R |
wnba_playergamelog() |
R/wnba_stats_player.R |
wnba_playergamelogs() |
R/wnba_stats_player.R |
wnba_playergamestreakfinder() |
R/wnba_stats_player.R |
wnba_playerheadshot() |
R/wnba_stats_player.R |
wnba_playerindex() |
R/wnba_stats_player.R |
wnba_playernextngames() |
R/wnba_stats_player.R |
wnba_playerprofilev2() |
R/wnba_stats_player.R |
wnba_playervsplayer() |
R/wnba_stats_player.R |
wnba_scoreboard() |
R/wnba_stats_scoreboard.R |
wnba_scoreboardv2() |
R/wnba_stats_scoreboard.R |
wnba_shotchartdetail() |
R/wnba_stats_shotchart.R |
wnba_shotchartleaguewide() |
R/wnba_stats_shotchart.R |
wnba_teamdashboardbyclutch() |
R/wnba_stats_team_dash.R |
wnba_teamdashboardbygamesplits() |
R/wnba_stats_team_dash.R |
wnba_teamdashboardbygeneralsplits() |
R/wnba_stats_team_dash.R |
wnba_teamdashboardbylastngames() |
R/wnba_stats_team_dash.R |
wnba_teamdashboardbyopponent() |
R/wnba_stats_team_dash.R |
wnba_teamdashboardbyshootingsplits() |
R/wnba_stats_team_dash.R |
wnba_teamdashboardbyteamperformance() |
R/wnba_stats_team_dash.R |
wnba_teamdashboardbyyearoveryear() |
R/wnba_stats_team_dash.R |
wnba_teamdashlineups() |
R/wnba_stats_team_dash.R |
wnba_teamdetails() |
R/wnba_stats_team.R |
wnba_teamestimatedmetrics() |
R/wnba_stats_team.R |
wnba_teamgamelog() |
R/wnba_stats_team.R |
wnba_teamgamelogs() |
R/wnba_stats_team.R |
wnba_teamgamestreakfinder() |
R/wnba_stats_team.R |
wnba_teamhistoricalleaders() |
R/wnba_stats_team.R |
wnba_teaminfocommon() |
R/wnba_stats_team.R |
wnba_teamplayerdashboard() |
R/wnba_stats_team.R |
wnba_teamplayeronoffdetails() |
R/wnba_stats_team.R |
wnba_teamplayeronoffsummary() |
R/wnba_stats_team.R |
wnba_teamvsplayer() |
R/wnba_stats_team.R |
wnba_teamyearbyyearstats() |
R/wnba_stats_team.R |
wnba_videodetails() |
R/wnba_stats_video.R |
wnba_videoevents() |
R/wnba_stats_video.R |
wnba_videostatus() |
R/wnba_stats_video.R |
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 furrr and future dependencies
and replaces with purrr (>= 0.3.0)
tidyr release
revdepchecksfurrr::future_map_dfr() functions
to data.table::rbindlist() functions for loaders.wehoop::load_wbb_schedule()
function addedwehoop::load_wnba_schedule()
function addedwehoop::load_wbb_team_box()
function addedwehoop::load_wnba_team_box()
function addedwehoop::load_wbb_player_box()
function addedwehoop::load_wnba_player_box()
function addedThis update is a non-user facing change to package dependencies to shrink the list of dependencies.
janitor::clean_names()
treatmentwehoop::espn_wbb_teams()
has updated the returns to be more identity information related
onlywehoop::espn_wnba_teams()
to be more identity information related onlywehoop::load_wbb_pbp()
and wehoop::update_wbb_db()
functions addedwehoop::load_wnba_pbp()
and wehoop::update_wnba_db()
functions addedR version 3.5.0 or greater dependency addedpurrr version 0.3.0 or greater dependency addedrvest version 1.0.0 or greater dependency addedprogressr version 0.6.0 or greater dependency
addedusethis version 1.6.0 or greater dependency addedxgboost version 1.1.0 or greater dependency addedtidyr version 1.0.0 or greater dependency addedstringr version 1.3.0 or greater dependency addedtibble version 3.0.0 or greater dependency addedfurrr dependency addedfuture dependency addedespn_ as opposed to wbb_ or
wnba_.ncaa_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::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()