Skip to contents

Every field-goal attempt of one FEB game with its court position (percent of a full-court image).

Endpoint: GET https://intrafeb.feb.es/LiveStats.API/api/v1/ShotChart/{game_id}

Free throws are not in the feed. x / y are percent (0-100) of a horizontal full-court image, origin top-left; teams change ends at half-time. The feed names the shooter by shirt number: player_id is resolved through the game's roster (side + shirt number) and is NA when that pair is not unique.

Usage

feb_shots(game_id)

Arguments

game_id

(integer required): FEB game id, e.g. 2535725; the game_id column of feb_schedule(), feb_results() and feb_overview().

Value

A hoopR_data tibble with these columns:

col_nametypedescription
game_idintegerFEB game id (one global sequence): the {gameId} of every LiveStats route and the p= of Partido.aspx. Game bodies do not print it, so it comes from the request.
periodintegerPeriod number of the attempt.
clockcharacterGame clock REMAINING in the period at the shot, 'mm:ss' (the play-by-play line's time).
clock_secondsintegerThe clock as whole seconds remaining in the period (08:34 = 514), derived by the parser.
team_sidecharacterSide of the shooter: home (feed code 0) or away (feed code 1; play-by-play uses 1/2).
team_idintegerTeam-season id of the shooter's team (from the shot chart's TEAM list); new every season.
shirt_numbercharacterShirt number (dorsal) as a string, so '00' and '0' stay distinct. The shot feed names the shooter by this number.
player_idintegerFEB person id of the shooter, resolved from side + shirt number in the game's roster; null when that pair is not unique. The feed itself carries no player id.
madelogicalTrue when the shot was made, false when missed. Free throws are not in the feed.
xdoubleCourt x position: percent (0-100) of the length of a horizontal full-court image, origin top-left. Teams change ends at half-time; metres (x/100 x 28) are an unverified inference.
ydoubleCourt y position: percent (0-100) of the width of a horizontal full-court image from the top edge; baskets sit near y = 50. Metres (y/100 x 15) are an unverified inference.

Details

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

 feb_shots(game_id = 2535725)