nbadbArena Data Lab
EndpointsScouting ReportPlay By Play6 waypoints

Coverage Board

Play-by-Play Endpoints

Possession feed, action log, and win probability endpoints

Play-by-Play Endpoints

Three endpoints power the possession feed for a single game.

One-route key: Every endpoint on this page starts from game_id.

Pair this board with Box Scores for postgame totals and Other for rotations, officials, and summary tables.

Quick route

If you need...UseWhy it is the fastest route
the preferred modern action logPlayByPlayV3Best structured possession feed for newer games, with action taxonomy and shot coordinates
legacy-format historical event detailPlayByPlayV2Best fit for older games and the classic three-player event structure
score-state leverage at every eventWinProbabilityPBPAdds live win odds and score margin swing on top of the action sequence

Action log family

EndpointResult setsKey columns / signalsRoute cue
PlayByPlayV3PlayByPlayaction_number, clock, period, action_type, sub_type, description, shot_distance, shot_result, x_legacy, y_legacyPreferred starting point for games from 2021-22 onward
PlayByPlayV2PlayByPlay, AvailableVideoeventmsgtype, eventmsgactiontype, homedescription, visitordescription, player1_id, player2_id, player3_idUse for historical coverage or when you need the legacy event-code model
WinProbabilityPBPWinProbPBP, GameInfohome_pct, visitor_pct, home_pts, visitor_pts, home_score_margin, period, seconds_remainingLayer this in when “what happened” needs “how much it changed the game”

Route cues

  • Reach for V3 first when the game is modern enough to support the structured action taxonomy.
  • Keep V2 nearby for older historical games and any workflow built around legacy eventmsgtype codes.
  • Add WinProbabilityPBP when the possession log needs leverage, comeback, or collapse framing.

Possession feed codes (PlayByPlayV2)

Legacy eventmsgtype values from PlayByPlayV2 map to the following game events:

TypeDescription
1Made shot
2Missed shot
3Free throw
4Rebound
5Turnover
6Foul
7Violation
8Substitution
9Timeout
10Jump ball
12Period start
13Period end
Next possession

Next steps from play-by-play

Next stop

Close the loop with the final line

Pair this page with Box Scores when the event stream needs the team and player totals, ratings, and matchup summaries keyed by the same game_id.

Next stop

Add off-ball game context

Continue to Other for rotation stints, officiating crews, summary packets, and shot-map detail that complement the ordered action log.

Next stop

Turn one game into a season question

Use League Stats when a possession pattern needs league-wide comparison through standings, lineups, play types, or season matchup data.

Keep moving

Stay in the same possession

Keep the mental model warm with adjacent pages, section hubs, and search-friendly routes into the same topic cluster.

Section hub

On this page