Skip to content

Turnovers

The turnovers section in the markings response contains details on each official turnover.

Sample Response

json
{
  "markings": {
    "turnovers": [
      {
        "attacking_positive_x": null,
        "defensive_team_id_nba": 1610612740,
        "event_pbp_descriptor": null,
        "event_pbp_id": 20,
        "event_pbp_qualifiers": null,
        "event_pbp_subtype": "badpass",
        "event_pbp_turnover_total": 1,
        "game_clock": 636,
        "game_clock_running": true,
        "game_id_nba": "0022500404",
        "pbp_event_id": 20,
        "period": 1,
        "player_id_nba": 1642948,
        "possession_team_id_nba": 1610612742,
        "shot_clock": 12,
        "shot_clock_running": true,
        "stealer_id_nba": 1642852,
        "turnover_he_frame": 8690,
        "turnover_id_ctg": "turnover_a2ec347932d326efe9d81bcebcf08390",
        "turnover_wall_clock": "2025-12-23T01:12:59.297+00:00"
      }
    ]
  }
}

Fields

Identifiers

game_id_nba

Type: string

NBA game ID


turnover_id_ctg

Type: string

CTG-generated unique turnover ID


player_id_nba

Type: integer

NBA player ID who committed the turnover


possession_team_id_nba

Type: integer

NBA team ID of the team that lost possession


defensive_team_id_nba

Type: integer

NBA team ID of the team that gained possession


stealer_id_nba

Type: integer

NBA player ID who recorded the steal. null if not a steal


Timing

period

Type: integer

Period when the turnover occurred


game_clock

Type: float

Game clock (seconds remaining) at the turnover


shot_clock

Type: float

Shot clock at the turnover. null if the shot clock is off


turnover_he_frame

Type: integer

Hawk-Eye frame of the turnover. null if there is no corresponding Hawk-Eye frame in the Hawk-Eye event data


turnover_wall_clock

Type: string

UTC timestamp corresponding to turnover_he_frame. null if there is no corresponding Hawk-Eye frame.


game_clock_running deprecated

Type: boolean

true if game clock was running

Deprecated

This field is unreliable and not particularly useful for analyzing turnover events. This field will be removed in a future version.


shot_clock_running deprecated

Type: boolean

true if shot clock was running

Deprecated

This field is unreliable and not particularly useful for analyzing turnover events. This field will be removed in a future version.


Court Context

attacking_positive_x deprecated

Type: boolean

true if offensive team was attacking positive X basket. null if unknown

Deprecated

This information is not particularly accurate and not useful for analyzing turnover events. This field will be removed in a future version.


Play-by-Play Data

pbp_event_id

Type: integer

Play-by-play event ID


event_pbp_id deprecated

Type: integer

Play-by-play event ID

Deprecated

Use pbp_event_id instead. This field will be removed in a future version.


event_pbp_subtype

Type: string

Turnover type (see values below)


event_pbp_descriptor deprecated

Type: string

Additional description (e.g., "lostball" for out of bounds). null if not provided

Deprecated

This information is not particularly useful for analyzing turnover events. This field will be removed in a future version.


event_pbp_qualifiers deprecated

Type: string

Qualifier information. null if not provided

Deprecated

This information is not useful for analyzing turnover events. This field will be removed in a future version.


event_pbp_turnover_total deprecated

Type: integer

Player's turnover total for the game at this point in the game

Deprecated

This data is already available in the official NBA play-by-play feed. This field will be removed in a future version.