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)

uel — Site API

24 endpoints on sdv.uel. 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).

espnUelPlayerBio​

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

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/soccer/uefa.europa/athletes/{athlete_id}/bio

Deprecated aliases (pre-v4 names, still callable): espn_uel_athlete_bio / espnUelAthleteBio

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 30 leagues (nba, wnba, nbagl, 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.uel.espnUelPlayerBio({ athlete_id: '…' });
// snake_case alias (py/R parity): sdv.uel.espn_uel_player_bio(...)

espnUelPlayerInfo​

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

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/soccer/uefa.europa/athletes/{athlete_id}

Deprecated aliases (pre-v4 names, still callable): espn_uel_athlete_info / espnUelAthleteInfo

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 30 leagues (nba, wnba, nbagl, 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.uel.espnUelPlayerInfo({ athlete_id: '…' });
// snake_case alias (py/R parity): sdv.uel.espn_uel_player_info(...)

espnUelPlayerNews​

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

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/soccer/uefa.europa/athletes/{athlete_id}/news

Deprecated aliases (pre-v4 names, still callable): espn_uel_athlete_news / espnUelAthleteNews

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.uel.espnUelPlayerNews({ athlete_id: '…' });
// snake_case alias (py/R parity): sdv.uel.espn_uel_player_news(...)

espnUelCalendar​

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

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/soccer/uefa.europa/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.uel.espnUelCalendar({});
// snake_case alias (py/R parity): sdv.uel.espn_uel_calendar(...)

espnUelConferences​

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

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/soccer/uefa.europa/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 30 leagues (nba, wnba, nbagl, 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.uel.espnUelConferences({});
// snake_case alias (py/R parity): sdv.uel.espn_uel_conferences(...)

espnUelDraft​

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

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/soccer/uefa.europa/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.uel.espnUelDraft({});
// snake_case alias (py/R parity): sdv.uel.espn_uel_draft(...)

espnUelInjuries​

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

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/soccer/uefa.europa/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.uel.espnUelInjuries({});
// snake_case alias (py/R parity): sdv.uel.espn_uel_injuries(...)

espnUelNews​

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

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/soccer/uefa.europa/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.uel.espnUelNews({});
// snake_case alias (py/R parity): sdv.uel.espn_uel_news(...)

espnUelScoreboard​

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

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/soccer/uefa.europa/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_idcharacter
uidcharacter
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_slugcharacter
status_type_idcharacter
status_type_namecharacter
status_type_statecharacter
status_type_completedlogical
status_type_descriptioncharacter
status_type_detailcharacter
status_type_short_detailcharacter
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_clockcharacter
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_competitionlogical
attendanceinteger
venue_idcharacter
venue_full_namecharacter
venue_citycharacter
venue_statecharacter
venue_indoorlogical
broadcastcharacter
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_idcharacter
home_namecharacter
home_abbreviationcharacter
home_display_namecharacter
home_locationcharacter
home_colorcharacter
home_alternate_colorcharacter
home_logocharacter
home_scorecharacterHome team's score. For cricket, the innings string (e.g. '161/5 (18/20 ov, target 156)').
home_winnerlogical
home_rankcharacter
away_idcharacter
away_namecharacter
away_abbreviationcharacter
away_display_namecharacter
away_locationcharacter
away_colorcharacter
away_alternate_colorcharacter
away_logocharacter
away_scorecharacterAway team's score. For cricket, the innings string.
away_winnerlogical
away_rankcharacter

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

Example:

await sdv.uel.espnUelScoreboard({});
// snake_case alias (py/R parity): sdv.uel.espn_uel_scoreboard(...)

espnUelStandings​

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

Endpoint URL: GET https://site.api.espn.com/apis/v2/sports/soccer/uefa.europa/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_namecharacter
group_abbreviationcharacter
team_idcharacterESPN team id
team_namecharacter
team_abbreviationcharacterTeam abbreviation
team_display_namecharacterTeam display name
team_locationcharacter
team_logocharacter
avg_points_againstnumber
avg_points_fornumber
clincherinteger
differentialinteger
division_win_percentnumber
games_behindinteger
league_win_percentnumber
lossesintegerNumber of matches the team has lost.
playoff_seedinteger
point_differentialintegerGoal difference (for minus against).
pointsintegerCompetition points.
points_againstintegerGoals conceded.
points_forintegerGoals (or runs) scored by the team.
streakinteger
win_percentnumber
winsintegerNumber of matches the team has won.
games_aheadinteger
overallcharacterOverall record summary as published by ESPN.
homecharacter
roadcharacter
vs_divcharacter
vs_confcharacter
last_ten_gamescharacter

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

Example:

await sdv.uel.espnUelStandings({});
// snake_case alias (py/R parity): sdv.uel.espn_uel_standings(...)

espnUelStatisticsLeague​

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

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/soccer/uefa.europa/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.uel.espnUelStatisticsLeague({});
// snake_case alias (py/R parity): sdv.uel.espn_uel_statistics_league(...)

espnUelSummary​

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

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/soccer/uefa.europa/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.uel.espnUelSummary({});
// snake_case alias (py/R parity): sdv.uel.espn_uel_summary(...)

espnUelTeam​

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

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/soccer/uefa.europa/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 30 leagues (nba, wnba, nbagl, 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.uel.espnUelTeam({ team_id: '…' });
// snake_case alias (py/R parity): sdv.uel.espn_uel_team(...)

espnUelTeamDepthcharts​

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

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/soccer/uefa.europa/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.uel.espnUelTeamDepthcharts({ team_id: '…' });
// snake_case alias (py/R parity): sdv.uel.espn_uel_team_depthcharts(...)

espnUelTeamHistory​

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

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/soccer/uefa.europa/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.uel.espnUelTeamHistory({ team_id: '…' });
// snake_case alias (py/R parity): sdv.uel.espn_uel_team_history(...)

espnUelTeamInjuries​

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

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/soccer/uefa.europa/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.uel.espnUelTeamInjuries({ team_id: '…' });
// snake_case alias (py/R parity): sdv.uel.espn_uel_team_injuries(...)

espnUelTeamLeaders​

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

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/soccer/uefa.europa/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.uel.espnUelTeamLeaders({ team_id: '…' });
// snake_case alias (py/R parity): sdv.uel.espn_uel_team_leaders(...)

espnUelTeamNews​

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

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/soccer/uefa.europa/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.uel.espnUelTeamNews({ team_id: '…' });
// snake_case alias (py/R parity): sdv.uel.espn_uel_team_news(...)

espnUelTeamRecord​

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

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/soccer/uefa.europa/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.uel.espnUelTeamRecord({ team_id: '…' });
// snake_case alias (py/R parity): sdv.uel.espn_uel_team_record(...)

espnUelTeamRoster​

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

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/soccer/uefa.europa/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
idcharacter
uidcharacterESPN universal id for the athlete.
guidcharacter
alternate_ids_sdrcharacter
first_namecharacterAthlete's first (given) name.
last_namecharacterAthlete's last (family) name.
full_namecharacter
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_yearinteger
linkscharacter
birth_place_citycharacter
birth_place_countrycharacter
college_idcharacter
college_guidcharacter
college_mascotcharacter
college_namecharacter
college_short_namecharacter
college_abbrevcharacter
college_logoscharacter
slugcharacterURL slug for the athlete.
headshot_hrefcharacter
headshot_altcharacter
jerseycharacterAthlete's jersey number as a string.
position_idcharacter
position_namecharacterFull position name (e.g. 'Point Guard', 'Goalkeeper').
position_display_namecharacter
position_abbreviationcharacter
position_leaflogical
injuriescharacter
teamscharacter
contractscharacter
experience_yearsinteger
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_idcharacter
status_namecharacter
status_typecharacter
status_abbreviationcharacter
citizenshipcharacterAthlete citizenship.
birth_place_statecharacter
hand_typecharacter
hand_abbreviationcharacter
hand_display_valuecharacter

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

Example:

await sdv.uel.espnUelTeamRoster({ team_id: '…' });
// snake_case alias (py/R parity): sdv.uel.espn_uel_team_roster(...)

espnUelTeamSchedule​

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

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/soccer/uefa.europa/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 30 leagues (nba, wnba, nbagl, 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.uel.espnUelTeamSchedule({ team_id: '…' });
// snake_case alias (py/R parity): sdv.uel.espn_uel_team_schedule(...)

espnUelTeamTransactions​

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

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/soccer/uefa.europa/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.uel.espnUelTeamTransactions({ team_id: '…' });
// snake_case alias (py/R parity): sdv.uel.espn_uel_team_transactions(...)

espnUelTeamsSite​

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

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/soccer/uefa.europa/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 30 leagues (nba, wnba, nbagl, 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.uel.espnUelTeamsSite({});
// snake_case alias (py/R parity): sdv.uel.espn_uel_teams_site(...)

espnUelTransactions​

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

Endpoint URL: GET https://site.api.espn.com/apis/site/v2/sports/soccer/uefa.europa/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.uel.espnUelTransactions({});
// snake_case alias (py/R parity): sdv.uel.espn_uel_transactions(...)

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