Integration GuidesReference Docs
Coverage MatrixDocumentationChange LogLog InContact Us
Reference Docs

Push Game Clock

NBA Push Game Clock Provides a running game clock emitted continuously for live NBA games.

Syntax

https://api.sportradar.com/nba/{access_level}/stream/{language_code}/game_clock/subscribe

Parameters

ParameterDescription
access_levelDefines the access level of your API key

production, trial
language_code2-letter code for supported languages

en (English)

Optional Query String Parameters

By default, a Push feed will provide all data available for all in progress games. If needed, you can filter the data returned by including query strings.

Each query string parameter can be added with a preceding ampersand (&).

ParameterDescription
matchMatch id

Example: match=sd:match:76b2e680-7da7-461f-95ad-e7c34dbc4c56
statusGame status

inprogress, created

Example: status=inprogress


Code Samples

require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.sportradar.com/nba/trial/stream/en/game_clock/subscribe")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)
request["x-api-key"] = "{your_api_key}"  # Replace with your actual key

response = http.request(request)
puts response.read_body
import requests
import json

headers = {
    'x-api-key': 'your_api_key'  # Replace with your actual key
}

r = requests.get(
    "https://api.sportradar.com/nba/trial/stream/en/game_clock/subscribe",
    headers=headers,
    allow_redirects=False
)

redirect_url = r.headers['Location']
r = requests.get(redirect_url, stream=True, headers=headers)

for line in r.iter_lines():
    # filter out keep-alive new lines
    if line:
        decoded_line = line.decode('utf-8')
        print(json.loads(decoded_line))
curl -L -X GET 'https://api.sportradar.com/nba/trial/stream/en/game_clock/subscribe' \
  -H 'x-api-key: {your_api_key}'

Samples with Query String Params

require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.sportradar.com/nba/trial/stream/en/game_clock/subscribe?&status=inprogress&match=sd:match:76b2e680-7da7-461f-95ad-e7c34dbc4c56")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)
request["x-api-key"] = "{your_api_key}"  # Replace with your actual key

response = http.request(request)
puts response.read_body
import requests
import json

headers = {
    'x-api-key': 'your_api_key'  # Replace with your actual key
}

r = requests.get("https://api.sportradar.com/nba/trial/stream/en/game_clock/subscribe",
    params = {'status': 'inprogress', 'match': 'sd:match:673b459c-7506-4c11-9273-1b9502537f1d'},
    allow_redirects=False)

redirect_url = r.headers['Location']
r = requests.get(redirect_url, stream=True)

for line in r.iter_lines():
    # filter out keep-alive new lines
    if line:
        decoded_line = line.decode('utf-8')
        print(json.loads(decoded_line))
curl -L -X GET 'api.sportradar.com/nba/trial/stream/en/game_clock/subscribe?&status=inprogress&match=sd:match:76b2e680-7da7-461f-95ad-e7c34dbc4c56'
  -H 'x-api-key: {your_api_key}'


Response Samples

{
  "payload": {
    "game": {
      "id": "02e0b7b6-5dcf-4682-9fa7-255e19f6f28d",
      "status": "in-progress",
      "coverage": "full",
      "reference": "0012600067",
      "scheduled": "2026-10-04T23:00:00+00:00",
      "home": {
        "name": "Nuggets",
        "market": "Denver",
        "reference": "1610612743",
        "id": "583ed102-fb46-11e1-82cb-f4ce4684ea4c",
        "sr_id": "sr:team:3417"
      },
      "away": {
        "name": "Jazz",
        "market": "Utah",
        "reference": "1610612762",
        "id": "583ece50-fb46-11e1-82cb-f4ce4684ea4c",
        "sr_id": "sr:team:3434"
      },
      "sr_id": "sr:match:74501772"
    },
    "period": {
      "sequence": 3,
      "number": 3
    },
    "clocks": {
      "game": "18",
      "running": true,
      "shot": "00.00",
      "game_decimal": "18.70"
    }
  },
  "locale": "en",
  "metadata": {
    "match": "sd:match:02e0b7b6-5dcf-4682-9fa7-255e19f6f28d,sr:match:74501772",
    "league": "nba",
    "locale": "en",
    "status": "in-progress",
    "operation": "update",
    "version": "v7"
  }
}

Simulations

Simulations support for Push Game Clock is coming soon. In the meantime, see our Simulations documentation for how our replay service works, including Push simulations.




📘

Streaming Live Data

Learn how to use the Push Game Clock feed to stream live NBA game clock updates in our Push Feeds integration scenario.

Data Points

Game
AttributeParent ElementTypeDescription
coveragegameStringCoverage level of a game

full, extended_boxscore
idgameGUIDUnique ID of a game

ex. 02e0b7b6-5dcf-4682-9fa7-255e19f6f28d
referencegameStringLeague reference ID of a game

ex. 0012600067
sr_idgameGUIDUnique Sportradar ID of a game

ex. sr:match:74501772
statusgameStringThe status of a game

scheduled, created, inprogress, in-progress, halftime, complete, closed, cancelled, delayed, postponed, time-tbd, if-necessary, unnecessary

Please see our FAQ section for a list of game status definitions
scheduledgamedateTimeScheduled date and time of a game

ex. 2026-10-04T23:00:00+00:00
Teams
AttributeParent ElementTypeDescription
idgame - awayGUIDUnique ID of the away team

ex. 583ece50-fb46-11e1-82cb-f4ce4684ea4c
marketgame - awayStringMarket name of the away team

ex. Utah
namegame - awayStringAway team name

ex. Jazz
referencegame - awayStringLeague reference ID of the away team

ex. 1610612762
sr_idgame - awayGUIDUnique Sportradar ID of the away team

ex. sr:team:3434
idgame - homeGUIDUnique ID of the home team

ex. 583ed102-fb46-11e1-82cb-f4ce4684ea4c
marketgame - homeStringMarket name of the home team

ex. Denver
namegame - homeStringHome team name

ex. Nuggets
referencegame - homeStringLeague reference ID of the home team

ex. 1610612743
sr_idgame - homeGUIDUnique Sportradar ID of the home team

ex. sr:team:3417
Period
AttributeParent ElementTypeDescription
numberperiodIntegerNumber of a quarter
sequenceperiodIntegerSequential number of a quarter
Clock
AttributeParent ElementTypeDescription
gameclocksStringGame clock value in seconds

ex. 18
game_decimalclocksStringGame clock value with decimal precision

ex. 18.70
runningclocksBooleanSignifies whether the game clock is currently running when the message is sent. Unlike Push Clock, Push Game Clock emits messages continuously rather than only on game events, so this flag reflects live clock state.
shotclocksStringShot clock value

ex. 00.00
Metadata
AttributeParent ElementTypeDescription
leaguemetadataStringAlias of a league

ex. nba
localemetadataStringLanguage code

ex. en (English)
matchmetadataStringComma-separated list of game identifiers

ex. sd:match:02e0b7b6-5dcf-4682-9fa7-255e19f6f28d,sr:match:74501772
operationmetadataStringOperation of an update

update, delete
statusmetadataStringThe status of a game

Please see our FAQ section for a list of game status definitions
versionmetadataStringVersion of the API

ex. v7