Skip to content

Possessions

The possessions section in the markings response contains one object for each team possession in the game. A team possession starts when one team gets the ball and ends when they lose the ball or the period ends.

Overview

While a chance ends when the clock stops or a shot is taken, a possession does not end if the offense retains possession. A missed shot, offensive rebound, non-free-throw foul, inbound, and turnover can all be part of one possession even though they span multiple chances.

Possession counting stats are aggregated across all chances in the possession. Context fields such as possession_start_type, is_after_timeout, and start score come from the first chance in the possession. possession_outcome and possession_end_shot_clock come from the last chance.

Sample Response

json
{
  "markings": {
    "possessions": [
      {
        "defense_players": [
          1630180,
          1630529,
          1630530,
          1642847,
          1642852
        ],
        "defensive_team_id_nba": 1610612740,
        "end_game_clock": 708.0,
        "end_he_frame": 806,
        "end_wall_clock": "2025-12-23T01:10:47.889+00:00",
        "fg_dreb": 0,
        "fg_oreb": 0,
        "fga": 1,
        "fga_pts": 2,
        "fgm": 1,
        "fta": 0,
        "ftm": 0,
        "game_id_nba": "0022500404",
        "in_garbage_time": false,
        "is_after_timeout": true,
        "offense_players": [
          1629023,
          1642843,
          1642948,
          203076,
          1630230
        ],
        "offensive_team_id_nba": 1610612742,
        "period": 1,
        "points": 2,
        "possession_end_shot_clock": 13.0,
        "possession_id_ctg": "possession_640fb5737252cbe98b4f4a70dcee9d8f",
        "possession_outcome": "fg2m",
        "possession_start_type": "jump_ball",
        "start_game_clock": 720.0,
        "start_he_frame": 118,
        "start_score_away": 0,
        "start_score_def": 0,
        "start_score_home": 0,
        "start_score_off": 0,
        "start_wall_clock": "2025-12-23T01:10:36.423+00:00",
        "total_paint_touches": 0,
        "tov": 0
      }
    ]
  }
}

Fields

Identifiers

game_id_nba

Type: string

NBA game ID.


possession_id_ctg

Type: string

CTG-generated unique possession ID.


offensive_team_id_nba

Type: integer

NBA team ID of the offensive team.


defensive_team_id_nba

Type: integer

NBA team ID of the defensive team.


Players

offense_players

Type: array[integer]

NBA player IDs for players who appeared on offense in any chance within the possession. This can contain more than five players if substitutions or multiple chances occur within the possession.


defense_players

Type: array[integer]

NBA player IDs for players who appeared on defense in any chance within the possession. This can contain more than five players if substitutions or multiple chances occur within the possession.


Timing

period

Type: integer

Period in which the possession occurred. Overtime is period 5, double overtime is period 6, and so on.


start_he_frame

Type: integer

Hawk-Eye frame when the possession began.


end_he_frame

Type: integer

Hawk-Eye frame when the possession ended.


start_wall_clock

Type: string

UTC timestamp when the possession began.


end_wall_clock

Type: string

UTC timestamp when the possession ended.


start_game_clock

Type: float

Game clock when the possession began.


end_game_clock

Type: float

Game clock when the possession ended.


possession_end_shot_clock

Type: float | null

Shot clock at the end of the last chance in the possession. This is null if the shot clock is unavailable at the end of the possession.


Context

possession_start_type

Type: string

How the possession began, taken from the chance_start_type of the first chance in the possession. See the chances documentation for possible values.


possession_outcome

Type: string

How the possession ended, taken from the chance_outcome of the last chance in the possession. See the chances documentation for possible values.


is_after_timeout

Type: boolean

true if the first chance of the possession immediately follows a timeout.


in_garbage_time

Type: boolean

true if the first chance of the possession occurred during garbage time. See the chances documentation for the definition of garbage time.


Score

start_score_home

Type: integer

Score of the home team at the start of the possession.


start_score_away

Type: integer

Score of the away team at the start of the possession.


start_score_off

Type: integer

Score of the offensive team at the start of the possession.


start_score_def

Type: integer

Score of the defensive team at the start of the possession.


Possession Totals

points

Type: integer

Total points scored by the offensive team during the possession, including field goals and free throws.


fgm

Type: integer

Total field goals made across all chances in the possession.


fga

Type: integer

Total field goal attempts across all chances in the possession.


fga_pts

Type: integer

Total points scored on field goal attempts across all chances in the possession. Free throws are not included.


ftm

Type: integer

Total free throws made across all chances in the possession.


fta

Type: integer

Total free throw attempts across all chances in the possession.


tov

Type: integer

Total turnovers across all chances in the possession.


fg_dreb

Type: integer

Total defensive rebounds on field goal attempts across all chances in the possession.


fg_oreb

Type: integer

Total offensive rebounds on field goal attempts across all chances in the possession.


total_paint_touches

Type: integer

Total number of possession touches that had a paint touch.