Skip to content

Possession Touches

The possession_touches section in the markings response contains an object for each individual player "possession touch" during the game.

Overview

A possession touch represents a continuous period where a single player has control of the ball, including dribbling. So they can take their hands off the ball during a possession touch, as long as nobody else touches it in between.

In other data sources these can be referred to simply as "touches", however we use the name "possession touch" to distinguish it from data that would indicate whether a player is touching the ball or not.

Sample Response

json
{
  "markings": {
    "possession_touches": [
      {
        "chance_id_ctg": "chance_51bfc1fda2cc0deb125bee9988859667",
        "duration_sec": 0.78,
        "end_game_clock": 718.0,
        "end_he_frame": 167,
        "end_loc_x": -309.77,
        "end_loc_y": 84.92,
        "end_wall_clock": "2025-12-23T01:10:37.24+00:00",
        "game_id_nba": "0022500404",
        "is_inbounds": false,
        "num_dribbles": 0,
        "outcome_ctg_id": "pass_ddcb210634b503b4b98c8f95610863b1",
        "outcome_game_clock_seconds": 718,
        "outcome_pbp_event_id": null,
        "outcome_type": "pass",
        "period": 1,
        "player_id_nba": 1642948,
        "possession_touch_id_ctg": "possession_touch_0ffa15a0b96c63c29b1d6041f60fb589",
        "start_game_clock": 719.0,
        "start_he_frame": 120,
        "start_loc_x": -297.69,
        "start_loc_y": 61.2,
        "start_wall_clock": "2025-12-23T01:10:36.457+00:00",
        "team_id_nba": 1610612742
      }
    ]
  }
}

Fields

Identifiers

possession_touch_id_ctg

Type: string

CTG-generated unique ID for this possession touch


game_id_nba

Type: string

NBA game ID


team_id_nba

Type: integer

NBA team ID of the player's team


player_id_nba

Type: integer

NBA player ID of the player with the ball


chance_id_ctg

Type: string

CTG-generated chance ID that this possession touch belongs to. null if the touch could not be associated with a chance.


Timing

period

Type: integer

Period in which the possession touch occurred. Overtime would be period 5, double overtime period 6, etc.


start_he_frame

Type: integer

Hawk-Eye frame when the possession touch began.


end_he_frame

Type: integer

Hawk-Eye frame when the possession touch ended.


start_wall_clock

Type: string

UTC timestamp when the possession touch began.


end_wall_clock

Type: string

UTC timestamp when the possession touch ended.


start_game_clock

Type: float

Game clock (in seconds remaining in the period) when the possession touch began.


end_game_clock

Type: float

Game clock (in seconds remaining in the period) when the possession touch ended.


duration_sec

Type: float

Duration of the possession touch in seconds.


Context

is_inbounds

Type: boolean

true if this possession touch involves the player making an inbounds pass.


num_dribbles

Type: integer

Number of dribbles the player took during this possession touch. null if dribble count could not be determined.


start_loc_x

Type: float | Unit: inches

X coordinate of the player's centroid at the start of the touch. Positive X is toward one basket, negative X toward the other.


start_loc_y

Type: float | Unit: inches

Y coordinate of the player's centroid at the start of the touch. Positive Y is toward one sideline, negative Y toward the other.


end_loc_x

Type: float | Unit: inches

X coordinate of the player's centroid at the end of the touch.


end_loc_y

Type: float | Unit: inches

Y coordinate of the player's centroid at the end of the touch.


Outcome

These fields describe how the possession touch ended - what event concluded this player's time with the ball.

outcome_type

Type: string

The type of event that ended this possession touch. Possible values:

  • shot - Touch ended with a shot attempt
  • pass - Touch ended with a pass to another player
  • turnover - Touch ended with a turnover
  • foul - Touch ended due to a foul
  • violation - Touch ended due to a violation
  • stoppage - Touch ended due to a game stoppage
  • unknown - Could not determine how the touch ended

outcome_game_clock_seconds

Type: float

Game clock (in seconds remaining in the period) when the outcome event is recorded as occurring. null if the outcome type is unknown.


outcome_pbp_event_id

Type: integer

NBA Play-by-Play event ID associated with the outcome event. null if no PBP event is associated.


outcome_ctg_id

Type: string

CTG ID of the related event (e.g., shot ID, pass ID). null if not applicable or unknown.