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:
Parameter | Description |
---|---|
access_level | Defines the access level of your API key as Production (production) or Trial (trial). |
your_api_key | Your 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 Parameters | Description |
---|---|
channel | Channel type expressed as: {channel_type}. Example: channel=snooker |
competition_id | Competition type expressed as: {competition_id}. Example: competition_id=sr:competition:20508 |
event_id | Event id expressed as: {event_id}. Example: event_id=535536474 |
format | Format type expressed as: {format}. Example: format=json |
season_id | Season id expressed as: {season_id}. Example: season_id=sr:season:63867 |
sport_event_id | Sport event id expressed as: {sport_event_id}. Example: sport_event_id=sr:sport_event:17738118 |
sport_id | Sport 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:
Attribute | Parent Element | Type | Description |
---|---|---|---|
channel | metadata | String | Sport of the stream connection ex. snooker |
competition_id | metadata | String | Unique Id of a competition ex. sr:competition:2055 |
event_id | metadata | String | Type 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 |
format | metadata | String | Format type of the responsejson , xml |
season_id | metadata | String | Unique Id of a season ex. sr:season:104989 |
sport_event_id | metadata | String | Unique Id of a sport event ex. sr:sport_event_id:49877723 |
sport_id | metadata | String | Unique Id of a sport ex. sr:sport:12 |
from | heartbeat | Integer | Unix timestamp of the beginning of a heartbeat message ex. 1713804799 |
to | heartbeat | Integer | Unix timestamp of the end of a heartbeat message ex. 1713804804 |
interval | heartbeat | Integer | Interval of a heartbeat message in seconds |
type | heartbeat | String | Type of heartbeat message ex. events , statistics |
package | heartbeat | String | Package of a heartbeat message ex. snooker-v2 |
Sport Event Status:
Attribute | Parent Element | Type | Description |
---|---|---|---|
away_score | sport_event_status | Integer | Total score for the away competitor in a match |
home_score | sport_event_status | Integer | Total score for the home competitor in a match |
match_status | sport_event_status | String | Status 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_abandoned | sport_event_status | Boolean | Signifies a match was abandoned by a scout when true |
status | sport_event_status | String | Status of a sport event ex. not_started , live , ended , closed See our FAQ for a complete list of statuses and their definitions. |
winner_id | sport_event_status | String | Unique ID of the match winner ex. sr:competitor:120814 |
Period Scores:
Attribute | Parent Element | Type | Description |
---|---|---|---|
away_score | sport_event_status - period_scores | Integer | Away competitor period score |
home_score | sport_event_status - period_scores | Integer | Home competitor period score |
number | sport_event_status - period_scores | Integer | Period number |
type | sport_event_status - period_scores | String | Period type ex. regular_period , snooker_session_break |
Match Timeline:
Attribute | Parent Element | Type | Description |
---|---|---|---|
away_score | event | Integer | Away competitor point score |
best_of_frames | event | Integer | Provides the number of frames played for the match ex. best_of="35" |
break | event | String | Display score for a competitor after a shot ex. 1:0 , 6:0 |
competitor | event | String | Designation of a competitor for a timeline eventhome , away |
frame_number | event | Integer | Frame number for a timeline event |
frame_score | event | String | Total frame display score after a shot ex. 22:0 , 90:11 |
home_score | event | Integer | Home competitor point score |
id | event | Integer | Unique ID for a timeline event ex. 1692895333 |
lowest_value_color_available | event | Integer | Lowest value ball color available after a shot ex. 2 , 7 |
number_of_red_balls | event | Integer | Number of red balls for a match ex. 15 |
period_name | event | String | Period name of a timeline event, appearing at the beginning of a period ex. snooker_session_break |
points | event | Integer | Number of points recorded on a break |
red_balls_left | event | Integer | Number of red balls left on the table after a shot ex. 10 |
time | event | Date-time | Timestamp of a timeline event ex. 2024-04-16T20:49:49+00:00 |
type | event | String | Type 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 |