Every season (competition and year) a site lists, with the sdv END year of each.
Endpoint: GET https://embed-api.eui.connect.sportradar.com/v1/embed/{website_id}/fixtures
A season is one competition in one year. year is the site's own key (START year
on site 12, calendar year elsewhere); season_end_year is the sdv END year. Site
236 lists no seasons, so its frame is empty.
Arguments
- website_id
(integer required): Site config id: which league site's widget this is (12 LNB France, 14 LNBP Mexico, 3 NBL1 Australia, 13 El Salvador, 22 Panama, 236 Austria, 326 Montenegro). Not a league id: one site serves several competitions.
- locale
(character optional): Locale of the labels, e.g.
"en-EN"or"fr-FR". Omitted = the site's own language. Ids and codes never change.
Value
A wehoop_data tibble, one row per season_id; is_default_season marks
the season the site serves by default:
| col_name | type | description |
| website_id | integer | Site config id the body came from (12 LNB, 14 LNBP, 3 NBL1, 13 El Salvador, 22 Panama, 236 Austria, 326 Montenegro), read from the body's links.self. |
| season_id | character | Season UUID; pass it as season_id to any season-scoped wrapper. |
| competition_id | character | Competition UUID; pass it as competition_id to pick one of several seasons of an END year. |
| competition_name | character | Competition name in the site's language; the same name can appear for several years. |
| season_name | character | Season name in the site's language, e.g. Betclic ELITE 2025. |
| abbreviation_local | character | Local abbreviation of the season; null in every body seen. |
| year | integer | The site's own year of the season: the START year on LNB (site 12), the calendar year elsewhere. |
| season_end_year | integer | Season END year (the sdv key): the site's year + 1 on LNB (site 12), the calendar year on the other registered sites; null when the site is unregistered, lists no seasons or the body has no season list. |
| is_default_season | logical | True for the season the body is about (the site's default when none was asked). |
Details
Unofficial. This is the public endpoint the Sportradar Atrium / Synergy "Connect" widget calls from every visitor's browser (keyless; the host has no robots.txt). The data is Sportradar's and the leagues'. The wrappers read it on the caller's behalf, one request at least 1 s after the last to the host, and it is not republished as release assets. Keep crawls small and incremental.
Sites and seasons. website_id picks the league site; one site carries many
competitions. Seasons are END years (season = 2026): the site's own year is the
START year on LNB and the calendar year elsewhere, and a year can hold several
competitions, so pair season with competition_id (see atrium_seasons()) or
pass season_id. atrium_end_year() maps a site's own year to that END year, and
atrium_season_id() finds the season UUID.
Columns are configured per site: a statistic one site omits is NA. A key the
documented columns do not list is appended with an inferred type. Player and team
ids (UUIDs, character) are shared across sites; the player stat tables carry names
only, so person_id there is decoded from the widget link beside each name.
Errors (classed conditions, all inheriting wehoop_error): wehoop_no_data when
the site has nothing for the request (HTTP 404, no such season, an empty fixture
list, a game with no play-by-play yet, or a fixture id the site does not serve: an
unknown id or a game of another site, which the API answers alike with an empty
fixture); wehoop_bad_request for HTTP 400 / 422 or an argument that cannot be
mapped (an ambiguous END year, season with season_id); wehoop_asset_fetch for
any other failed fetch, an error / stub body, or a body that belongs to another
site, type, season, game, player or team than the one asked for.
See also
Other Atrium Functions:
atrium_box_score(),
atrium_competition_player_stats(),
atrium_competition_team_stats(),
atrium_end_year(),
atrium_fixture(),
atrium_fixture_periods(),
atrium_fixtures(),
atrium_fixtures_ribbon(),
atrium_leaders(),
atrium_pbp(),
atrium_player(),
atrium_player_game_log(),
atrium_player_seasons(),
atrium_player_stats(),
atrium_players(),
atrium_season_id(),
atrium_shots(),
atrium_standings(),
atrium_standings_summary(),
atrium_team(),
atrium_team_box_score(),
atrium_team_stats(),
atrium_teams(),
lmb_competition,
lnbp_competition,
lpb_competition,
nbl1_competition
Examples
# \donttest{
try(atrium_seasons(website_id = 12))
#> ── Atrium seasons from embed-api.eui.connect.sportradar.com ──── wehoop 3.1.0 ──
#> ℹ Data updated: 2026-10-22 02:33:50 UTC
#> # A tibble: 19 × 9
#> website_id season_id competition_id competition_name season_name
#> <int> <chr> <chr> <chr> <chr>
#> 1 12 4a877e1f-51d1-11f0-a8… 2c58cdf2-51d1… All Star Game All Star G…
#> 2 12 d72d56a8-51d3-11f0-94… b98931f7-51d3… Betclic ÉLITE -… Betclic ÉL…
#> 3 12 df310a05-51ad-11f0-bd… 3f4064bb-51ad… Betclic ÉLITE Betclic ÉL…
#> 4 12 c8514e7e-51ae-11f0-94… a355be55-51ae… Espoirs ÉLITE Espoirs EL…
#> 5 12 3bfda51f-51ad-11f0-84… 28940adf-51ad… Supercoupe SuperCoupe…
#> 6 12 d9c62b61-51d1-11f0-88… c4021a1f-51d1… Young Star Game Young Star…
#> 7 12 5e31a852-51ae-11f0-b5… 4c27df72-51ae… ÉLITE 2 ÉLITE 2 20…
#> 8 12 57b5b7b0-2fd7-11ef-93… 35901fb4-2fd7… All Star Game All Star G…
#> 9 12 8d12d86f-6545-11ef-8c… 27a79741-597b… Betclic ÉLITE -… Betclic ÉL…
#> 10 12 d2dd2541-5978-11ef-81… b5c596e1-5978… Betclic ÉLITE -… Betclic ÉL…
#> 11 12 cab2f926-2fab-11ef-8b… a2262b45-2fab… Betclic ÉLITE Betclic ÉL…
#> 12 12 c68a19df-2fb4-11ef-bf… ac2bc8df-2fb4… Espoirs ELITE Espoirs EL…
#> 13 12 e1ffce27-6544-11ef-8b… 4e83de5b-597c… Espoirs PROB - … Espoirs PR…
#> 14 12 702b8520-2fb5-11ef-8f… 59512848-2fb5… Espoirs PROB Espoirs PR…
#> 15 12 add3f98b-5977-11ef-91… 932b5919-5977… Leaders Cup Leaders Cu…
#> 16 12 79e39e0e-5978-11ef-95… 405cf027-5978… Leaders Cup PROB Leaders Cu…
#> 17 12 91334b18-2fb3-11ef-be… 0847055c-2fb3… PROB PROB 2024
#> 18 12 418ecaae-19af-11ee-a5… 2cd1ec93-19af… Betclic ÉLITE Betclic ÉL…
#> 19 12 7561dbee-19b5-11ee-af… 213e021f-19b5… PROB PROB 2023
#> # ℹ 4 more variables: abbreviation_local <chr>, year <int>,
#> # season_end_year <int>, is_default_season <lgl>
# }
