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.