Integration GuidesReference Docs
Coverage MatrixDocumentationChange LogLog InContact Us
Reference Docs

Push Events

This endpoint retrieves real-time event updates for all live matches.

Syntax

https://api.sportradar.com/basketball/{access_level}/stream/events/subscribe?api_key={your_api_key}

Parameters

ParameterDescription
access_levelDefines the access level of your API key

production, trial
your_api_keyYour API key

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.

Optional query string parameters must be added after your API key with an ampersand (&). If you are filtering for more than one result, separate the results with a comma (,) and no spaces.

URL ParametersDescription
channelChannel type

Example: channel=basketball
competition_idCompetition id

Example: competition_id=sr:competition:27230
event_idEvent type

Example: event_id=score_change
formatFormat type

Example: format=json
season_idSeason id

Example: season_id=sr:season:59654
sport_event_idSport event id

Example: sport_event_id=sr:sport_event:17582523
sport_idSport id

Example: sport_id=sr:sport:22


Code Samples

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

url = URI("https://api.sportradar.com/basketball/trial/stream/events/subscribe?api_key={your_api_key}")

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)

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

r = requests.get("https://api.sportradar.com/basketball/trial/stream/events/subscribe",
    params = {'api_key': 'your_api_key'},
    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 GET 'api.sportradar.com/basketball/trial/stream/events/subscribe?api_key={your_api_key}'

Samples with Query String Params

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

url = URI("https://api.sportradar.com/basketball/trial/stream/events/subscribe?api_key={your_api_key}&format=json&sport_event_id=sr:sport_event_id:17582523")

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)

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

r = requests.get("https://api.sportradar.com/basketball/trial/stream/events/subscribe",
    params = {'api_key': 'your_api_key', 'format': 'json', 'sr:sport_event_id:17582523': 'test_this_thing'},
    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 GET 'https://api.sportradar.com/basketball/trial/stream/events/subscribe?api_key={your_api_key}&format=json&sport_event_id=sr:sport_event_id:17582523'


Response Sample

The above commands return json like this.



Data Points

Metadata:
AttributeParent ElementTypeDescription
channelmetadataStringSport of the stream connection
ex. basketball
competition_idmetadataStringUnique Id of a competition
ex. sr:competition:19980
event_idmetadataStringType of timeline event. Reference enum_event_type in our Global Basketball OpenAPI Spec for a complete list of event types
ex. match_started, turnover, won_jump_ball
formatmetadataStringFormat type of the response
json, xml
season_idmetadataStringUnique Id of a season
ex. sr:season:106289
sport_event_idmetadataStringUnique Id of a sport event
ex. sr:sport_event_id:49324739
sport_idmetadataStringUnique Id of a sport
ex. sr:sport:1
fromheartbeatIntegerUnix timestamp of the beginning of a heartbeat message
ex. 1713804799
toheartbeatIntegerUnix timestamp of the end of a heartbeat message
ex. 1713804804
intervalheartbeatIntegerInterval of a heartbeat message in seconds
typeheartbeatStringType of heartbeat message
ex. events, statistics
packageheartbeatStringPackage of a heartbeat message
ex. basketball-v2
Game Timeline:
AttributeParent ElementTypeDescription
away_scoreeventIntegerScore for the away team after a timeline event
break_nameeventStringBrief description of a break event
ex. 1st_pause
competitoreventStringDesignation of a competitor for a timeline event
home, away
home_scoreeventIntegerScore for the home team after a timeline event
ideventIntegerUnique ID for a timeline event
ex. 1721786685
match_clockeventStringClock value for a timeline event, in minutes and seconds
ex. 11:59
match_timeeventIntegerClock value of a timeline event, in minutes
ex. 12
periodeventIntegerPeriod number of a timeline event
period_nameeventStringPeriod name of a timeline event, appearing at the beginning of a period
ex. 2nd_quarter
pointseventIntegerNumber of points for a timeline event. Value could be related to attempt_missed or score_change under event.type.
ex. 1, 2, 3
timeeventDate-timeTimestamp of a timeline event
ex. 2024-04-16T20:49:49+00:00
typeeventStringType of timeline event. Reference enum_event_type in our Global Basketball OpenAPI Spec for a complete list of event types
ex. score_change, turnover, won_jump_ball
updatedeventBooleanSignifies this event has been updated since its original entry when true
updated_timeeventDate-timeTimestamp of an updated time entry
ex. 2024-04-22T17:17:24+00:00
xeventIntegerHorizontal X coordinate of a timeline event. x is a number between 0 and 100.
yeventIntegerVertical Y coordinate of a timeline event. y is a number between 0 and 100.
Player Event Details:
AttributeParent ElementTypeDescription
idevent - playerStringUnique player Id associated with a timeline event
ex. sr:player:1153060
nameevent - playerStringPlayer name associated with a timeline event
ex. Russell, Mercedes
Sport Event Status:
AttributeParent ElementTypeDescription
away_normaltime_scoresport_event_statusIntegerScore for the away team in normal time
away_scoresport_event_statusIntegerTotal score for the away team in the game
home_normaltime_scoresport_event_statusIntegerScore for the home team in normal time
home_scoresport_event_statusIntegerTotal score for the home team in the game
match_statussport_event_statusStringStatus within a game (sport event). Provides more detail on the state of a sport event when live than status
ex. not_started, 1st_quarter, ended, cancelled

See our FAQ for a complete list of statuses and their definitions.
scount_abandonedsport_event_statusBooleanSignifies a game was abandoned by a scout when true
statussport_event_statusStringStatus of a game
ex. not_started, 2nd_half, ended, awaiting_penalties

See our FAQ for a complete list of statuses and their definitions.
winner_idsport_event_statusStringUnique ID of the game winner
ex. sr:competitor:44
Sport Event Situation:
AttributeParent ElementTypeDescription
playedsport_event_status - clockStringGame time played in a quarter/period, in minutes
ex. 00:36
remainingsport_event_status - clockStringTime remaining in a quarter/period, in minutes
ex. 9:21
away_scoresport_event_status - period_scoresIntegerAway team period score
home_scoresport_event_status - period_scoresIntegerHome team period score
numbersport_event_status - period_scoresIntegerPeriod number
typesport_event_status - period_scoresStringPeriod type
regular_period, overtime, 1st_quarter, 2nd_quarter, 3rd_quarter, 4th_quarter, 1st_half, 2nd_half, penalties, 1st_pause, 2nd_pause, 3rd_pause, awaiting_extra, awaiting_penalties, interrupted, 1st_extra, 2nd_extra