Skip to contents

One match's header: status, scores, clock, venue, season and teams. Box score and play-by-play: the match_* frames.

Endpoint: GET https://prod.rosetta.nbl.com.au/get/match/{match_id}/live/all

Usage

nbl_rosetta_match(match_id)

Arguments

match_id

(character required): DataCore fixture id of the match (match_id of nbl_rosetta_matches), a UUID, e.g. b217a699-4bef-11f0-bc08-933162362355.

Value

A hoopR_data tibble (one row):

col_nametypedescription
orgcharacterOrganisation the row belongs to: nbl, wnbl or nbl1. From the row's competition, else from the request.
match_idcharacterDataCore fixture id (UUID v1); equal to id.
match_statuscharacterStatus of the match in Rosetta's words (complete for a finished game): box score and play-by-play of any other status are partial.
start_time_datetimecharacterTip-off, UTC; same value as start_time.
match_typecharacterMatch type: regular, final (FINAL upper case seen)
attendanceintegerAttendance, a STRING; null when not recorded.
clockcharacterGame clock of the latest event, HH:MM:SS remaining in the period.
current_periodintegerLatest period number as a STRING; null on older matches.
clock_runninglogicalGame clock is running.
home_scoreintegerHome final score, a STRING; null before tip-off.
away_scoreintegerAway final score, a STRING; null before tip-off.
roundcharacterRound label: a number as a string in the regular season ("13"), words in the finals ("SEMI FINAL SERIES 1", "CHAMPIONSHIP")
start_timecharacterTip-off, UTC, with no offset or a Z suffix (ESPN dates the same Perth v SE Melbourne game 2025-12-18T10:30Z; Rosetta says 2025-12-18T10:30:00)
statuscharacterProvider fixture status: CONFIRMED, SCHEDULED.
external_media_idcharacterMedia id. Through NBL25 (2024-25): the Genius Sports match id (7 digits, e.g. 2636769; 6 or fewer in older seasons). From NBL26: mostly an 8-digit number of unverified origin (e.g. 61386925), date-like codes on some games (05042026 = DDMMYYYY on the 2026 Championship game, 1409252 = DDMMYY + n on the Blitz), null on many preseason games. NBL1 and WNBL 2025 carry 8-digit numbers.
match_slugcharacterURL slug of the match page on nbl.com.au.
match_titlecharacterMatch title ("<home> v <away> <men/women> DD-MM-YYYY")
secondary_external_idcharacterUnobserved in samples (null in every capture); type and meaning unverified.
live_exclusivelogicalMatch is a live-stream exclusive.
season_idcharacterDataCore id (UUID v1, Sportradar) of the season; stable across seasons and the id to join on across routes.
rosetta_season_idcharacterRosetta's own id (UUID v4; v5 on NBL1) of the season; routes that take this entity accept it as well as the DataCore id.
season_yearintegerRosetta's year of the season: the START year for the NBL and WNBL from 1998-99 (2025 = 2025-26), the calendar year for NBL1 and the 1979-1997 winter seasons. See season_end_year for the sdv key.
season_typecharacterSeason type: regular (includes finals), preseason, in_season (cups, blitz, exhibition), test.
season_competition_idcharacterRosetta competition id (UUID v4)
season_competition_namecharacterName of the competition the season belongs to (e.g. NBL, WNBL, NBL1 North Men).
season_competition_gendercharacterGender (MALE/FEMALE upper case on seasons and players, male/female lower case on competitions and divisions; UNKNOWN seen)
season_competition_league_namecharacterName of the league the competition belongs to (NBL, WNBL or NBL1).
season_competition_divisioncharacterNBL1 divisions (conference x gender); empty for NBL and WNBL.
venue_idcharacterDataCore id (UUID v1, Sportradar) of the venue; stable across seasons and the id to join on across routes.
rosetta_venue_idcharacterRosetta's own id (UUID v4; v5 on NBL1) of the venue; routes that take this entity accept it as well as the DataCore id.
venue_namecharacterName of the venue (arena), e.g. RAC Arena.
venue_addresscharacterUnobserved in samples (null in every capture); type and meaning unverified.
venue_capacityintegerUnobserved in samples (null in every capture); type and meaning unverified.
venue_timezonecharacterIANA time zone of the venue, e.g. Australia/Sydney.
venue_codecharacterVenue code; often null.
venue_statecharacterUnobserved in samples (null in every capture); type and meaning unverified.
venue_suburbcharacterUnobserved in samples (null in every capture); type and meaning unverified.
venue_latitudedoubleUnobserved in samples (null in every capture); type and meaning unverified.
venue_longitudedoubleUnobserved in samples (null in every capture); type and meaning unverified.
venue_countrycharacterCountry; often null.
home_team_idcharacterDataCore id (UUID v1, Sportradar) of the home team; stable across seasons and the id to join on across routes.
home_team_namecharacterDisplay name of the team.
home_team_external_team_namecharacterTeam name as DataCore spells it.
home_team_codecharacterTeam code of the home team, e.g. PER or SYD.
away_team_idcharacterDataCore id (UUID v1, Sportradar) of the away team; stable across seasons and the id to join on across routes.
away_team_namecharacterDisplay name of the team.
away_team_external_team_namecharacterTeam name as DataCore spells it.
away_team_codecharacterTeam code of the away team, e.g. PER or SYD.
data_sourcecharacterBackend that built the body: nexus-api or lambda-cache (observed). It varies between requests for the same match (the NBL 2025-26 sample game came back lambda-cache from /live/all and nexus-api from /match/{match_id} minutes apart, with identical play-by-play), so it says nothing about the data.
match_status_stringcharacterStatus banner text, e.g. FINAL.
play_by_play_updated_datetimecharacterLast play-by-play update, ISO 8601 UTC.
season_end_yearintegersdv season key: the END year of the season (2026 = 2025-26), derived from season_year (a START year for the NBL and WNBL from 1998-99, a calendar year for NBL1 and the 1979-1997 winter seasons; year 1998 is split on the start date). Where the body carries no year it is the season asked for.

Columns the body adds beyond these follow, in body order (sportsdataverse-py keeps them too).

Details

Source, terms of use, request pacing, seasons, ids, coverage and error classes of this family: see the notes in nbl_rosetta_seasons().

Examples

# \donttest{
  try(nbl_rosetta_match(match_id = "b217a699-4bef-11f0-bc08-933162362355"))
#> ── NBL Rosetta match from prod.rosetta.nbl.com.au ─────────────── hoopR 3.2.0 ──
#> ℹ Data updated: 2026-10-31 21:32:56 UTC
#> # A tibble: 1 × 52
#>   org   match_id    match_status start_time_datetime match_type attendance clock
#>   <chr> <chr>       <chr>        <chr>               <chr>           <int> <chr>
#> 1 nbl   b217a699-4… complete     2025-12-18T10:30:00 regular         10802 00:0…
#> # ℹ 45 more variables: current_period <int>, clock_running <lgl>,
#> #   home_score <int>, away_score <int>, round <chr>, start_time <chr>,
#> #   status <chr>, external_media_id <chr>, match_slug <chr>, match_title <chr>,
#> #   secondary_external_id <chr>, live_exclusive <lgl>, season_id <chr>,
#> #   rosetta_season_id <chr>, season_year <int>, season_type <chr>,
#> #   season_competition_id <chr>, season_competition_name <chr>,
#> #   season_competition_gender <chr>, season_competition_league_name <chr>, …
# }