Skip to contents

Schedule and results of one season (regular season and finals), with the Genius match id that joins play-by-play and shots; optionally one team's games.

Endpoint: GET https://api.data.cebl.ca/games/{season}/

Usage

cebl_games(season, team_id = NULL)

Arguments

season

(required) Season: the calendar year it is played in (May to August) = the sdv END year (2025 = the 2025 season). The CEBL's first season is 2019. A season with no data answers hoopR_no_data.

team_id

(default NULL) CEBL team id (team_id in cebl_teams): limits the rows to that team; the rows echo it.

Value

A hoopR_data tibble: Schedule and results of one season (regular season and finals), with the Genius match id that joins play-by-play and shots; optionally one team's games. An empty valid answer raises hoopR_no_data; the columns are always these, in this order (sportsdataverse-py cebl_games):

col_nametypedescription
seasonintegerSeason of the game: the year of start_time_utc (the calendar year = the sdv END year).
game_idintegerCEBL game id (its own key space: 568 in 2019, 8 digits from 2025, e.g. 14708701). No route is keyed by it; the Genius match id is in stats_url_en.
genius_match_idintegerGenius LiveStats match id parsed from the stats URL (the join to the genius family, organisation CEBL, where play-by-play and shots live). Derived from the URL, not fetched; null when the URL is absent.
start_time_utcPOSIXctScheduled tip-off, ISO 8601 in UTC ('2025-05-11T22:00:00Z').
competitioncharacterREGULAR (regular season) or FINALS (playoffs).
statuscharacterGame status. Observed: COMPLETE (final) and CANELLED (sic: cancelled; 1 game in 2025, 2 in 2026). The Stats Hub also knows SCHEDULED, IN_PROGRESS, DELAYED and FINISHED.
periodintegerLast period played when the API sets it (seen only on a cancelled game, which carried period 3); null on a finished game.
venue_namecharacterArena name ('Edmonton EXPO Centre').
home_team_idintegerCEBL team id (its own key space; not a Genius id). Joins /teams/ id, the games' home_team_id / away_team_id, team_id in player rows and the team_id / vs_team_id params. A relocated or renamed franchise has a second id: the Stats Hub groups 15+56 (Saskatchewan Rattlers, Saskatoon Mamba), 17+53 (Calgary Surge, Guelph Nighthawks), 19+55 (Brampton, Hamilton Honey Badgers) and 16+54 (Vancouver, Fraser Valley Bandits). The home team.
home_team_namecharacterHome team full English name.
home_team_scoreintegerHome team final score. On the 3 cancelled games: null, 0 or a partial score; before tip-off unobserved.
away_team_idintegerCEBL team id (its own key space; not a Genius id). Joins /teams/ id, the games' home_team_id / away_team_id, team_id in player rows and the team_id / vs_team_id params. A relocated or renamed franchise has a second id: the Stats Hub groups 15+56 (Saskatchewan Rattlers, Saskatoon Mamba), 17+53 (Calgary Surge, Guelph Nighthawks), 19+55 (Brampton, Hamilton Honey Badgers) and 16+54 (Vancouver, Fraser Valley Bandits). The away team.
away_team_namecharacterAway team full English name.
away_team_scoreintegerAway team final score. On the 3 cancelled games: null, 0 or a partial score; before tip-off unobserved.
home_team_logo_urlcharacterURL of the home team's logo image as the games feed lists it (a team-level asset, the same on every game of that team in the season).
home_team_stats_url_encharacterHome team's cebl.ca stats page (English).
home_team_stats_url_frcharacterHome team's cebl.ca stats page (French).
away_team_logo_urlcharacterURL of the away team's logo image as the games feed lists it (a team-level asset, the same on every game of that team in the season).
away_team_stats_url_encharacterAway team's cebl.ca stats page (English).
away_team_stats_url_frcharacterAway team's cebl.ca stats page (French).
stats_url_encharacterGenius LiveStats box-score page, https://fibalivestats.dcd.shared.geniussports.com/u/CEBL/{matchId}/. The segment after /u/CEBL/ is the Genius match id: the join to genius-livestats/ (org CEBL), whose data/{matchId}/data.json holds the box score, play-by-play and shot chart. Only match 2600563 is banked there; the others are derived, and cancelled (CANELLED) games carry a filled-in URL whose data.json is unverified.
stats_url_frcharacterThe same Genius LiveStats page in French (.../u/CEBL/{matchId}/index_fr_FR.html).
cebl_stats_url_encharacterThe game page on cebl.ca, https://www.cebl.ca/game?id={matchId}: id is the Genius match id, not this row's id.
cebl_stats_url_frcharacterThe French cebl.ca game page (https://www.cebl.ca/fr-ca/game?id={matchId}).
tickets_url_encharacterTicket-sales page for the game (English).
tickets_url_frcharacterTicket-sales page for the game (French).
broadcast_partner_logo_urlscharacterLogo URLs of the game's broadcasters (TSN+, CEBL+, ...); 2 to 7 per game.

Details

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

Examples

# \donttest{
  try(cebl_games(season = 2025))
#> ── CEBL Games from the CEBL Stats API ─────────────────────────── hoopR 3.2.0 ──
#> ℹ Data updated: 2026-10-31 21:27:55 UTC
#> # A tibble: 128 × 27
#>    season  game_id genius_match_id start_time_utc      competition status period
#>     <int>    <int>           <int> <dttm>              <chr>       <chr>   <int>
#>  1   2025 14708701         2600563 2025-05-11 22:00:00 REGULAR     COMPL…     NA
#>  2   2025 14708702         2600564 2025-05-16 01:30:00 REGULAR     COMPL…     NA
#>  3   2025 14708703         2600565 2025-05-16 23:00:00 REGULAR     COMPL…     NA
#>  4   2025 14708704         2600566 2025-05-17 00:30:00 REGULAR     COMPL…     NA
#>  5   2025 14708705         2600567 2025-05-18 19:00:00 REGULAR     COMPL…     NA
#>  6   2025 14708706         2600568 2025-05-18 20:00:00 REGULAR     COMPL…     NA
#>  7   2025 14708707         2600569 2025-05-21 23:30:00 REGULAR     COMPL…     NA
#>  8   2025 14708708         2600570 2025-05-23 01:30:00 REGULAR     COMPL…     NA
#>  9   2025 14708709         2600571 2025-05-23 02:00:00 REGULAR     COMPL…     NA
#> 10   2025 14708711         2600573 2025-05-24 00:30:00 REGULAR     COMPL…     NA
#> # ℹ 118 more rows
#> # ℹ 20 more variables: venue_name <chr>, home_team_id <int>,
#> #   home_team_name <chr>, home_team_score <int>, away_team_id <int>,
#> #   away_team_name <chr>, away_team_score <int>, home_team_logo_url <chr>,
#> #   home_team_stats_url_en <chr>, home_team_stats_url_fr <chr>,
#> #   away_team_logo_url <chr>, away_team_stats_url_en <chr>,
#> #   away_team_stats_url_fr <chr>, stats_url_en <chr>, stats_url_fr <chr>, …
# }