Docs
Coverage MatrixDocumentationChange LogLog InContact Us
Docs

Displays event information, scoring, and an event timeline.

Syntax

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

Replace placeholders with the following query parameters:

ParameterDescription
access_levelDefines the access level of your API key as Production (production) or Trial (trial).
your_api_keyYour API key.

Optional Query String Parameters

In addition to the URL parameters listed above, you can filter the Events information with one or more of the following optional query string parameters.

📘

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.

Replace placeholders with the following query parameters:

URL ParametersDescription
channelChannel type expressed as: {channel_type}.
Example: channel=snooker
competition_idCompetition type expressed as: {competition_id}.
Example: competition_id=sr:competition:20508
event_idEvent id expressed as: {event_id}.
Example: event_id=535536474
formatFormat type expressed as: {format}.
Example: format=json
season_idSeason id expressed as: {season_id}.
Example: season_id=sr:season:63867
sport_event_idSport event id expressed as: {sport_event_id}.
Example: sport_event_id=sr:sport_event:17738118
sport_idSport id expressed as: {sport_id}.
Example: sport_id=sr:sport:19


Code Samples

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

url = URI("https://api.sportradar.com/snooker/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/snooker/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/snooker/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/snooker/trial/v2/stream/events/subscribe?api_key={your_api_key}&format=json&sport_event_id=sr:match:16519273")

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/snooker/trial/v2/stream/events/subscribe",
    params = {'api_key': 'your_api_key', 'format': 'json', 'sport_event_id': 'sr:match:16519273'},
    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/snooker/trial/v2/stream/events/subscribe?api_key={your_api_key}&format=json&sport_event_id=sr:match:16519273'


Response Sample

The above commands return json like this.



Data Points

Metadata:
AttributeParent ElementTypeDescription
channelmetadataStringSport of the stream connection
ex. snooker
competition_idmetadataStringUnique Id of a competition
ex. sr:competition:2055
event_idmetadataStringType of timeline event
ex. match_started, score_change, frame_started, change_of_possession, ball_pot

See our FAQ for a complete list of timeline event values
formatmetadataStringFormat type of the response
json, xml
season_idmetadataStringUnique Id of a season
ex. sr:season:104989
sport_event_idmetadataStringUnique Id of a sport event
ex. sr:sport_event_id:49877723
sport_idmetadataStringUnique Id of a sport
ex. sr:sport:12
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. snooker-v2
Sport Event Status:
AttributeParent ElementTypeDescription
away_scoresport_event_statusIntegerTotal score for the away competitor in a match
home_scoresport_event_statusIntegerTotal score for the home competitor in a match
match_statussport_event_statusStringStatus within a match (sport event). Provides more detail on the state of a match when live than status
ex. not_started, interrupted, in_progress, ended

See our FAQ for a complete list of statuses and their definitions.
scount_abandonedsport_event_statusBooleanSignifies a match was abandoned by a scout when true
statussport_event_statusStringStatus of a sport event
ex. not_started, live, ended, closed

See our FAQ for a complete list of statuses and their definitions.
winner_idsport_event_statusStringUnique ID of the match winner
ex. sr:competitor:120814
Period Scores:
AttributeParent ElementTypeDescription
away_scoresport_event_status - period_scoresIntegerAway competitor period score
home_scoresport_event_status - period_scoresIntegerHome competitor period score
numbersport_event_status - period_scoresIntegerPeriod number
typesport_event_status - period_scoresStringPeriod type
ex. regular_period, snooker_session_break
Match Timeline:
AttributeParent ElementTypeDescription
away_scoreeventIntegerAway competitor point score
best_of_frameseventIntegerProvides the number of frames played for the match
ex. best_of="35"
breakeventStringDisplay score for a competitor after a shot
ex. 1:0, 6:0
competitoreventStringDesignation of a competitor for a timeline event
home, away
frame_numbereventIntegerFrame number for a timeline event
frame_scoreeventStringTotal frame display score after a shot
ex. 22:0, 90:11
home_scoreeventIntegerHome competitor point score
ideventIntegerUnique ID for a timeline event
ex. 1692895333
lowest_value_color_availableeventIntegerLowest value ball color available after a shot
ex. 2, 7
number_of_red_ballseventIntegerNumber of red balls for a match
ex. 15
period_nameeventStringPeriod name of a timeline event, appearing at the beginning of a period
ex. snooker_session_break
pointseventIntegerNumber of points recorded on a break
red_balls_lefteventIntegerNumber of red balls left on the table after a shot
ex. 10
timeeventDate-timeTimestamp of a timeline event
ex. 2024-04-16T20:49:49+00:00
typeeventStringType of timeline event
ex. match_info, break_off, match_started, match_ended, period_start, change_of_possession, ball_pot, score_change, foul, free_ball, re_rack, frame_started, frame_ended