Skip to main content
Breaking in 4.0.0
  • Public names are sportsdataverse-py's — athlete → player, event → game on every ESPN league; sdv-py's name_pattern on the native families (nhlApiWeb* → nhl*, nflApi* → nfl*, CBS's 16 shorts, the 3.0.0 file-stem names). Every pre-v4 name still works as a deprecated alias that warns once. (changelog)
  • Integer id columns are decimal strings — Every id column of integers (id, *_id, game_pk, playerId, …) comes back as exact decimal strings on every surface — parsers, producers, loaders, HockeyTech analytics. Compare and join ids as strings; Number(row.game_id) for a safe number back. (changelog)
  • 400 / 422 raise InvalidParameterError — For every family (it was AssetFetchError), never retried; the message names host, path and status with a redacted excerpt of the body. (changelog)
  • Typed returns — generated row types for parsed: true — TypeScript only. A wrapper's raw payload resolves to unknown (was any); verified endpoints resolve to their row interfaces; the summary dispatchers to ParsedTables. Narrow or cast a raw payload. (changelog)
  • Typed wrapper params and loader rows; strict mode — TypeScript only. A param the endpoint does not have, a missing required path param or a non-boolean bool param is a type error; parser rows are Record<string, unknown>; loader rows are their generated row types. (changelog)
  • Wrapper failures raise NoDataError / AssetFetchError — Instead of raw axios errors. NoDataError = the fetch worked and there is nothing there (404, ESPN { code: 404 }); AssetFetchError = the fetch failed (403 / 429 / 5xx after retries, network). Retries follow DEFAULT_RETRY_STATUSES with backoff. (changelog)

mch — Site API

24 endpoints on sdv.mch. Each is exposed under a camelCase canonical name and a snake_case alias (py/R parity), accepts snake_case or camelCase params, and returns raw ESPN JSON by default ({ parsed: true } for tidy rows).

espnMchPlayerBio​

MCH — player bio (ESPN site.api.espn.com).

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/hockey/mens-college-hockey/athletes/{athlete_id}/bio

Deprecated aliases (pre-v4 names, still callable): espn_mch_athlete_bio / espnMchAthleteBio

API paramJSrequireddescription
{athlete_id}athlete_idyesnumber | string — the ESPN athlete id
—parsednoboolean — return tidy rows instead of raw JSON

Returns: raw ESPN Dict by default. With { parsed: true } the payload is routed through its parser (parse_single_entity); the column set varies by league and payload, so no fixed table is published. This endpoint is exposed on 40 leagues (nba, wnba, nbagl, nbl, fiba, olympics_mbk, olympics_wbk, nbasl_lv, nbasl_ut, nbasl_ca, nbasl_sac, nbasl_orl, nbasl_gs, mbb, wbb, cfb, nfl, mlb, nhl, mch, wch, college_baseball, college_softball, ufl, xfl, cfl, soccer, epl, laliga, bundesliga, seriea, ligue1, mls, ligamx, ucl, uel, nwsl, wwc, wc, cricket) — see parse_single_entity for the shared parser note.

Rows are untyped Row[] (not parity-verified yet).

Example:

await sdv.mch.espnMchPlayerBio({ athlete_id: '…' });
// snake_case alias (py/R parity): sdv.mch.espn_mch_player_bio(...)

espnMchPlayerInfo​

MCH — player info (ESPN site.api.espn.com).

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/hockey/mens-college-hockey/athletes/{athlete_id}

Deprecated aliases (pre-v4 names, still callable): espn_mch_athlete_info / espnMchAthleteInfo

API paramJSrequireddescription
{athlete_id}athlete_idyesnumber | string — the ESPN athlete id
—parsednoboolean — return tidy rows instead of raw JSON

Returns: raw ESPN Dict by default. With { parsed: true } the payload is routed through its parser (parse_single_entity); the column set varies by league and payload, so no fixed table is published. This endpoint is exposed on 40 leagues (nba, wnba, nbagl, nbl, fiba, olympics_mbk, olympics_wbk, nbasl_lv, nbasl_ut, nbasl_ca, nbasl_sac, nbasl_orl, nbasl_gs, mbb, wbb, cfb, nfl, mlb, nhl, mch, wch, college_baseball, college_softball, ufl, xfl, cfl, soccer, epl, laliga, bundesliga, seriea, ligue1, mls, ligamx, ucl, uel, nwsl, wwc, wc, cricket) — see parse_single_entity for the shared parser note.

Rows are untyped Row[] (not parity-verified yet).

Example:

await sdv.mch.espnMchPlayerInfo({ athlete_id: '…' });
// snake_case alias (py/R parity): sdv.mch.espn_mch_player_info(...)

espnMchPlayerNews​

MCH — player news (ESPN site.api.espn.com).

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/hockey/mens-college-hockey/athletes/{athlete_id}/news

Deprecated aliases (pre-v4 names, still callable): espn_mch_athlete_news / espnMchAthleteNews

API paramJSrequireddescription
{athlete_id}athlete_idyesnumber | string — the ESPN athlete id
—parsednoboolean — return tidy rows instead of raw JSON

Returns (with { parsed: true }, via parse_news):

col_nametypedescription
idintegerESPN numeric identifier for the article.
now_idcharacterESPN 'now' feed id.
content_keycharacterInternal content key.
data_source_identifiercharacterSource-system identifier.
typecharacterArticle type (Story, Media, HeadlineNews, etc.).
headlinecharacterArticle headline.
descriptioncharacterArticle summary/description.
last_modifiedcharacterLast-modified timestamp (ISO 8601).
publishedcharacterPublish timestamp (ISO 8601).
imagescharacterArticle images (list, stringified).
categoriescharacterArticle categories (list, stringified).
premiumlogicalWhether the article is premium/paywalled.
links_web_hrefcharacterWeb article URL.
links_mobile_hrefcharacterMobile article URL.
links_api_self_hrefcharacterESPN API canonical self-link for the article resource.
links_app_sportscenter_hrefcharacterSportsCenter app deep link.
bylinecharacterAuthor byline string as published by ESPN.

Rows are untyped Row[] (not parity-verified yet).

Example:

await sdv.mch.espnMchPlayerNews({ athlete_id: '…' });
// snake_case alias (py/R parity): sdv.mch.espn_mch_player_news(...)

espnMchCalendar​

MCH — calendar (ESPN site.api.espn.com).

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/hockey/mens-college-hockey/calendar

API paramJSrequireddescription
—parsednoboolean — return tidy rows instead of raw JSON

Returns (with { parsed: true }, via parse_items):

col_nametypedescription
$refcharacterCore v2 $ref URL to the resource

Rows are untyped Row[] (not parity-verified yet).

Example:

await sdv.mch.espnMchCalendar({});
// snake_case alias (py/R parity): sdv.mch.espn_mch_calendar(...)

espnMchConferences​

MCH — conferences (ESPN site.api.espn.com).

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/hockey/mens-college-hockey/groups

API paramJSrequireddescription
—parsednoboolean — return tidy rows instead of raw JSON

Returns: raw ESPN Dict by default. With { parsed: true } the payload is routed through its parser (parse_groups); the column set varies by league and payload, so no fixed table is published. This endpoint is exposed on 40 leagues (nba, wnba, nbagl, nbl, fiba, olympics_mbk, olympics_wbk, nbasl_lv, nbasl_ut, nbasl_ca, nbasl_sac, nbasl_orl, nbasl_gs, mbb, wbb, cfb, nfl, mlb, nhl, mch, wch, college_baseball, college_softball, ufl, xfl, cfl, soccer, epl, laliga, bundesliga, seriea, ligue1, mls, ligamx, ucl, uel, nwsl, wwc, wc, cricket) — see parse_groups for the shared parser note.

Rows are untyped Row[] (not parity-verified yet).

Example:

await sdv.mch.espnMchConferences({});
// snake_case alias (py/R parity): sdv.mch.espn_mch_conferences(...)

espnMchDraft​

MCH — draft (ESPN site.api.espn.com).

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/hockey/mens-college-hockey/draft

API paramJSrequireddescription
—parsednoboolean — return tidy rows instead of raw JSON

Returns (with { parsed: true }, via parse_items):

col_nametypedescription
$refcharacterCore v2 $ref URL to the resource

Rows are untyped Row[] (not parity-verified yet).

Example:

await sdv.mch.espnMchDraft({});
// snake_case alias (py/R parity): sdv.mch.espn_mch_draft(...)

espnMchInjuries​

MCH — injuries (ESPN site.api.espn.com).

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/hockey/mens-college-hockey/injuries

API paramJSrequireddescription
—parsednoboolean — return tidy rows instead of raw JSON

Returns (with { parsed: true }, via parse_injuries):

col_nametypedescription
idcharacterESPN numeric identifier for the athlete.
display_namecharacterAthlete's full display name as shown on ESPN.
injuriescharacterInjury entries for the athlete (list of dicts, stringified): status, type, details, dates.

Rows are untyped Row[] (not parity-verified yet).

Example:

await sdv.mch.espnMchInjuries({});
// snake_case alias (py/R parity): sdv.mch.espn_mch_injuries(...)

espnMchNews​

MCH — news (ESPN site.api.espn.com).

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/hockey/mens-college-hockey/news

API paramJSrequireddescription
limitlimitnonumber | string — the maximum number of items to return; default 50
—parsednoboolean — return tidy rows instead of raw JSON

Returns (with { parsed: true }, via parse_news):

col_nametypedescription
idintegerESPN numeric identifier for the article.
now_idcharacterESPN 'now' feed id.
content_keycharacterInternal content key.
data_source_identifiercharacterSource-system identifier.
typecharacterArticle type (Story, Media, HeadlineNews, etc.).
headlinecharacterArticle headline.
descriptioncharacterArticle summary/description.
last_modifiedcharacterLast-modified timestamp (ISO 8601).
publishedcharacterPublish timestamp (ISO 8601).
imagescharacterArticle images (list, stringified).
categoriescharacterArticle categories (list, stringified).
premiumlogicalWhether the article is premium/paywalled.
links_web_hrefcharacterWeb article URL.
links_mobile_hrefcharacterMobile article URL.
links_api_self_hrefcharacterESPN API canonical self-link for the article resource.
links_app_sportscenter_hrefcharacterSportsCenter app deep link.
bylinecharacterAuthor byline string as published by ESPN.

Rows are untyped Row[] (not parity-verified yet).

Example:

await sdv.mch.espnMchNews({});
// snake_case alias (py/R parity): sdv.mch.espn_mch_news(...)

espnMchScoreboard​

MCH — scoreboard (ESPN site.api.espn.com).

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/hockey/mens-college-hockey/scoreboard

API paramJSrequireddescription
datesdatesnonumber | string — a date YYYYMMDD, a range YYYYMMDD-YYYYMMDD or a season year YYYY
weekweeknonumber | string — the week of the season (football)
seasontypeseason_typenonumber | string — the season type: 1 preseason, 2 regular season, 3 postseason
groupsgroupsnonumber | string — an ESPN group (conference / division) id, e.g. 50 for all of men's college basketball
limitlimitnonumber | string — the maximum number of items to return; default 500
—parsednoboolean — return tidy rows instead of raw JSON

Returns (with { parsed: true }, via parse_scoreboard):

col_nametypedescription
game_idcharacterUnique game identifier.
uidcharacterCompetitor uid string.
datecharacterMatch start timestamp (ISO 8601, UTC).
namecharacterFull event name (e.g. 'Team A at Team B').
short_namecharacterAbbreviated event name (e.g. 'TA @ TB').
season_yearintegerInteger season year ESPN assigns the event (e.g. 2025 for the 2025-26 season).
season_typeintegerESPN season-type id of the event's season: 1 preseason, 2 regular season, 3 postseason, 4 offseason for the US leagues; soccer competitions carry their own competition-specific ids (e.g. 13481).
season_slugcharacterESPN slug of the event's season type (e.g. 'regular-season', 'post-season'; soccer competitions use their own, such as 'final' or 'torneo-apertura').
status_type_idcharacterStatus type identifier.
status_type_namecharacterStatus type name.
status_type_statecharacterStatus state (pre/in/post).
status_type_completedlogicalWhether the game is complete.
status_type_descriptioncharacterStatus description.
status_type_detailcharacterStatus detail text.
status_type_short_detailcharacterShort status detail.
status_clockintegerGame clock in seconds as ESPN reports it: time remaining in the period for clock sports, elapsed seconds for soccer (e.g. 5400.0 at full time); 0.0 once a game has ended.
status_display_clockcharacterDisplay clock string.
status_periodintegerCurrent or final period number (quarter, half, inning or period, depending on the sport).
neutral_sitelogicalWhether the match is played at a neutral venue.
conference_competitionlogicalWhether it is a conference competition.
attendanceintegerGame attendance.
venue_idcharacterVenue identifier.
venue_full_namecharacterVenue full name.
venue_citycharacterVenue city.
venue_statecharacterVenue state.
venue_indoorlogicalWhether the venue is indoors.
broadcastcharacterEvery network name of the competition in feed order, deduped and ", "-joined (an entry with no names gives its market); "" when the game lists no broadcast.
notecharacterEvent note text from the competition (e.g. a series or game label such as 'World Series - Game 1', or a shootout result); an empty string when there is none.
home_idcharacterHome team ESPN identifier.
home_namecharacterHome team display name.
home_abbreviationcharacterHome team abbreviation.
home_display_namecharacterHome team display name.
home_locationcharacterHome team city.
home_colorcharacterHome team primary color hex.
home_alternate_colorcharacterHome team alternate color hex.
home_logocharacterHome team logo URL.
home_scorecharacterHome team's score. For cricket, the innings string (e.g. '161/5 (18/20 ov, target 156)').
home_winnerlogicalWhether the home team won.
home_rankcharacterHome team rank (if ranked).
away_idcharacterAway team ESPN identifier.
away_namecharacterAway team display name.
away_abbreviationcharacterAway team abbreviation.
away_display_namecharacterAway team display name.
away_locationcharacterAway team city.
away_colorcharacterAway team primary color hex.
away_alternate_colorcharacterAway team alternate color hex.
away_logocharacterAway team logo URL.
away_scorecharacterAway team's score. For cricket, the innings string.
away_winnerlogicalWhether the away team won.
away_rankcharacterAway team rank (if ranked).

Rows are untyped Row[] (not parity-verified yet).

Example:

await sdv.mch.espnMchScoreboard({});
// snake_case alias (py/R parity): sdv.mch.espn_mch_scoreboard(...)

espnMchStandings​

MCH — standings (ESPN site.api.espn.com (v2)).

Endpoint URL: GET https://site.api.espn.com/apis/v2/sports/hockey/mens-college-hockey/standings

API paramJSrequireddescription
seasonseasonnonumber | string — the season year (the year the season ends for winter sports, e.g. 2025 for 2024-25)
groupgroupnonumber | string — an ESPN group (conference / division) id
typestandings_typenonumber | string — the type ESPN query parameter
—parsednoboolean — return tidy rows instead of raw JSON

Returns (with { parsed: true }, via parse_standings):

col_nametypedescription
group_namecharacterGroup name (conference / division).
group_abbreviationcharacterGroup abbreviation.
team_idcharacterESPN team id
team_namecharacterTeam name.
team_abbreviationcharacterTeam abbreviation
team_display_namecharacterTeam display name
team_locationcharacterTeam city/location.
team_logocharacterURL to the team logo image.
avg_points_againstnumber
avg_points_fornumber
clincherinteger
differentialinteger
division_win_percentnumber
games_behindinteger
league_win_percentnumber
lossesintegerNumber of matches the team has lost.
playoff_seedintegerCurrent playoff seed.
point_differentialintegerGoal difference (for minus against).
pointsintegerCompetition points.
points_againstintegerGoals conceded.
points_forintegerGoals (or runs) scored by the team.
streakintegerCurrent streak value.
win_percentnumber
winsintegerNumber of matches the team has won.
games_aheadinteger
overallcharacterOverall record summary as published by ESPN.
homecharacterWhether the player's team was home.
roadcharacter
vs_divcharacter
vs_confcharacter
last_ten_gamescharacter

Rows are untyped Row[] (not parity-verified yet).

Example:

await sdv.mch.espnMchStandings({});
// snake_case alias (py/R parity): sdv.mch.espn_mch_standings(...)

espnMchStatisticsLeague​

MCH — statistics league (ESPN site.api.espn.com).

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/hockey/mens-college-hockey/statistics

API paramJSrequireddescription
—parsednoboolean — return tidy rows instead of raw JSON

Returns (with { parsed: true }, via parse_items):

col_nametypedescription
$refcharacterCore v2 $ref URL to the resource

Rows are untyped Row[] (not parity-verified yet).

Example:

await sdv.mch.espnMchStatisticsLeague({});
// snake_case alias (py/R parity): sdv.mch.espn_mch_statistics_league(...)

espnMchSummary​

MCH — summary (ESPN site.api.espn.com).

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/hockey/mens-college-hockey/summary

API paramJSrequireddescription
eventevent_idnonumber | string — the ESPN event (game) id
—parsednoboolean — return tidy rows instead of raw JSON
—sectionnowith parsed, return one named sub-frame (e.g. boxscore, plays, winprobability) instead of all

Returns: raw ESPN Dict by default. With { parsed: true } the summary dispatcher returns an object of 21 sub-frames keyed by section ({ parsed: true, section: '<name>' } for one); see ESPN parsed returns.

Rows are untyped Row[] (not parity-verified yet).

Example:

await sdv.mch.espnMchSummary({});
// snake_case alias (py/R parity): sdv.mch.espn_mch_summary(...)

espnMchTeam​

MCH — team (ESPN site.api.espn.com).

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/hockey/mens-college-hockey/teams/{team_id}

API paramJSrequireddescription
{team_id}team_idyesnumber | string — the ESPN team id (see espn_<league>_teams)
—parsednoboolean — return tidy rows instead of raw JSON

Returns: raw ESPN Dict by default. With { parsed: true } the payload is routed through its parser (parse_single_entity); the column set varies by league and payload, so no fixed table is published. This endpoint is exposed on 40 leagues (nba, wnba, nbagl, nbl, fiba, olympics_mbk, olympics_wbk, nbasl_lv, nbasl_ut, nbasl_ca, nbasl_sac, nbasl_orl, nbasl_gs, mbb, wbb, cfb, nfl, mlb, nhl, mch, wch, college_baseball, college_softball, ufl, xfl, cfl, soccer, epl, laliga, bundesliga, seriea, ligue1, mls, ligamx, ucl, uel, nwsl, wwc, wc, cricket) — see parse_single_entity for the shared parser note.

Rows are untyped Row[] (not parity-verified yet).

Example:

await sdv.mch.espnMchTeam({ team_id: '…' });
// snake_case alias (py/R parity): sdv.mch.espn_mch_team(...)

espnMchTeamDepthcharts​

MCH — team depthcharts (ESPN site.api.espn.com).

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/hockey/mens-college-hockey/teams/{team_id}/depthcharts

API paramJSrequireddescription
{team_id}team_idyesnumber | string — the ESPN team id (see espn_<league>_teams)
—parsednoboolean — return tidy rows instead of raw JSON

Returns (with { parsed: true }, via parse_items):

col_nametypedescription
$refcharacterCore v2 $ref URL to the resource

Rows are untyped Row[] (not parity-verified yet).

Example:

await sdv.mch.espnMchTeamDepthcharts({ team_id: '…' });
// snake_case alias (py/R parity): sdv.mch.espn_mch_team_depthcharts(...)

espnMchTeamHistory​

MCH — team history (ESPN site.api.espn.com).

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/hockey/mens-college-hockey/teams/{team_id}/history

API paramJSrequireddescription
{team_id}team_idyesnumber | string — the ESPN team id (see espn_<league>_teams)
—parsednoboolean — return tidy rows instead of raw JSON

Returns (with { parsed: true }, via parse_items):

col_nametypedescription
$refcharacterCore v2 $ref URL to the resource

Rows are untyped Row[] (not parity-verified yet).

Example:

await sdv.mch.espnMchTeamHistory({ team_id: '…' });
// snake_case alias (py/R parity): sdv.mch.espn_mch_team_history(...)

espnMchTeamInjuries​

MCH — team injuries (ESPN site.api.espn.com).

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/hockey/mens-college-hockey/teams/{team_id}/injuries

API paramJSrequireddescription
{team_id}team_idyesnumber | string — the ESPN team id (see espn_<league>_teams)
—parsednoboolean — return tidy rows instead of raw JSON

Returns (with { parsed: true }, via parse_injuries):

col_nametypedescription
idcharacterESPN numeric identifier for the athlete.
display_namecharacterAthlete's full display name as shown on ESPN.
injuriescharacterInjury entries for the athlete (list of dicts, stringified): status, type, details, dates.

Rows are untyped Row[] (not parity-verified yet).

Example:

await sdv.mch.espnMchTeamInjuries({ team_id: '…' });
// snake_case alias (py/R parity): sdv.mch.espn_mch_team_injuries(...)

espnMchTeamLeaders​

MCH — team leaders (ESPN site.api.espn.com).

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/hockey/mens-college-hockey/teams/{team_id}/leaders

API paramJSrequireddescription
{team_id}team_idyesnumber | string — the ESPN team id (see espn_<league>_teams)
—parsednoboolean — return tidy rows instead of raw JSON

Returns (with { parsed: true }, via parse_items):

col_nametypedescription
$refcharacterCore v2 $ref URL to the resource

Rows are untyped Row[] (not parity-verified yet).

Example:

await sdv.mch.espnMchTeamLeaders({ team_id: '…' });
// snake_case alias (py/R parity): sdv.mch.espn_mch_team_leaders(...)

espnMchTeamNews​

MCH — team news (ESPN site.api.espn.com).

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/hockey/mens-college-hockey/teams/{team_id}/news

API paramJSrequireddescription
{team_id}team_idyesnumber | string — the ESPN team id (see espn_<league>_teams)
limitlimitnonumber | string — the maximum number of items to return; default 50
—parsednoboolean — return tidy rows instead of raw JSON

Returns (with { parsed: true }, via parse_news):

col_nametypedescription
idintegerESPN numeric identifier for the article.
now_idcharacterESPN 'now' feed id.
content_keycharacterInternal content key.
data_source_identifiercharacterSource-system identifier.
typecharacterArticle type (Story, Media, HeadlineNews, etc.).
headlinecharacterArticle headline.
descriptioncharacterArticle summary/description.
last_modifiedcharacterLast-modified timestamp (ISO 8601).
publishedcharacterPublish timestamp (ISO 8601).
imagescharacterArticle images (list, stringified).
categoriescharacterArticle categories (list, stringified).
premiumlogicalWhether the article is premium/paywalled.
links_web_hrefcharacterWeb article URL.
links_mobile_hrefcharacterMobile article URL.
links_api_self_hrefcharacterESPN API canonical self-link for the article resource.
links_app_sportscenter_hrefcharacterSportsCenter app deep link.
bylinecharacterAuthor byline string as published by ESPN.

Rows are untyped Row[] (not parity-verified yet).

Example:

await sdv.mch.espnMchTeamNews({ team_id: '…' });
// snake_case alias (py/R parity): sdv.mch.espn_mch_team_news(...)

espnMchTeamRecord​

MCH — team record (ESPN site.api.espn.com).

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/hockey/mens-college-hockey/teams/{team_id}/record

API paramJSrequireddescription
{team_id}team_idyesnumber | string — the ESPN team id (see espn_<league>_teams)
—parsednoboolean — return tidy rows instead of raw JSON

Returns (with { parsed: true }, via parse_items):

col_nametypedescription
$refcharacterCore v2 $ref URL to the resource

Rows are untyped Row[] (not parity-verified yet).

Example:

await sdv.mch.espnMchTeamRecord({ team_id: '…' });
// snake_case alias (py/R parity): sdv.mch.espn_mch_team_record(...)

espnMchTeamRoster​

MCH — team roster (ESPN site.api.espn.com).

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/hockey/mens-college-hockey/teams/{team_id}/roster

API paramJSrequireddescription
{team_id}team_idyesnumber | string — the ESPN team id (see espn_<league>_teams)
limitlimitnonumber | string — the maximum number of items to return; default 500
—parsednoboolean — return tidy rows instead of raw JSON

Returns (with { parsed: true }, via parse_team_roster):

col_nametypedescription
idcharacterUnique player identifier.
uidcharacterESPN universal id for the athlete.
guidcharacterAthlete global unique identifier.
alternate_ids_sdrcharacterAlternate ids sdr.
first_namecharacterAthlete's first (given) name.
last_namecharacterAthlete's last (family) name.
full_namecharacterPlayer full name.
display_namecharacterAthlete's full display name as shown on ESPN.
short_namecharacterAthlete's abbreviated display name (e.g. 'L. James').
weightintegerAthlete weight in pounds.
display_weightcharacterAthlete weight, formatted for display.
heightintegerAthlete height in inches.
display_heightcharacterAthlete height, formatted for display.
ageintegerAthlete age in years.
date_of_birthcharacterAthlete date of birth (ISO 8601).
debut_yearintegerYear of NHL debut.
linkscharacter
birth_place_citycharacterBirth place city.
birth_place_countrycharacterBirth place country.
college_idcharacterCollege identifier.
college_guidcharacterCollege guid.
college_mascotcharacterCollege mascot.
college_namecharacterCollege name.
college_short_namecharacterCollege short name.
college_abbrevcharacterCollege abbreviation.
college_logoscharacterCollege logo URLs (pipe-delimited).
slugcharacterURL slug for the athlete.
headshot_hrefcharacterPlayer headshot image URL.
headshot_altcharacterHeadshot alt text.
jerseycharacterAthlete's jersey number as a string.
position_idcharacterOfficial position identifier.
position_namecharacterFull position name (e.g. 'Point Guard', 'Goalkeeper').
position_display_namecharacterPosition display name.
position_abbreviationcharacterPosition abbreviation.
position_leaflogicalWhether position is a leaf node.
injuriescharacter
teamscharacter
contractscharacter
experience_yearsintegerExperience years.
contract_bird_statusinteger
contract_base_year_compensation_activelogical
contract_poison_pill_provision_activelogical
contract_incoming_trade_valueinteger
contract_outgoing_trade_valueinteger
contract_minimum_salary_exceptionlogical
contract_option_typeinteger
contract_salaryinteger
contract_salary_remaininginteger
contract_years_remaininginteger
contract_season_yearinteger
contract_season_start_datecharacter
contract_season_end_datecharacter
contract_trade_kicker_activelogical
contract_trade_kicker_percentageinteger
contract_trade_kicker_valueinteger
contract_trade_kicker_trade_valueinteger
contract_trade_restrictionlogical
contract_unsigned_foreign_picklogical
contract_activelogical
status_idcharacterStatus identifier.
status_namecharacterStatus name.
status_typecharacterStatus type.
status_abbreviationcharacterStatus abbreviation.
citizenshipcharacterAthlete citizenship.
birth_place_statecharacterBirth place state.
hand_typecharacterShooting/catching hand type.
hand_abbreviationcharacterHand abbreviation.
hand_display_valuecharacterHand display value.

Rows are untyped Row[] (not parity-verified yet).

Example:

await sdv.mch.espnMchTeamRoster({ team_id: '…' });
// snake_case alias (py/R parity): sdv.mch.espn_mch_team_roster(...)

espnMchTeamSchedule​

MCH — team schedule (ESPN site.api.espn.com).

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/hockey/mens-college-hockey/teams/{team_id}/schedule

API paramJSrequireddescription
{team_id}team_idyesnumber | string — the ESPN team id (see espn_<league>_teams)
seasonseasonnonumber | string — the season year (the year the season ends for winter sports, e.g. 2025 for 2024-25)
—parsednoboolean — return tidy rows instead of raw JSON

Returns: raw ESPN Dict by default. With { parsed: true } the payload is routed through its parser (parse_team_schedule); the column set varies by league and payload, so no fixed table is published. This endpoint is exposed on 40 leagues (nba, wnba, nbagl, nbl, fiba, olympics_mbk, olympics_wbk, nbasl_lv, nbasl_ut, nbasl_ca, nbasl_sac, nbasl_orl, nbasl_gs, mbb, wbb, cfb, nfl, mlb, nhl, mch, wch, college_baseball, college_softball, ufl, xfl, cfl, soccer, epl, laliga, bundesliga, seriea, ligue1, mls, ligamx, ucl, uel, nwsl, wwc, wc, cricket) — see parse_team_schedule for the shared parser note.

Rows are untyped Row[] (not parity-verified yet).

Example:

await sdv.mch.espnMchTeamSchedule({ team_id: '…' });
// snake_case alias (py/R parity): sdv.mch.espn_mch_team_schedule(...)

espnMchTeamTransactions​

MCH — team transactions (ESPN site.api.espn.com).

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/hockey/mens-college-hockey/teams/{team_id}/transactions

API paramJSrequireddescription
{team_id}team_idyesnumber | string — the ESPN team id (see espn_<league>_teams)
—parsednoboolean — return tidy rows instead of raw JSON

Returns (with { parsed: true }, via parse_items):

col_nametypedescription
$refcharacterCore v2 $ref URL to the resource

Rows are untyped Row[] (not parity-verified yet).

Example:

await sdv.mch.espnMchTeamTransactions({ team_id: '…' });
// snake_case alias (py/R parity): sdv.mch.espn_mch_team_transactions(...)

espnMchTeamsSite​

MCH — teams site (ESPN site.api.espn.com).

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/hockey/mens-college-hockey/teams

API paramJSrequireddescription
limitlimitnonumber | string — the maximum number of items to return; default 1000
—parsednoboolean — return tidy rows instead of raw JSON

Returns: raw ESPN Dict by default. With { parsed: true } the payload is routed through its parser (parse_teams); the column set varies by league and payload, so no fixed table is published. This endpoint is exposed on 40 leagues (nba, wnba, nbagl, nbl, fiba, olympics_mbk, olympics_wbk, nbasl_lv, nbasl_ut, nbasl_ca, nbasl_sac, nbasl_orl, nbasl_gs, mbb, wbb, cfb, nfl, mlb, nhl, mch, wch, college_baseball, college_softball, ufl, xfl, cfl, soccer, epl, laliga, bundesliga, seriea, ligue1, mls, ligamx, ucl, uel, nwsl, wwc, wc, cricket) — see parse_teams for the shared parser note.

Rows are untyped Row[] (not parity-verified yet).

Example:

await sdv.mch.espnMchTeamsSite({});
// snake_case alias (py/R parity): sdv.mch.espn_mch_teams_site(...)

espnMchTransactions​

MCH — transactions (ESPN site.api.espn.com).

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/hockey/mens-college-hockey/transactions

API paramJSrequireddescription
limitlimitnonumber | string — the maximum number of items to return; default 500
—parsednoboolean — return tidy rows instead of raw JSON

Returns (with { parsed: true }, via parse_items):

col_nametypedescription
$refcharacterCore v2 $ref URL to the resource

Rows are untyped Row[] (not parity-verified yet).

Example:

await sdv.mch.espnMchTransactions({});
// snake_case alias (py/R parity): sdv.mch.espn_mch_transactions(...)

Generated by tools/codegen/generate.mjs from tools/codegen/endpoints/espn*.yaml (vendored from sdv-py) — see How this library is built._