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
| Parameter | Description |
|---|---|
access_level | Defines the access level of your API keyproduction, trial |
language_code | 2-letter code for supported languagesen (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 (&).
| Parameter | Description |
|---|---|
match | Match id Example: match=sd:match:76b2e680-7da7-461f-95ad-e7c34dbc4c56 |
status | Game statusinprogress, 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_bodyimport 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_bodyimport 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 DataLearn how to use the Push Game Clock feed to stream live NBA game clock updates in our Push Feeds integration scenario.
Data Points
Game
| Attribute | Parent Element | Type | Description |
|---|---|---|---|
coverage | game | String | Coverage level of a gamefull, extended_boxscore |
id | game | GUID | Unique ID of a game ex. 02e0b7b6-5dcf-4682-9fa7-255e19f6f28d |
reference | game | String | League reference ID of a game ex. 0012600067 |
sr_id | game | GUID | Unique Sportradar ID of a game ex. sr:match:74501772 |
status | game | String | The status of a gamescheduled, created, inprogress, in-progress, halftime, complete, closed, cancelled, delayed, postponed, time-tbd, if-necessary, unnecessaryPlease see our FAQ section for a list of game status definitions |
scheduled | game | dateTime | Scheduled date and time of a game ex. 2026-10-04T23:00:00+00:00 |
Teams
| Attribute | Parent Element | Type | Description |
|---|---|---|---|
id | game - away | GUID | Unique ID of the away team ex. 583ece50-fb46-11e1-82cb-f4ce4684ea4c |
market | game - away | String | Market name of the away team ex. Utah |
name | game - away | String | Away team name ex. Jazz |
reference | game - away | String | League reference ID of the away team ex. 1610612762 |
sr_id | game - away | GUID | Unique Sportradar ID of the away team ex. sr:team:3434 |
id | game - home | GUID | Unique ID of the home team ex. 583ed102-fb46-11e1-82cb-f4ce4684ea4c |
market | game - home | String | Market name of the home team ex. Denver |
name | game - home | String | Home team name ex. Nuggets |
reference | game - home | String | League reference ID of the home team ex. 1610612743 |
sr_id | game - home | GUID | Unique Sportradar ID of the home team ex. sr:team:3417 |
Period
| Attribute | Parent Element | Type | Description |
|---|---|---|---|
number | period | Integer | Number of a quarter |
sequence | period | Integer | Sequential number of a quarter |
Clock
| Attribute | Parent Element | Type | Description |
|---|---|---|---|
game | clocks | String | Game clock value in seconds ex. 18 |
game_decimal | clocks | String | Game clock value with decimal precision ex. 18.70 |
running | clocks | Boolean | Signifies 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. |
shot | clocks | String | Shot clock value ex. 00.00 |
Metadata
| Attribute | Parent Element | Type | Description |
|---|---|---|---|
league | metadata | String | Alias of a league ex. nba |
locale | metadata | String | Language code ex. en (English) |
match | metadata | String | Comma-separated list of game identifiers ex. sd:match:02e0b7b6-5dcf-4682-9fa7-255e19f6f28d,sr:match:74501772 |
operation | metadata | String | Operation of an updateupdate, delete |
status | metadata | String | The status of a game Please see our FAQ section for a list of game status definitions |
version | metadata | String | Version of the API ex. v7 |
