Skip to contents

Top five players per requested statistic (long frame, one row per statistic and leader).

Endpoint: GET https://api.data.cebl.ca/players/statistics/leaders/

Usage

cebl_player_leaders(
  statistics = "POINTS,REBOUNDS,ASSISTS,TARGET_SCORES",
  mode = "PER_GAME",
  season = NULL,
  competition = NULL,
  team_id = NULL
)

Arguments

statistics

(default "POINTS,REBOUNDS,ASSISTS,TARGET_SCORES") Comma-separated statistic names; the frame has one block per name. Names the Stats Hub sends: POINTS, REBOUNDS, ASSISTS, BLOCKS, STEALS, TARGET_SCORES, FIELD_GOAL_PERCENTAGE, THREE_POINTS_MADE, THREE_POINT_PERCENTAGE, FREE_THROW_PERCENTAGE, FOULS, TURNOVERS, MINUTES.

mode

(default "PER_GAME") TOTALS (sums over the selected games) or PER_GAME (per-game averages); the API requires one.

season

(default NULL) Season: the calendar year (May to August) = the sdv END year. NULL = every season combined (the Stats Hub's All-Time). An unknown year answers hoopR_no_data.

competition

(default NULL) REGULAR (regular season) or FINALS (the playoffs). NULL = both.

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: Top five players per requested statistic (long frame, one row per statistic and leader). An empty valid answer raises hoopR_no_data; the columns are always these, in this order (sportsdataverse-py cebl_player_leaders):

col_nametypedescription
statisticcharacterStatistic this leader row ranks, the body's key for the list: POINTS, REBOUNDS, ASSISTS, TARGET_SCORES and the other names the request asked for.
rankingintegerRank in this statistic, 1 = best; ties share a rank and skip the next (1, 1, 1, 4). The list is the top 5 rows, no more.
seasonintegerSeason: the calendar year it is played in (May to August) = the sdv END year (2025). Taken from the request (the body does not echo it); null for the all-time table and for a bare body.
modecharacterTable mode of the request: TOTALS (sums over the selected games) or PER_GAME (per-game averages); the body does not echo it.
competitioncharacterCompetition filter of the request: REGULAR or FINALS; null when both were asked. The body does not echo it.
player_idintegerCEBL player id (its own key space). Joins /players/{player_id}/ and id in the other player rows. Genius LiveStats data.json carries no person id, so the join to Genius play-by-play is by name, team and jersey number (unverified).
full_namecharacterPlayer's full name.
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).
team_name_encharacterFull English name of the player's team.
team_short_name_encharacterShort English name (city) of the player's team.
team_name_frcharacterFull French name of the player's team.
team_short_name_frcharacterShort French name (city) of the player's team.
team_abbreviated_namecharacterThree-letter code of the player's team ('OTT', 'VAN').
team_logo_urlcharacterLogo URL (icon with the name) of the player's team.
valuedoubleThe player's figure for the statistic this list is keyed by, in the requested mode (TOTALS sum or PER_GAME average; percentages 0-100). A decimal string ('25.9').
photo_urlcharacterPlayer headshot URL on the Genius Sports image CDN (images.statsengine.playbyplay.api.geniussports.com).

Details

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

 cebl_player_leaders(mode = "PER_GAME", season = 2025)