Integration GuidesReference Docs
Coverage MatrixDocumentationChange LogLog InContact Us
Reference Docs

NBA G League FAQs

Frequently asked questions for NBA G League v8

Click on the categories below or browse questions on the right panel.

Categories

.


Coverage


How is each G League game covered?

Coverage information for the G League can be found here.



Integration


Are simulations available for this API?

Yes! You can replay past games as though they were live using our on-demand Simulations service.


What format are date fields presented in?

When we present date only values we present these in the ISO 8601 standard format.

ex: 2013-04-03

We use these for attributes that have date and no time (such as birthdate). For more information: https://en.wikipedia.org/wiki/ISO_8601


What format are the date/time fields presented in?

All of our Date/Time attributes are in UTC, presented in the ISO 8601 standard format.

ex: 2013-04-03T18:15:00+00:00

For more information: https://en.wikipedia.org/wiki/ISO_8601


How do I locate the TTL (Time to Live)/cache on an API endpoint?

The cache (in seconds) can be accessed in the returned header information on each RESTful API call, under cache-control.

ex. cache-control: max-age=1, public, s-maxage=1 or
cache-control: public, must-revalidate, max-age=120

The TTL may adjust when an event is live for some game-centric endpoints. This information is available for each endpoint on our developer portal.



Game & Series Statuses


What game statuses can I expect to see and what are their definitions?

  • scheduled - The game is scheduled to occur.
  • created – The game has been created and we have begun logging information.
  • inprogress – The game is in progress.
  • halftime - The game is currently at halftime.
  • complete – The game is over, but stat validation is not complete.
  • closed – The game is over and the stats have been validated.
  • cancelled – The game has been cancelled. No makeup game will be played as a result.
  • delayed – The start of the game is currently delayed or the game has gone from in progress to delayed for some reason.
  • postponed – The game has been postponed, to be made up at another day and time. Once the makeup game is announced, a new game and ID will be created and scheduled on the announced makeup date.
  • time-tbd – The game has been scheduled, but a time has yet to be announced.
  • if-necessary – The game will be scheduled if it is required.
  • unnecessary – The series game was scheduled to occur, but will not take place due to one team clinching the series early.

What series statuses can I expect to see and what are their definitions?

  • scheduled – The series is scheduled to occur.
  • inprogress – The series is in progress.
  • closed – The series is over.


Player Statuses


What player statuses can I expect to see?

  • ACT – The player is on the team’s active roster
  • SUS – The player is suspended
  • IR – The player is on injured reserve
  • TWO-WAY - The player is on a two-way contract
  • NWT – The player is no longer with the team
  • FA – Free Agent
  • RET – Retired
  • PROMOTED – The player has been promoted from the D-League
  • DUP – Duplicate

Why is a player missing a player.id in a game?

Player id is an optional attribute and may be absent for a period of time in a game.

In some instances (mostly preseason games) players will appear on a roster who are previously unmapped in Sportradar's database. In these instances, a player may be without an id for a period of time.

This could also occur in a regular season game, but will be resolved prior to game start.



Player Positions


What player positions can I expect to see?

  • NA
  • C
  • C-F
  • F
  • F-C
  • F-G
  • G
  • G-F

What player primary positions can I expect to see?

  • NA
  • C
  • PF
  • PG
  • SF
  • SG
<player id="d0c7135a-1aea-40cb-ba20-df656de71749" status="ACT" full_name="Anthony Edwards" 
  first_name="Anthony" last_name="Edwards" abbr_name="A.Edwards" height="76" weight="225" 
  position="G" primary_position="SG" 


Schedules

How do I pull in schedule data for future games in which teams are not yet known?

This API features a TBD team used for every entry in to-be-determined matchups. This virtual team will have its own unique ID specific to this API.

Find the TBD team in the Teams endpoint.

  • <team id="907dc4e5-6957-4d19-b7d4-b1b7003b91e6" name="TBD" alias="TBD" market="Team"/>

The matchups will appear as below in the Schedule endpoints.

<series id="0f81bb4d-1d0c-4a3b-82de-507534154095" title="NBA Finals - TBD vs TBD" round="4" start_date="2024-06-06" status="scheduled">
  <games>
  <game id="342f103b-0fd7-47ac-a84d-1391e3605e96" status="time-tbd" title="Game 1" coverage="full" scheduled="2024-06-06T17:00:00+00:00" neutral_site="false" track_on_court="true" home_team="907dc4e5-6957-4d19-b7d4-b1b7003b91e6" away_team="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
    <time_zones/>
    <home name="Team TBD" alias="TBD" id="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
      </home>
<away name="Team TBD" alias="TBD" id="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
  </away>
</game>
<game id="71d8d5fc-6836-43c1-85a0-61a828296a06" status="time-tbd" title="Game 2" coverage="full" scheduled="2024-06-09T17:00:00+00:00" neutral_site="false" track_on_court="true" home_team="907dc4e5-6957-4d19-b7d4-b1b7003b91e6" away_team="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
  <time_zones/>
  <home name="Team TBD" alias="TBD" id="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
    </home>
<away name="Team TBD" alias="TBD" id="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
  </away>
</game>
<game id="50b170b9-37e2-47d0-b517-e56ebb960cba" status="time-tbd" title="Game 3" coverage="full" scheduled="2024-06-12T17:00:00+00:00" neutral_site="false" track_on_court="true" home_team="907dc4e5-6957-4d19-b7d4-b1b7003b91e6" away_team="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
  <time_zones/>
  <home name="Team TBD" alias="TBD" id="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
    </home>
<away name="Team TBD" alias="TBD" id="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
  </away>
</game>
<game id="8e94445c-c223-4a49-a759-0b651e440b95" status="time-tbd" title="Game 4" coverage="full" scheduled="2024-06-14T17:00:00+00:00" neutral_site="false" track_on_court="true" home_team="907dc4e5-6957-4d19-b7d4-b1b7003b91e6" away_team="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
  <time_zones/>
  <home name="Team TBD" alias="TBD" id="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
    </home>
<away name="Team TBD" alias="TBD" id="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
  </away>
</game>
<game id="aaa3ddb3-dd1b-459e-a686-d2bfc4408881" status="if-necessary" title="Game 5 (if necessary)" coverage="full" scheduled="2024-06-17T17:00:00+00:00" neutral_site="false" track_on_court="true" home_team="907dc4e5-6957-4d19-b7d4-b1b7003b91e6" away_team="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
  <time_zones/>
  <home name="Team TBD" alias="TBD" id="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
    </home>
<away name="Team TBD" alias="TBD" id="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
  </away>
</game>
<game id="7c16f1ec-6629-4675-aaaa-2a31835862a6" status="if-necessary" title="Game 6 (if necessary)" coverage="full" scheduled="2024-06-20T17:00:00+00:00" neutral_site="false" track_on_court="true" home_team="907dc4e5-6957-4d19-b7d4-b1b7003b91e6" away_team="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
  <time_zones/>
  <home name="Team TBD" alias="TBD" id="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
    </home>
<away name="Team TBD" alias="TBD" id="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
  </away>
</game>
<game id="09129676-2320-4151-976d-713ea785d97b" status="if-necessary" title="Game 7 (if necessary)" coverage="full" scheduled="2024-06-23T17:00:00+00:00" neutral_site="false" track_on_court="true" home_team="907dc4e5-6957-4d19-b7d4-b1b7003b91e6" away_team="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
  <time_zones/>
  <home name="Team TBD" alias="TBD" id="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
    </home>
<away name="Team TBD" alias="TBD" id="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
  </away>
</game>
</games>
</series>

"series": [
  {
    "id": "0f81bb4d-1d0c-4a3b-82de-507534154095",
    "title": "NBA Finals - TBD vs TBD",
    "round": 4,
    "start_date": "2024-06-06",
    "status": "scheduled",
    "participants": [],
    "games": [
      {
        "id": "342f103b-0fd7-47ac-a84d-1391e3605e96",
        "status": "time-tbd",
        "title": "Game 1",
        "coverage": "full",
        "scheduled": "2024-06-06T17:00:00+00:00",
        "neutral_site": false,
        "track_on_court": true,
        "home": {
          "name": "Team TBD",
          "alias": "TBD",
          "id": "907dc4e5-6957-4d19-b7d4-b1b7003b91e6"
        },
        "away": {
          "name": "Team TBD",
          "alias": "TBD",
          "id": "907dc4e5-6957-4d19-b7d4-b1b7003b91e6"
        }
      },
      {
        "id": "71d8d5fc-6836-43c1-85a0-61a828296a06",
        "status": "time-tbd",
        "title": "Game 2",
        "coverage": "full",
        "scheduled": "2024-06-09T17:00:00+00:00",
        "neutral_site": false,
        "track_on_court": true,
        "home": {
          "name": "Team TBD",
          "alias": "TBD",
          "id": "907dc4e5-6957-4d19-b7d4-b1b7003b91e6"
        },
        "away": {
          "name": "Team TBD",
          "alias": "TBD",
          "id": "907dc4e5-6957-4d19-b7d4-b1b7003b91e6"
        }
      },
      {
        "id": "50b170b9-37e2-47d0-b517-e56ebb960cba",
        "status": "time-tbd",
        "title": "Game 3",
        "coverage": "full",
        "scheduled": "2024-06-12T17:00:00+00:00",
        "neutral_site": false,
        "track_on_court": true,
        "home": {
          "name": "Team TBD",
          "alias": "TBD",
          "id": "907dc4e5-6957-4d19-b7d4-b1b7003b91e6"
        },
        "away": {
          "name": "Team TBD",
          "alias": "TBD",
          "id": "907dc4e5-6957-4d19-b7d4-b1b7003b91e6"
        }
      },
      {
        "id": "8e94445c-c223-4a49-a759-0b651e440b95",
        "status": "time-tbd",
        "title": "Game 4",
        "coverage": "full",
        "scheduled": "2024-06-14T17:00:00+00:00",
        "neutral_site": false,
        "track_on_court": true,
        "home": {
          "name": "Team TBD",
          "alias": "TBD",
          "id": "907dc4e5-6957-4d19-b7d4-b1b7003b91e6"
        },
        "away": {
          "name": "Team TBD",
          "alias": "TBD",
          "id": "907dc4e5-6957-4d19-b7d4-b1b7003b91e6"
        }
      },
      {
        "id": "aaa3ddb3-dd1b-459e-a686-d2bfc4408881",
        "status": "if-necessary",
        "title": "Game 5 (if necessary)",
        "coverage": "full",
        "scheduled": "2024-06-17T17:00:00+00:00",
        "neutral_site": false,
        "track_on_court": true,
        "home": {
          "name": "Team TBD",
          "alias": "TBD",
          "id": "907dc4e5-6957-4d19-b7d4-b1b7003b91e6"
        },
        "away": {
          "name": "Team TBD",
          "alias": "TBD",
          "id": "907dc4e5-6957-4d19-b7d4-b1b7003b91e6"
        }
      },
      {
        "id": "7c16f1ec-6629-4675-aaaa-2a31835862a6",
        "status": "if-necessary",
        "title": "Game 6 (if necessary)",
        "coverage": "full",
        "scheduled": "2024-06-20T17:00:00+00:00",
        "neutral_site": false,
        "track_on_court": true,
        "home": {
          "name": "Team TBD",
          "alias": "TBD",
          "id": "907dc4e5-6957-4d19-b7d4-b1b7003b91e6"
        },
        "away": {
          "name": "Team TBD",
          "alias": "TBD",
          "id": "907dc4e5-6957-4d19-b7d4-b1b7003b91e6"
        }
      },
      {
        "id": "09129676-2320-4151-976d-713ea785d97b",
        "status": "if-necessary",
        "title": "Game 7 (if necessary)",
        "coverage": "full",
        "scheduled": "2024-06-23T17:00:00+00:00",
        "neutral_site": false,
        "track_on_court": true,
        "home": {
          "name": "Team TBD",
          "alias": "TBD",
          "id": "907dc4e5-6957-4d19-b7d4-b1b7003b91e6"
        },
        "away": {
          "name": "Team TBD",
          "alias": "TBD",
          "id": "907dc4e5-6957-4d19-b7d4-b1b7003b91e6"
        }
      }
    ]
  },

Make note of the status attribute to determine whether the time of the game is known. A status of time-tbd indicates the game has been scheduled, but a time has yet to be announced. A status of scheduled indicates the game time is known.


Injuries


What player injury statuses can I expect to see?

  • Unknown
  • Day to Day
  • Out
  • Out for Season
  • Out Indefinitely
<injuries>
    <injury id="1805a44b-1b17-42e7-a26a-5270882d4248" comment="McLaughlin did not play in Wednesday's (Nov.8) game against New Orleans." 
    desc="Knee" status="Day To Day" start_date="2023-11-07" update_date="2023-11-08"/>
</injuries>
"injuries": [
  {
    "id": "1805a44b-1b17-42e7-a26a-5270882d4248",
    "comment": "McLaughlin did not play in Wednesday's (Nov.8) game against New Orleans.",
    "desc": "Knee",
    "status": "Day To Day",
    "start_date": "2023-11-07",
    "update_date": "2023-11-08"
  }
]


What are the possible values for playernot_playing_reason?

  • DNP - Coaches Decision
  • DNP - Injury/Illness
  • DNP - Personal
  • DNP - Rest
  • DNP - Trade Pending
  • DNP - League Suspension
  • DNP - Team Suspension
  • DNP - Return to Competition Reconditioning
  • DNP - Ineligible to Play
  • DNP - Health and Safety Protocols
  • DND - Coaches Decision
  • DND - Injury/Illness
  • DND - Personal
  • DND - Rest
  • DND - Trade Pending
  • DND - League Suspension
  • DND - Team Suspension
  • DND - Return to Competition Reconditioning
  • DND - Ineligible to Play
  • DND - Health and Safety Protocols
  • NWT - Coaches Decision
  • NWT - Injury/Illness
  • NWT - Personal
  • NWT - Rest
  • NWT - Trade Pending
  • NWT - League Suspension
  • NWT - Team Suspension
  • NWT - Return to Competition Reconditioning
  • NWT - Ineligible to Play
  • NWT - Health and Safety Protocols
  • NWT - Not With Team
  • Inactive - Injury/Illness
  • Inactive - Personal
  • Inactive - Rest
  • Inactive - Suspended
  • Inactive - Trade Pending
  • Inactive - Coaches Decision
  • Inactive - G League Team
  • Inactive - G League - On Assignment
  • Inactive - G League - Two-Way
  • Inactive - Not With Team
  • Inactive - Team Suspension
  • Inactive - League Suspension
  • Inactive - Health and Safety Protocols
  • Inactive - Return to Competition Reconditioning
  • Inactive - NWT Return to Competition Reconditioning
  • Inactive - Ineligible to Play
<player full_name="Trey Murphy III" jersey_number="25" id="51b62fe8-1e5c-4c65-8ad3-2ad06e749b70" 
  first_name="Trey" last_name="Murphy III" position="G-F" primary_position="SF" name_suffix="III" 
  not_playing_reason="Inactive - Injury/Illness" not_playing_description="Left Knee; Partial Meniscectomy " 
  on_court="false" sr_id="sr:player:2196318" reference="1630530">
{
    "full_name": "Wendell Moore Jr.",
    "jersey_number": "7",
    "id": "e23521cd-8e92-4701-b9e7-dc4acd21dfec",
    "first_name": "Wendell",
    "last_name": "Moore Jr.",
    "position": "G",
    "primary_position": "SG",
    "name_suffix": "Jr.",
    "not_playing_reason": "Inactive - G League - On Assignment",
    "on_court": false,
    "sr_id": "sr:player:1797216",
    "reference": "1631111",
    "statistics": {}
},

When do DND (Did Not Dress) and DNP (Did Not Play) populate?

  • DND status populates when the initial game rosters are set
  • DNP status populates after the game is complete
            <player full_name="Devonte' Graham" jersey_number="4" id="604571ce-5be8-4938-b8fb-945ff8d15f8d" 
                    first_name="Devonte'" last_name="Graham" position="G" primary_position="PG" active="true" 
                    not_playing_reason="DNP – Coach's Decision" on_court="false" sr_id="sr:player:1497683" 
                    reference="1628984">
{
  "full_name": "Devonte' Graham",
  "jersey_number": "4",
  "id": "604571ce-5be8-4938-b8fb-945ff8d15f8d",
  "first_name": "Devonte'",
  "last_name": "Graham",
  "position": "G",
  "primary_position": "PG",
  "active": true,
  "not_playing_reason": "DNP – Coach's Decision",
  "on_court": false,
  "sr_id": "sr:player:1497683",
  "reference": "1628984",
}


Transactions


What are the valid transaction_code and transaction_type values?

  • ACT - Activated
  • MIN - Assigned to Minors
  • CL - Claimed
  • CEXP - Contract Expired
  • CEXT - Contract Extension
  • DEC - Deceased
  • FA - Declared Free Agency
  • DRA - Drafted
  • SUS - League Suspension
  • ABS - Leave of Absence
  • NWT - Not With Team
  • TRAN - Other Transaction
  • INACT - Placed on Inactive List
  • RSGN - Re-Signed
  • REC - Recalled from Minors
  • RSUS - Reinstated from Suspension
  • REL - Released
  • RET - Retired
  • EDRA - Selected in Expansion Draft
  • SGN - Signed
  • 10D - Signed to 10-Day Contract
  • 10D2 - Signed to Second 10-Day Contract
  • TSUS - Team Suspension
  • TRD - Traded
  • WA - Waived


Shot Types


What shot type descriptions can I expect to see?

Jump Shot (This is the only shot type for 3-point attempts)

  • bank
  • driving
  • driving bank
  • driving floating
  • driving floating bank
  • turnaround
  • turnaround bank
  • turnaround fadeaway
  • turnaround fadeaway bank
  • floating
  • fadeaway
  • fadeaway bank
  • stepback
  • stepback bank
  • pullup
  • pullup bank
  • running
  • running pullup

Layup

  • alley-oop
  • cutting
  • cutting finger roll
  • driving
  • driving reverse
  • driving finger roll
  • finger roll
  • putback
  • reverse
  • running
  • running reverse
  • running finger roll
  • running alley-oop
  • tip

Dunk

  • alley-oop
  • tip
  • driving
  • driving reverse
  • putback
  • running
  • reverse
  • running reverse
  • running alley-oop
  • cutting

Tip Shot

Hook

  • bank
  • driving
  • driving bank
  • turnaround
  • turnaround bank


Event Types


What are the valid events types tracked in the Play-by-Play endpoint?

  • challengereview - Instant replay (challenge: outcome)
  • challengetimeout - team name challenge timeout
  • clearpathfoul - charged_to clear path foul (drawn_by draws the foul)
  • deadball - given_to rebound (deadball)
  • defaultviolation - charged_to violation
  • defensivegoaltending - charged_to defensive goaltending violation
  • delay - charged_to delay of game violation
  • doublelane - charged_to double lane violation
  • ejection - given_to ejected from the game (ejection_type)
  • endperiod - End of nth period/half
  • flagrantone - charged_to flagrant 1 (drawn_by draws the foul)
  • flagranttwo - charged_to flagrant 2 (drawn_by draws the foul)
  • freethrowmade - taken_by makes free_throw_type free throw attempt
  • freethrowmiss - taken_by misses free_throw_type free throw attempt (charged_to lane_violation)
  • heave - team misses heave shot
  • jumpball - Jump ball reason. possessor vs challenger (possession gains possession)
  • jumpballviolation - charged_to jump ball violation
  • kickball - charged_to kicked ball violation
  • lane - charged_to lane violation
  • lineupchange - team_name lineup change (players)
  • offensivefoul - charged_to offensive foul (foul_type_desc) (drawn_by draws the foul)
  • officialtimeout - Official timeout
  • openinbound - Open inbound team_name
  • opentip - home vs away (possession gains possession)
  • personalfoul - charged_to personal foul (foul_type_desc) (drawn_by draws the foul)
  • possession - possession gain possession
  • rebound - given_to offensive/defensive rebound
  • requestreview - Instant replay (request)
  • review - Play review (reason, outcome)
  • shootingfoul - charged_to shooting foul (drawn_by draws the foul)
  • stoppage - Stoppage (reason)
  • teamtimeout - team_name duration second timeout
  • technicalfoul - charged_to technical foul (foul_type_desc)
  • technicalfoulnonunsportsmanlike - charged_to technical foul (foul_type_desc)
  • threepointmade - taken_by makes three point shot_type_desc shot_type (assisted_by assists)
  • threepointmiss - taken_by misses three point shot_type_desc shot_type or blocked_by blocks taken_by three point shot_type_desc shot_type
  • turnover - charged_to turnover (turnovertype_desc)
  • tvtimeout - TV Timeout
  • twopointmade - taken_by makes two point shot_type_desc shot_type (assisted_by assists)
  • twopointmiss - taken_by misses two point shot_type_desc shot_type or blocked_by blocks taken_by two point shot_type_desc shot_type
<event id="b2979d2c-f1e5-4871-bd19-570b14102491" clock="11:42" updated="2023-10-25T01:55:30Z" 
wall_clock="2023-10-24T23:36:13Z" sequence="1698190573000" home_points="0" away_points="2" 
clock_decimal="11:42" number="7" event_type="twopointmade">
    <description>Anthony Davis makes two point dunk (D'Angelo Russell assists)</description>  
<event id="fa7ebeaf-b05f-47f1-a7ce-f5976048d07c" clock="9:16" updated="2023-10-25T01:55:32Z" 
wall_clock="2023-10-24T23:39:22Z" sequence="1698190762600" home_points="9" away_points="10" 
clock_decimal="9:16" number="30" event_type="freethrowmiss" attempt="1 of 1">
  <description>Nikola Jokic misses regular free throw 1 of 1</description>
<event id="3a67d3c2-3dfb-4c34-bf77-6f5db86c548e" clock="3:52" updated="2023-10-25T01:55:50Z" 
wall_clock="2023-10-25T00:22:22Z" sequence="1698193342400" home_points="54" away_points="42" 
clock_decimal="3:52" number="268" event_type="personalfoul">
    <description>Rui Hachimura personal foul (Loose ball) (Nikola Jokic draws the foul)</description>


Standings


What are the valid playoff statuses and their definitions?

  • conference – The team has clinched the best record home court advantage for the playoffs
  • division – The team has clinched the division
  • eliminated – The team has been eliminated from playoff contention
  • playoff_berth – The team has clinched a playoff berth
  • play_in_berth – The team has clinched at least the play-in game


Court Dimensions


What is the scale of the X Y coordinates?

The court we use is 1128 by 600. The scale is in inches.


What x/y vertices define action areas in the x/y coordinate graph?

A list of areas is included below. Note that these vertices are for the left side of the court. For the right side, we use the following calculation, where length=1128 and width=600:

  • right-court-point = (length - x, width - y)
  • left_basket=[63, 300]
  • right_basket=[1065, 300]

Areas:

  • underbasket: [ 48, 252 ], [ 77, 258 ], [ 111, 300 ], [ 77, 342 ], [ 48, 348 ]
  • inthepaint: [ 0, 204 ], [ 228, 204 ], [ 228, 396 ], [ 0, 396 ]
  • insiderightwing: [ 0, 36 ], [ 115, 36 ], [ 77, 204 ], [ 0, 204 ]
  • insideright: [ 115, 36 ], [ 225, 87 ], [ 294, 161 ], [ 225, 204 ], [ 77, 204 ]
  • insidecenter: [ 225, 204 ], [ 294, 161 ], [ 324, 218 ], [ 337, 300 ], [ 324, 382 ], [ 294, 439 ], [ 225, 396 ]
  • insideleft: [ 115, 564 ], [ 225, 513 ], [ 294, 439 ], [ 225, 396 ], [ 77, 396 ]
  • insideleftwing: [ 0, 564 ], [ 115, 564 ], [ 77, 396 ], [ 0, 396 ]
  • outsiderightwing: [ 0, 0 ], [ 122, 0 ], [ 115, 36 ], [ 0, 36 ]
  • outsideright: [ 122, 0 ], [ 492, 0 ], [ 492, 69 ], [ 324, 218 ], [ 294, 161 ], [ 225, 87 ], [ 115, 36 ]
  • outsidecenter: [ 324, 216 ], [ 492, 69 ], [ 492, 531 ], [ 324, 382 ], [ 337, 300 ]
  • outsideleft: [ 122, 600 ], [ 492, 600 ], [ 492, 531 ], [ 324, 382 ], [ 294, 439 ], [ 225, 513 ], [ 115, 564 ]
  • outsideleftwing: [ 0, 600 ], [ 122, 600 ], [ 115, 564 ], [ 0, 564 ]
  • backcourt: [ 492, 0 ], [ 564, 0 ], [ 564, 600 ], [ 492, 600 ]

Why does the team_basket attribution in the Play-by-Play endpoint not match the basket orientation (left vs. right) in the broadcast or game tracking?

Our team_basket attribution is set to match the orientation of the local television broadcast, which is on the opposite side of the scorer's table. The team_basket attribution may not match the orientation used by the particular broadcast or game tracker that you are viewing.

If you want to provide a perspective from the scorer's table, you will have to map the coordinates so that the coordinates attributed to left side of the court are attributed to the right side of the court on your end (and vice versa).



Play-by-Play Types


What are the valid turnover type descriptions I can expect to see?

  • Traveling

  • Bad Pass

  • Lost Ball

  • Carrying

  • Palming

  • Out of Bounds

    • Lost Ball
    • Step
    • Bad Pass
  • Double Dribble

  • Offensive Goaltending

  • 3-second violation

  • 5-second violation

  • 8-second violation

  • 10-second violation

  • Back Court Violation

  • Shot Clock Violation

  • Lane Violation

  • Illegal Assist

  • Illegal Screen

  • Turnover

  • Too Many Players

  • Excess Timeout

  • Basket from Below

  • Swinging Elbows

  • Offensive Foul

  • Punched Ball

  • Opposite Basket

  • Jump Ball Violation

  • Inbound

  • Discontinue Dribble

  • 5-second Violation Inbound

  • Kicked ball Violation

  • 5-second Violation Back to the Basket


<event id="5f7be1b5-b4a2-4da9-a0d7-053f24dc8345" clock="2:14" updated="2023-10-25T01:55:52Z" 
wall_clock="2023-10-25T00:25:28Z" sequence="1698193528300" home_points="58" away_points="48" 
clock_decimal="2:14" number="289" event_type="turnover" turnover_type="Bad Pass">
    <description>Austin Reaves turnover (bad pass) (Michael Porter Jr. steals)</description>
{
    "id": "f359da78-1de6-493d-a868-a1fa9d084edd",
    "clock": "8:36",
    "updated": "2023-10-25T01:55:59Z",
    "description": "Nuggets turnover (shot clock violation)",
    "wall_clock": "2023-10-25T00:58:14Z",
    "sequence": 1698195494100,
    "home_points": 70,
    "away_points": 62,
    "clock_decimal": "8:36",
    "number": 372,
    "event_type": "turnover",
    "turnover_type": "Shot Clock Violation",
    "qualifiers": [
        {
            "qualifier": "team"
        }
    ],

What are the valid stoppage reasons I can expect to see?

  • Out of Bounds
  • Equipment Malfunction
  • Blood Rule
  • Court Cleanup
  • Injury
  • Other
{
    "id": "c4febe02-deb8-4855-867e-ee91e1d26147",
    "clock": "00:09",
    "updated": "2023-10-25T01:56:08Z",
    "description": "Stoppage (Out of bounds)",
    "wall_clock": "2023-10-25T01:17:27Z",
    "sequence": 1698196647900,
    "home_points": 87,
    "away_points": 80,
    "clock_decimal": "00:09.80",
    "number": 486,
    "event_type": "stoppage",
    "on_court": {
        "home": {
            "name": "Nuggets",

What are the valid jump ball reasons I can expect to see?

  • Lodged Ball
  • Held Ball
  • Double Violation
  • Unclear Pass
  • Double Foul

What are the valid free throw types I can expect to see?

  • Regular
  • Technical
  • Flagrant
  • Clear Path
<freethrow made="true" free_throw_type="regular" points="1">

What are the valid qualifier names?

  • 2ndchance
  • fastbreak
  • fromturnover
  • defensivegoaltending
  • pointsinthepaint
  • fastbreak
  • fromturnover
  • team
  • deadball
  • 1freethrow
  • 2freethrow
  • mandatory
<event id="bab1f014-4aa0-43d9-a6ca-ae52620b4165" clock="2:24" updated="2023-11-09T02:33:19Z" 
wall_clock="2023-11-09T01:00:33Z" sequence="1699491633100" home_points="55" away_points="51" 
clock_decimal="2:24" number="295" event_type="rebound">
    <description>Pacers offensive rebound</description>
    <qualifiers>
        <qualifier name="deadball"/>
        <qualifier name="team"/>
    </qualifiers>

What are the possible values for event category used in the Push Events feed?

  • freethrow
  • freethrow,score
  • foul
  • foul,flagrant
  • foul,warning
  • lineupchange
  • period,stoppage
  • period,stoppage,possession
  • possession
  • shot
  • shot,score
  • stoppage
  • timeout,stoppage
  • turnover
  • violation
"locale":"en",
"metadata":{
  "league":"NBA",
  "match":"sd:match:d8539eb6-3e27-40c8-906f-9cd1736321d8",
  "status":"inprogress",
  "team":"sd:team:583ecefd-fb46-11e1-82cb-f4ce4684ea4c,sr:team:3410",
  "players":"sd:player:68b7aac9-02fd-4bd8-b10c-6702d2c5eb98,sd:player:ffa9a64f-d624-4033-bd23-59dcfd805175,sd:player:c7a6b9c5-c600-49d9-b7be-e2b12b464e40,sd:player:c179fb5c-9845-4e37-aef7-6e00d97548eb,sd:player:65700e81-3aa0-49a9-8a94-004f2cfb64e5,sd:player:266cd359-f378-45c6-957e-6e21378e5219,sd:player:906578a8-c01e-4799-a972-2b47e02108b9,sd:player:1c9a1c2e-3e3b-439e-8d72-0b41b17e4ba9,sd:player:c978afe7-cf22-45fc-8d0f-da8f867eb5ee,sd:player:931f7ae2-4ce4-49e6-a3ad-e24790469fec",
  "event_type":"threepointmade",
  "event_category":"shot,score",
  "locale":"en",
  "operation":"update",
  "version":"v7"
}

What are the possible values for statistics type used in the Push Events feed?

  • fieldgoal
  • assist
  • block
  • attemptblocked
  • rebound
  • freethrow
  • turnover
  • steal
  • personalfoul
  • flagrantfoul
  • technicalfoul
  • ejection
  • fouldrawn
  • offensivefoul


Foul Types


What are the valid foul type descriptions I can expect to see?

  • Charge
  • Off the Ball
  • Block
  • Take
  • Double
  • Shooting
  • Clear Path
  • Loose Ball
  • Blocking
  • Player Control
  • Shooting block
  • Elbowing
  • Punching
  • Flagrant One
  • Flagrant Two
  • Away from Play
  • Unsportsmanlike Conduct
  • Rim Hanging
  • Delay of Game
  • Taunting
  • Indirect
  • Excess Timeout
  • Too Many Players
  • Inbound
  • Defensive Three Second
  • Flopping

What are the possible Unsportsmanlike and Non-Unsportsmanlike technical foul descriptions?

Non-Unsportsmanlike (Player):

  • Non-unsportsmanlike
  • Rim Hanging
  • Defensive 3 seconds
  • Flopping

Non-Unsportsmanlike (Team):

  • Delay
  • Indirect
  • Excess Timeout
  • Too many players
  • Bench
  • Team

Unsportsmanlike (Player):

  • Null (empty)
  • Double
  • Taunting

What ejection types can I expect to see?

  • Technical
  • Second Technical
  • Second Flagrant Type 1
  • Flagrant Type 2
  • Other


Splits


What types of splits do you provide?

Our splits are broken down into the following categories based on feed endpoint:

Game:

  • home
  • loss
  • opponent
  • over_500
  • road
  • under_500
  • venue
  • win

Hierarchy:

  • conference
  • division

In-game>:

  • higher_fg_pct
  • less_personal_fouls
  • less_rebounds
  • less_turnovers
  • lower_fg_pct
  • more_personal_fouls
  • more_rebounds
  • more_turnovers
  • over_100_against
  • over_100_for
  • same_personal_fouls
  • same_rebounds
  • same_turnovers
  • under_100_against
  • under_100_for

Schedule:

  • days_of_rest
  • day_of_week
  • last_5
  • last_10
  • month
  • week


Failover


Are there cases when not all game data is available?

Yes, in cases when Sportradar is unable to receive data from the venue, Sportradar's in-house operators will take over coverage of the game. In these cases, the following data points will not be available or will not update during the game.

  • Defensive Points per Possession
  • Defensive Rating
  • Defensive Rebounds Percentage
  • Fast Break Attempts
  • Fast Break Made
  • Fast Break Percentage
  • Minus
  • Offensive Points per Possession
  • Offensive Rating
  • Offensive Rebounds Percentage
  • Opponent Possessions
  • Plus
  • Rebounds Percentage
  • Second Chance Attempts
  • Second Chance Made
  • Second Chance Percentage
  • Team Defensive Rebounds
  • Team Offensive Rebounds
  • Time Spent Leading
  • Turnovers Percentage

After the game, when on-venue data can be received again, these fields will be updated. See here for more info.



Scoring


When are scores added to the schedule feeds?

Final scores are added to the schedule feeds when the game status changes to complete.



Efficiency Formulas


What formulas are used to calculate efficiency and efficiency game score?

Here are the formulas we use:

Efficiency: (Points + Rebounds + Assists + Steals + Blocks − Missed Field Goal Attempts − Missed Free Throw Attempts - Turnovers)

Efficiency Game Score: (Points) + (0.4_Field Goals Made) - (0.7_Field Goals Attempted) - (0.4_Free Throws Missed) + (0.7_Offensive Rebounds) + (0.3_Defensive Rebounds) + (Steals) + (0.7_Assists) + (0.7_Blocks) – (0.4_Personal Fouls) – (Turnovers)

Note: For this team efficiency calculations, statistics attributed to the team rather than a player are not counted (i.e. team rebounds, team turnovers, team fouls, etc.).




🙋

More questions?

Reach out to [email protected] for further assistance.