Skip to main content

NBA — NBA Stats API (stats.nba.com) — Draft combine

nba_stats_draftcombinedrillresults​

GET /stats/draftcombinedrillresults

Endpoint URL: GET https://stats.nba.com/stats/draftcombinedrillresults

Valid URL: https://stats.nba.com/stats/draftcombinedrillresults?LeagueID=00&SeasonYear=2024-25

API ParameterPythonPatternRequiredNullableDescription
LeagueIDleague_idY
SeasonYearseason_yearYSeason label, e.g. 2024-25. Defaults at call time by a calendar cutoff, the month after a season's first games, so it can lag the newest rows by a few weeks. An NBA season tips off in late October and becomes the default in November (2025-26 through October 2026, 2026-27 from November 2026); a G League season (regular season from late December) in January; a Summer League (played in July, which stats.nba.com labels 2026-27 in 2026) in August; a draft combine (May) in June; a draft (drafthistory, a year; late June) in July. With season type Playoffs / PlayIn (or commonplayoffseries) the NBA and the G League roll over in May, after their playoffs start; with All Star the NBA rolls over in March, after the February game (the G League has no All-Star rows and keeps its own rule). A month table cannot follow a lockout or pandemic calendar (1998-99, 2011-12, 2020-21): pass a season then. Without one stats.nba.com answers an empty HTTP 500 or every season summed.

Returns​

return_parsed=True (default) — a tidy polars.DataFrame with the columns below; pass return_as_pandas=True for a pandas.DataFrame.

col_nametypedescription
temp_player_idintegerTemporary combine player identifier assigned by the NBA before a permanent player id exists.
player_idintegerUnique player identifier.
first_namecharacterPlayer's first name.
last_namecharacterPlayer's last name.
player_namecharacterPlayer name.
positioncharacterListed roster position (G, F, C, etc.).
standing_vertical_leapnumericStanding (no-step) vertical leap, in inches.
max_vertical_leapnumericMaximum (running) vertical leap, in inches.
lane_agility_timenumericLane agility drill time, in seconds.
modified_lane_agility_timenumericModified (shuttle) lane agility drill time, in seconds.
three_quarter_sprintnumericThree-quarter-court sprint time, in seconds.
bench_presscharacterRepetitions of 185 pounds completed on the bench press.

return_parsed=False — the raw JSON Dict payload, unparsed.

Example​

nba_stats_draftcombinedrillresults(league_id='00', season_year='2024-25')

Last validated n/a.

nba_stats_draftcombinenonstationaryshooting​

GET /stats/draftcombinenonstationaryshooting

Endpoint URL: GET https://stats.nba.com/stats/draftcombinenonstationaryshooting

Valid URL: https://stats.nba.com/stats/draftcombinenonstationaryshooting?LeagueID=00&SeasonYear=2024-25

API ParameterPythonPatternRequiredNullableDescription
LeagueIDleague_idY
SeasonYearseason_yearYSeason label, e.g. 2024-25. Defaults at call time by a calendar cutoff, the month after a season's first games, so it can lag the newest rows by a few weeks. An NBA season tips off in late October and becomes the default in November (2025-26 through October 2026, 2026-27 from November 2026); a G League season (regular season from late December) in January; a Summer League (played in July, which stats.nba.com labels 2026-27 in 2026) in August; a draft combine (May) in June; a draft (drafthistory, a year; late June) in July. With season type Playoffs / PlayIn (or commonplayoffseries) the NBA and the G League roll over in May, after their playoffs start; with All Star the NBA rolls over in March, after the February game (the G League has no All-Star rows and keeps its own rule). A month table cannot follow a lockout or pandemic calendar (1998-99, 2011-12, 2020-21): pass a season then. Without one stats.nba.com answers an empty HTTP 500 or every season summed.

Returns​

return_parsed=True (default) — a tidy polars.DataFrame with the columns below; pass return_as_pandas=True for a pandas.DataFrame.

col_nametypedescription
temp_player_idintegerTemporary combine player identifier assigned by the NBA before a permanent player id exists.
player_idintegerUnique player identifier.
first_namecharacterPlayer's first name.
last_namecharacterPlayer's last name.
player_namecharacterPlayer name.
positioncharacterListed roster position (G, F, C, etc.).
off_drib_fifteen_break_left_madecharacterShots made from the 15-foot left wing (break) spot in the off-the-dribble shooting drill at the combine.
off_drib_fifteen_break_left_attemptcharacterShots attempted from the 15-foot left wing (break) spot in the off-the-dribble shooting drill at the combine.
off_drib_fifteen_break_left_pctcharacterShooting percentage from the 15-foot left wing (break) spot in the off-the-dribble shooting drill, as a decimal.
off_drib_fifteen_top_key_madecharacterShots made from the 15-foot top of the key spot in the off-the-dribble shooting drill at the combine.
off_drib_fifteen_top_key_attemptcharacterShots attempted from the 15-foot top of the key spot in the off-the-dribble shooting drill at the combine.
off_drib_fifteen_top_key_pctcharacterShooting percentage from the 15-foot top of the key spot in the off-the-dribble shooting drill, as a decimal.
off_drib_fifteen_break_right_madecharacterShots made from the 15-foot right wing (break) spot in the off-the-dribble shooting drill at the combine.
off_drib_fifteen_break_right_attemptcharacterShots attempted from the 15-foot right wing (break) spot in the off-the-dribble shooting drill at the combine.
off_drib_fifteen_break_right_pctcharacterShooting percentage from the 15-foot right wing (break) spot in the off-the-dribble shooting drill, as a decimal.
off_drib_college_break_left_madeintegerShots made from the college three-point left wing (break) spot in the off-the-dribble shooting drill at the combine.
off_drib_college_break_left_attemptintegerShots attempted from the college three-point left wing (break) spot in the off-the-dribble shooting drill at the combine.
off_drib_college_break_left_pctnumericShooting percentage from the college three-point left wing (break) spot in the off-the-dribble shooting drill, as a decimal.
off_drib_college_top_key_madecharacterShots made from the college three-point top of the key spot in the off-the-dribble shooting drill at the combine.
off_drib_college_top_key_attemptcharacterShots attempted from the college three-point top of the key spot in the off-the-dribble shooting drill at the combine.
off_drib_college_top_key_pctcharacterShooting percentage from the college three-point top of the key spot in the off-the-dribble shooting drill, as a decimal.
off_drib_college_break_right_madecharacterShots made from the college three-point right wing (break) spot in the off-the-dribble shooting drill at the combine.
off_drib_college_break_right_attemptcharacterShots attempted from the college three-point right wing (break) spot in the off-the-dribble shooting drill at the combine.
off_drib_college_break_right_pctcharacterShooting percentage from the college three-point right wing (break) spot in the off-the-dribble shooting drill, as a decimal.
on_move_fifteen_madecharacterShots made from the 15-foot spot in the shooting-on-the-move drill at the combine.
on_move_fifteen_attemptcharacterShots attempted from the 15-foot spot in the shooting-on-the-move drill at the combine.
on_move_fifteen_pctcharacterShooting percentage from the 15-foot spot in the shooting-on-the-move drill, as a decimal.
on_move_college_madeintegerShots made from the college three-point spot in the shooting-on-the-move drill at the combine.
on_move_college_attemptintegerShots attempted from the college three-point spot in the shooting-on-the-move drill at the combine.
on_move_college_pctnumericShooting percentage from the college three-point spot in the shooting-on-the-move drill, as a decimal.

return_parsed=False — the raw JSON Dict payload, unparsed.

Example​

nba_stats_draftcombinenonstationaryshooting(league_id='00', season_year='2024-25')

Last validated n/a.

nba_stats_draftcombineplayeranthro​

GET /stats/draftcombineplayeranthro

Endpoint URL: GET https://stats.nba.com/stats/draftcombineplayeranthro

Valid URL: https://stats.nba.com/stats/draftcombineplayeranthro?LeagueID=00&SeasonYear=2024-25

API ParameterPythonPatternRequiredNullableDescription
LeagueIDleague_idY
SeasonYearseason_yearYSeason label, e.g. 2024-25. Defaults at call time by a calendar cutoff, the month after a season's first games, so it can lag the newest rows by a few weeks. An NBA season tips off in late October and becomes the default in November (2025-26 through October 2026, 2026-27 from November 2026); a G League season (regular season from late December) in January; a Summer League (played in July, which stats.nba.com labels 2026-27 in 2026) in August; a draft combine (May) in June; a draft (drafthistory, a year; late June) in July. With season type Playoffs / PlayIn (or commonplayoffseries) the NBA and the G League roll over in May, after their playoffs start; with All Star the NBA rolls over in March, after the February game (the G League has no All-Star rows and keeps its own rule). A month table cannot follow a lockout or pandemic calendar (1998-99, 2011-12, 2020-21): pass a season then. Without one stats.nba.com answers an empty HTTP 500 or every season summed.

Returns​

return_parsed=True (default) — a tidy polars.DataFrame with the columns below; pass return_as_pandas=True for a pandas.DataFrame.

col_nametypedescription
temp_player_idintegerTemporary combine player identifier assigned by the NBA before a permanent player id exists.
player_idintegerUnique player identifier.
first_namecharacterPlayer's first name.
last_namecharacterPlayer's last name.
player_namecharacterPlayer name.
positioncharacterListed roster position (G, F, C, etc.).
height_wo_shoesnumericHeight measured without shoes, in inches.
height_wo_shoes_ft_incharacterHeight without shoes formatted as feet and inches.
height_w_shoescharacterHeight measured with shoes, in inches.
height_w_shoes_ft_incharacterHeight with shoes formatted as feet and inches.
weightcharacterPlayer weight in pounds.
wingspannumericWingspan measured at the combine, in inches.
wingspan_ft_incharacterWingspan formatted as feet and inches.
standing_reachnumericStanding reach measured at the combine, in inches.
standing_reach_ft_incharacterStanding reach formatted as feet and inches.
body_fat_pctcharacterBody fat percentage measured at the combine.
hand_lengthnumericHand length measured at the combine, in inches.
hand_widthnumericHand width measured at the combine, in inches.

return_parsed=False — the raw JSON Dict payload, unparsed.

Example​

nba_stats_draftcombineplayeranthro(league_id='00', season_year='2024-25')

Last validated n/a.

nba_stats_draftcombinespotshooting​

GET /stats/draftcombinespotshooting

Endpoint URL: GET https://stats.nba.com/stats/draftcombinespotshooting

Valid URL: https://stats.nba.com/stats/draftcombinespotshooting?LeagueID=00&SeasonYear=2024-25

API ParameterPythonPatternRequiredNullableDescription
LeagueIDleague_idY
SeasonYearseason_yearYSeason label, e.g. 2024-25. Defaults at call time by a calendar cutoff, the month after a season's first games, so it can lag the newest rows by a few weeks. An NBA season tips off in late October and becomes the default in November (2025-26 through October 2026, 2026-27 from November 2026); a G League season (regular season from late December) in January; a Summer League (played in July, which stats.nba.com labels 2026-27 in 2026) in August; a draft combine (May) in June; a draft (drafthistory, a year; late June) in July. With season type Playoffs / PlayIn (or commonplayoffseries) the NBA and the G League roll over in May, after their playoffs start; with All Star the NBA rolls over in March, after the February game (the G League has no All-Star rows and keeps its own rule). A month table cannot follow a lockout or pandemic calendar (1998-99, 2011-12, 2020-21): pass a season then. Without one stats.nba.com answers an empty HTTP 500 or every season summed.

Returns​

return_parsed=True (default) — a tidy polars.DataFrame with the columns below; pass return_as_pandas=True for a pandas.DataFrame.

col_nametypedescription
temp_player_idintegerTemporary combine player identifier assigned by the NBA before a permanent player id exists.
player_idintegerUnique player identifier.
first_namecharacterPlayer's first name.
last_namecharacterPlayer's last name.
player_namecharacterPlayer name.
positioncharacterListed roster position (G, F, C, etc.).
fifteen_corner_left_madecharacterShots made from the 15-foot left corner spot in the stationary spot-up shooting drill at the combine.
fifteen_corner_left_attemptcharacterShots attempted from the 15-foot left corner spot in the stationary spot-up shooting drill at the combine.
fifteen_corner_left_pctcharacterShooting percentage from the 15-foot left corner spot in the stationary spot-up shooting drill, as a decimal.
fifteen_break_left_madecharacterShots made from the 15-foot left wing (break) spot in the stationary spot-up shooting drill at the combine.
fifteen_break_left_attemptcharacterShots attempted from the 15-foot left wing (break) spot in the stationary spot-up shooting drill at the combine.
fifteen_break_left_pctcharacterShooting percentage from the 15-foot left wing (break) spot in the stationary spot-up shooting drill, as a decimal.
fifteen_top_key_madecharacterShots made from the 15-foot top of the key spot in the stationary spot-up shooting drill at the combine.
fifteen_top_key_attemptcharacterShots attempted from the 15-foot top of the key spot in the stationary spot-up shooting drill at the combine.
fifteen_top_key_pctcharacterShooting percentage from the 15-foot top of the key spot in the stationary spot-up shooting drill, as a decimal.
fifteen_break_right_madecharacterShots made from the 15-foot right wing (break) spot in the stationary spot-up shooting drill at the combine.
fifteen_break_right_attemptcharacterShots attempted from the 15-foot right wing (break) spot in the stationary spot-up shooting drill at the combine.
fifteen_break_right_pctcharacterShooting percentage from the 15-foot right wing (break) spot in the stationary spot-up shooting drill, as a decimal.
fifteen_corner_right_madecharacterShots made from the 15-foot right corner spot in the stationary spot-up shooting drill at the combine.
fifteen_corner_right_attemptcharacterShots attempted from the 15-foot right corner spot in the stationary spot-up shooting drill at the combine.
fifteen_corner_right_pctcharacterShooting percentage from the 15-foot right corner spot in the stationary spot-up shooting drill, as a decimal.
college_corner_left_madeintegerShots made from the college three-point left corner spot in the stationary spot-up shooting drill at the combine.
college_corner_left_attemptintegerShots attempted from the college three-point left corner spot in the stationary spot-up shooting drill at the combine.
college_corner_left_pctnumericShooting percentage from the college three-point left corner spot in the stationary spot-up shooting drill, as a decimal.
college_break_left_madecharacterShots made from the college three-point left wing (break) spot in the stationary spot-up shooting drill at the combine.
college_break_left_attemptcharacterShots attempted from the college three-point left wing (break) spot in the stationary spot-up shooting drill at the combine.
college_break_left_pctcharacterShooting percentage from the college three-point left wing (break) spot in the stationary spot-up shooting drill, as a decimal.
college_top_key_madecharacterShots made from the college three-point top of the key spot in the stationary spot-up shooting drill at the combine.
college_top_key_attemptcharacterShots attempted from the college three-point top of the key spot in the stationary spot-up shooting drill at the combine.
college_top_key_pctcharacterShooting percentage from the college three-point top of the key spot in the stationary spot-up shooting drill, as a decimal.
college_break_right_madecharacterShots made from the college three-point right wing (break) spot in the stationary spot-up shooting drill at the combine.
college_break_right_attemptcharacterShots attempted from the college three-point right wing (break) spot in the stationary spot-up shooting drill at the combine.
college_break_right_pctcharacterShooting percentage from the college three-point right wing (break) spot in the stationary spot-up shooting drill, as a decimal.
college_corner_right_madecharacterShots made from the college three-point right corner spot in the stationary spot-up shooting drill at the combine.
college_corner_right_attemptcharacterShots attempted from the college three-point right corner spot in the stationary spot-up shooting drill at the combine.
college_corner_right_pctcharacterShooting percentage from the college three-point right corner spot in the stationary spot-up shooting drill, as a decimal.
nba_corner_left_madecharacterShots made from the NBA three-point left corner spot in the stationary spot-up shooting drill at the combine.
nba_corner_left_attemptcharacterShots attempted from the NBA three-point left corner spot in the stationary spot-up shooting drill at the combine.
nba_corner_left_pctcharacterShooting percentage from the NBA three-point left corner spot in the stationary spot-up shooting drill, as a decimal.
nba_break_left_madecharacterShots made from the NBA three-point left wing (break) spot in the stationary spot-up shooting drill at the combine.
nba_break_left_attemptcharacterShots attempted from the NBA three-point left wing (break) spot in the stationary spot-up shooting drill at the combine.
nba_break_left_pctcharacterShooting percentage from the NBA three-point left wing (break) spot in the stationary spot-up shooting drill, as a decimal.
nba_top_key_madecharacterShots made from the NBA three-point top of the key spot in the stationary spot-up shooting drill at the combine.
nba_top_key_attemptcharacterShots attempted from the NBA three-point top of the key spot in the stationary spot-up shooting drill at the combine.
nba_top_key_pctcharacterShooting percentage from the NBA three-point top of the key spot in the stationary spot-up shooting drill, as a decimal.
nba_break_right_madecharacterShots made from the NBA three-point right wing (break) spot in the stationary spot-up shooting drill at the combine.
nba_break_right_attemptcharacterShots attempted from the NBA three-point right wing (break) spot in the stationary spot-up shooting drill at the combine.
nba_break_right_pctcharacterShooting percentage from the NBA three-point right wing (break) spot in the stationary spot-up shooting drill, as a decimal.
nba_corner_right_madecharacterShots made from the NBA three-point right corner spot in the stationary spot-up shooting drill at the combine.
nba_corner_right_attemptcharacterShots attempted from the NBA three-point right corner spot in the stationary spot-up shooting drill at the combine.
nba_corner_right_pctcharacterShooting percentage from the NBA three-point right corner spot in the stationary spot-up shooting drill, as a decimal.

return_parsed=False — the raw JSON Dict payload, unparsed.

Example​

nba_stats_draftcombinespotshooting(league_id='00', season_year='2024-25')

Last validated n/a.

nba_stats_draftcombinestats​

GET /stats/draftcombinestats

Endpoint URL: GET https://stats.nba.com/stats/draftcombinestats

Valid URL: https://stats.nba.com/stats/draftcombinestats?LeagueID=00&SeasonYear=2024-25

API ParameterPythonPatternRequiredNullableDescription
LeagueIDleague_idY
SeasonYearseason_all_timeYSeason label, e.g. 2024-25. Defaults at call time by a calendar cutoff, the month after a season's first games, so it can lag the newest rows by a few weeks. An NBA season tips off in late October and becomes the default in November (2025-26 through October 2026, 2026-27 from November 2026); a G League season (regular season from late December) in January; a Summer League (played in July, which stats.nba.com labels 2026-27 in 2026) in August; a draft combine (May) in June; a draft (drafthistory, a year; late June) in July. With season type Playoffs / PlayIn (or commonplayoffseries) the NBA and the G League roll over in May, after their playoffs start; with All Star the NBA rolls over in March, after the February game (the G League has no All-Star rows and keeps its own rule). A month table cannot follow a lockout or pandemic calendar (1998-99, 2011-12, 2020-21): pass a season then. Without one stats.nba.com answers an empty HTTP 500 or every season summed.

Returns​

return_parsed=True (default) — a tidy polars.DataFrame with the columns below; pass return_as_pandas=True for a pandas.DataFrame.

col_nametypedescription
seasoncharacterSeason year.
player_idintegerUnique player identifier.
first_namecharacterPlayer's first name.
last_namecharacterPlayer's last name.
player_namecharacterPlayer name.
positioncharacterListed roster position (G, F, C, etc.).
height_wo_shoesnumericHeight measured without shoes, in inches.
height_wo_shoes_ft_incharacterHeight without shoes formatted as feet and inches.
height_w_shoescharacterHeight measured with shoes, in inches.
height_w_shoes_ft_incharacterHeight with shoes formatted as feet and inches.
weightcharacterPlayer weight in pounds.
wingspannumericWingspan measured at the combine, in inches.
wingspan_ft_incharacterWingspan formatted as feet and inches.
standing_reachnumericStanding reach measured at the combine, in inches.
standing_reach_ft_incharacterStanding reach formatted as feet and inches.
body_fat_pctcharacterBody fat percentage measured at the combine.
hand_lengthnumericHand length measured at the combine, in inches.
hand_widthnumericHand width measured at the combine, in inches.
standing_vertical_leapnumericStanding (no-step) vertical leap, in inches.
max_vertical_leapnumericMaximum (running) vertical leap, in inches.
lane_agility_timenumericLane agility drill time, in seconds.
modified_lane_agility_timenumericModified (shuttle) lane agility drill time, in seconds.
three_quarter_sprintnumericThree-quarter-court sprint time, in seconds.
bench_presscharacterRepetitions of 185 pounds completed on the bench press.
spot_fifteen_corner_leftcharacterMade-attempted result (e.g. "3-5") from the 15-foot left corner spot-up shooting station at the combine.
spot_fifteen_break_leftcharacterMade-attempted result (e.g. "3-5") from the 15-foot left wing (break) spot-up shooting station at the combine.
spot_fifteen_top_keycharacterMade-attempted result (e.g. "3-5") from the 15-foot top of the key spot-up shooting station at the combine.
spot_fifteen_break_rightcharacterMade-attempted result (e.g. "3-5") from the 15-foot right wing (break) spot-up shooting station at the combine.
spot_fifteen_corner_rightcharacterMade-attempted result (e.g. "3-5") from the 15-foot right corner spot-up shooting station at the combine.
spot_college_corner_leftcharacterMade-attempted result (e.g. "3-5") from the college three-point left corner spot-up shooting station at the combine.
spot_college_break_leftcharacterMade-attempted result (e.g. "3-5") from the college three-point left wing (break) spot-up shooting station at the combine.
spot_college_top_keycharacterMade-attempted result (e.g. "3-5") from the college three-point top of the key spot-up shooting station at the combine.
spot_college_break_rightcharacterMade-attempted result (e.g. "3-5") from the college three-point right wing (break) spot-up shooting station at the combine.
spot_college_corner_rightcharacterMade-attempted result (e.g. "3-5") from the college three-point right corner spot-up shooting station at the combine.
spot_nba_corner_leftcharacterMade-attempted result (e.g. "3-5") from the NBA three-point left corner spot-up shooting station at the combine.
spot_nba_break_leftcharacterMade-attempted result (e.g. "3-5") from the NBA three-point left wing (break) spot-up shooting station at the combine.
spot_nba_top_keycharacterMade-attempted result (e.g. "3-5") from the NBA three-point top of the key spot-up shooting station at the combine.
spot_nba_break_rightcharacterMade-attempted result (e.g. "3-5") from the NBA three-point right wing (break) spot-up shooting station at the combine.
spot_nba_corner_rightcharacterMade-attempted result (e.g. "3-5") from the NBA three-point right corner spot-up shooting station at the combine.
off_drib_fifteen_break_leftcharacterMade-attempted result from the 15-foot left wing (break) off-the-dribble shooting station at the combine.
off_drib_fifteen_top_keycharacterMade-attempted result from the 15-foot top of the key off-the-dribble shooting station at the combine.
off_drib_fifteen_break_rightcharacterMade-attempted result from the 15-foot right wing (break) off-the-dribble shooting station at the combine.
off_drib_college_break_leftcharacterMade-attempted result from the college three-point left wing (break) off-the-dribble shooting station at the combine.
off_drib_college_top_keycharacterMade-attempted result from the college three-point top of the key off-the-dribble shooting station at the combine.
off_drib_college_break_rightcharacterMade-attempted result from the college three-point right wing (break) off-the-dribble shooting station at the combine.
on_move_fifteencharacterMade-attempted result from the 15-foot shooting-on-the-move station at the combine.
on_move_collegecharacterMade-attempted result from the college three-point shooting-on-the-move station at the combine.

return_parsed=False — the raw JSON Dict payload, unparsed.

Example​

nba_stats_draftcombinestats(league_id='00', season_all_time='2024-25')

Last validated n/a.