Skip to content

Challenges

The challenges section in the markings response contains official challenge events from the game.

Overview

Challenges are sourced from official instant-replay challenge outcome rows (instantreplay / challenge) in the play-by-play feed. When a challenge has both a timeout and a replay outcome, only the replay outcome row appears. For older feed shapes where a coach's challenge timeout has no paired replay outcome, the timeout row is included as a fallback with a null result. The data set includes the challenging team, the related play-by-play event ID, the game timing context, and whether the challenge was successful when the outcome is available.

Sample Response

json
{
  "markings": {
    "challenges": [
      {
        "challenge_he_frame": null,
        "challenge_id_ctg": "challenge_cf7409854bcce86b83d80a0e4f34eeb0",
        "challenge_result": "upheld",
        "challenge_wall_clock": null,
        "event_pbp_action_type": "instantreplay",
        "event_pbp_description": "Instant Replay4th Period (9:51 PM EST)",
        "event_pbp_descriptor": "support",
        "event_pbp_qualifiers": "null",
        "event_pbp_subtype": "challenge",
        "game_clock": 658,
        "game_id_nba": "0022500404",
        "pbp_event_id": 553,
        "period": 4,
        "player_id_nba": null,
        "possession_team_id_nba": 1610612740,
        "shot_clock": 24,
        "team_id_nba": 1610612742
      }
    ]
  }
}

Fields

Identifiers

game_id_nba

Type: string

NBA game ID


challenge_id_ctg

Type: string

CTG-generated unique challenge ID


team_id_nba

Type: integer

NBA team ID associated with the challenge. null if the official play-by-play feed does not provide a team.


player_id_nba

Type: integer

NBA player ID associated with the challenge. null when the challenge is team-level or the official play-by-play feed does not provide a player.


possession_team_id_nba

Type: integer

NBA team ID of the team with possession when the challenge occurred. null if possession is unavailable.


Timing

period

Type: integer

Period when the challenge occurred


game_clock

Type: float

Game clock (seconds remaining) when the challenge occurred. null if the official feed does not provide a clock.


shot_clock

Type: float

Shot clock when the challenge occurred. null if the shot clock is off or unavailable.


challenge_he_frame

Type: integer

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


challenge_wall_clock

Type: string

UTC timestamp for the challenge. null if the official feed does not provide a timestamp.


Play-by-Play Data

pbp_event_id

Type: integer

Play-by-play event ID for the challenge


event_pbp_action_type

Type: string

The action_type field from the official play-by-play feed. Usually instantreplay; may be timeout for older coach's challenge rows that do not have a paired replay outcome.


event_pbp_subtype

Type: string

The sub_type field from the official play-by-play feed. null if not provided.


event_pbp_descriptor

Type: string

The descriptor field from the official play-by-play feed. null if not provided.


event_pbp_qualifiers

Type: string

The qualifiers field from the official play-by-play feed. null if not provided.


event_pbp_description

Type: string

Official play-by-play description for the challenge. null if not provided.


challenge_result

Type: string

Challenge result inferred from the official play-by-play descriptor. null when the replay outcome is unavailable or the descriptor is missing or unrecognized.

Possible values:

  • overturned - The challenge was successful; the original call was overturned
  • upheld - The challenge was unsuccessful