Skip to contents

Schedule and results of one season + series + game type.

Endpoint: GET https://www.basketligaen.dk/api/sports-v2/game-schedule

Usage

sportality_schedule(season, game_type = "regular")

Arguments

season

(required) Season END year (2026 = 2025/26). Mapped to the provider's ssgt through /statistics-v2/layout- info (Basketligaen 2002/03 on); a season it does not list raises hoopR_no_data.

game_type

(default "regular") Game type: regular (the league season) or finals (the playoffs, Slutspil).

Value

A hoopR_data tibble: Schedule and results of one season + series + game type. An empty valid answer raises hoopR_no_data; the documented columns come first, in this order (sportsdataverse-py sportality_schedule), then any column the API added later:

col_nametypedescription
game_uuidcharacterPlatform game uuid (c4hh5nig6t); every gameday route takes it.
raw_start_date_timecharacterScheduled start, ISO 8601 UTC.
start_date_timecharacterScheduled start. On the schedule route this is the LOCAL (Europe/Copenhagen) wall time 'YYYY-MM-DD HH:MM:SS' with no zone; on the other routes it is ISO 8601 UTC with milliseconds (compare rawStartDateTime).
statecharacterGame state. Schedule and day views: pre-game or post-game (hyphen). sports-v2 game-info: post_game (underscore). Gameday overview: GameEnded. Values: post-game = played (schedule, day views); pre-game = not yet played (schedule, day views).
overtimelogicalWhether the game went to overtime.
shootoutcharacterUnobserved: null in every sample and every full body. When filled: Whether the game was decided by a shootout (null on every game seen; basketball has none).
ssgt_uuidcharacterssgt uuid (platform key space: one season + series + game type); joins /statistics-v2/layout-info seasonSeriesGameTypeTeams[].ssgtUuid and every route keyed by ssgt.
home_team_statuscharacterWIN or LOSE for the home team once the game is played; absent or empty before. Values: LOSE = the team lost; N/A = no result yet / not applicable; WIN = the team won.
home_team_uuidcharacterHome team uuid (platform key space); joins /sports-v2/teams/{team_uuid}.
home_team_owner_instance_idcharacterSite instance id of the club that owns the team (platform key space, e.g. hol2_hol).
home_team_codecharacterThree-letter code of the home team.
home_team_names_codecharacterThree-letter team code (HOL, RAN ...); codes changed between seasons for some clubs (BAK in 2026, BKA in 2025 for Bakken Bears).
home_team_names_shortcharacterShort name of the team.
home_team_names_longcharacterLong name of the team.
home_team_names_fullcharacterFull name of the team.
home_team_names_code_sitecharacterTeam code as the club's own site shows it.
home_team_names_short_sitecharacterShort team name as the club's own site shows it.
home_team_names_full_sitecharacterFull team name as the club's own site shows it.
home_team_names_long_sitecharacterLong team name as the club's own site shows it.
home_team_scoreintegerHome points; null before the game is played.
home_team_iconcharacterHome team logo URL.
away_team_statuscharacterWIN or LOSE for the away team once the game is played; absent or empty before. Values: LOSE = the team lost; N/A = no result yet / not applicable; WIN = the team won.
away_team_uuidcharacterAway team uuid (platform key space); joins /sports-v2/teams/{team_uuid}.
away_team_owner_instance_idcharacterSite instance id of the club that owns the team (platform key space, e.g. hol2_hol).
away_team_codecharacterThree-letter code of the away team.
away_team_names_codecharacterThree-letter team code (HOL, RAN ...); codes changed between seasons for some clubs (BAK in 2026, BKA in 2025 for Bakken Bears).
away_team_names_shortcharacterShort name of the team.
away_team_names_longcharacterLong name of the team.
away_team_names_fullcharacterFull name of the team.
away_team_names_code_sitecharacterTeam code as the club's own site shows it.
away_team_names_short_sitecharacterShort team name as the club's own site shows it.
away_team_names_full_sitecharacterFull team name as the club's own site shows it.
away_team_names_long_sitecharacterLong team name as the club's own site shows it.
away_team_scoreintegerAway points; null before the game is played.
away_team_iconcharacterAway team logo URL.
venue_uuidcharacterVenue uuid (platform key space).
venue_namecharacterVenue name; absent when unknown.
series_uuidcharacterSeries uuid (platform key space).
series_codecharacterSeries display name (Basketligaen; NOT the DBL code).
series_display_namecharacterSeries display name (Basketligaen).
round_numberintegerRound number (0 for every game seen; the league has no rounds).
round_labelcharacterRound label (” for every game seen).

Details

  • Unofficial: the JSON API behind www.basketligaen.dk, the Danish men's basketball league (Basketligaen, series code DBL). The site runs on the Sportality platform (the vendor behind the SHL and HockeyAllsvenskan wrappers). The terms page was not read; check it before you republish the data.

  • Stats provider: genius-basketball, a relay of Genius Sports LiveStats. The Genius match, team and person ids in play-by-play, box scores and stats tables (game_id, team_id, player_id, all Int64) join the genius family; the platform uuids (game, team, athlete, ssgt) are not Genius ids and exist only on this site. The Genius ORG code of Denmark is not exposed.

  • Season = the END year (2026 = 2025/26) everywhere; the runtime maps it, with game_type ('regular' or 'finals', the playoffs), to the site's ssgt (season + series + game type) through layout-info. Schedules, standings and season tables start in 2002/03; game-level data (play-by-play with shot x/y, box scores, team stats) starts in 2023/24.

  • Source defects the runtime refuses (hoopR_asset_fetch): an unfinished game or a truncated play-by-play feed, a box score or feed that names another game, a cut stats table. The 2002/03 regular-season schedule lists 109 finished games where its own standings count 110: a source gap.

  • Personal data is removed from every body: birth dates, e-mail addresses, phone numbers, addresses and contact blocks.

  • No women's league: Dameligaen has its own domain (dameligaen.dk), which answers 401 to anonymous requests.

  • Errors are classed conditions: hoopR_no_data (404, an empty gameday body, {} / [], a table with no rows, a season or game type layout-info does not list), hoopR_bad_request (a bad argument, a 400 / 422) and hoopR_asset_fetch (an error envelope or non-JSON 200, a body for another game / team / athlete / ssgt, an unfinished game or truncated play-by-play, a cut stats table, any other non-2xx; a 500 is the site's answer for an unknown uuid and is not retried), all inheriting hoopR_error. Wrappers raise; they never return an empty frame.

Examples

# \donttest{
  try(sportality_schedule(season = 2026))
#> Error in sportality_schedule(season = 2026) : 
#>   www.basketligaen.dk/api/statistics-v2/layout-info: 0 ssgts in the body,
#> expected the 40+ of 25 seasons.
# }