Docs
Coverage MatrixDocumentationChange LogLog InContact Us
Docs

Push Statistics

Global Hockey Push Statistics provides real-time team and player match-level statistics for all live matches.

Syntax

https://api.sportradar.com/icehockey/{access_level}/stream/statistics/subscribe

Parameters

Parameter

Description

access_level

Defines the access level of your API key

production, trial

🔐

Authorization

Place your API key in the header for each request (x-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.

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

URL Parameters

Description

channel

Channel type

Example: channel=icehockey

competition_id

Competition id

Example: competition_id=sr:competition:237

event_id

Event type

Example: event_id=score_change

format

Format type

json, xml

Example: format=json

season_id

Season id

Example: season_id=sr:season:68178

sport_event_id

Sport event id

>Example: sport_event_id=sr:sport_event:18449748

sport_id

Sport id

Example: sport_id=sr:sport:4



Code Samples

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

url = URI("https://api.sportradar.com/icehockey/trial/stream/statistics/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/icehockey/trial/stream/statistics/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/icehockey/trial/stream/statistics/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/icehockey/trial/stream/statistics/subscribe?&format=json&sport_event_id=sr:sport_event_id:18449748")

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/icehockey/trial/stream/statistics/subscribe",
    params = {'format': 'json', 'sport_event_id': 'sr:sport_event_id:18449748'},
    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/icehockey/trial/stream/statistics/subscribe?&format=json&sport_event_id=sr:sport_event_id:18449748'
  -H 'x-api-key: {your_api_key}'


Response Sample

The above commands return json like this.



Data Points

Metadata:
AttributeParent ElementTypeDescription
channelmetadataStringSport of the stream connection
ex. icehockey
competition_idmetadataStringUnique Id of a competition
ex. sr:competition:268
event_idmetadataStringType of timeline event. Reference enum_event_type in our Global Ice Hockey OpenAPI Spec for a complete list of event types
ex. match_started, score_change, suspension
formatmetadataStringFormat type of the response
json, xml
season_idmetadataStringUnique Id of a season
ex. sr:season:119485
sport_event_idmetadataStringUnique Id of a sport event
ex. sr:sport_event_id:50708029
sport_idmetadataStringUnique Id of a sport
ex. sr:sport:4
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. icehockey-v2
Competitor:
AttributeParent ElementTypeDescription
abbreviationstatistics - competitorsStringAbbreviation for a competitor name
ex. OMS (HK Avangard Omsk)
idcompetitors - competitor`StringUnique ID for a competitor
ex. sr:competitor:3945 (HK Avangard Omsk)
namestatistics - competitorsStringName for a competitor
ex. HK Avangard Omsk
qualifierstatistics - competitorsStringDesignation of a competitor for a sport event
home, away
Player:
AttributeParent ElementTypeDescription
idplayersStringUnique ID of a player
ex. sr:player:87951
nameplayersStringName of a player
ex. Proskuryakov, Ilya
Sport Event Status:

Attribute

Parent Element

Type

Description

aggregate_away_score

sport_event_status

Integer

Aggregate score (of multiple sport events) for the away team

aggregate_home_score

sport_event_status

Integer

Aggregate score (of multiple sport events) for the home team

aggregate_winner_id

sport_event_status

String

Unique ID of the aggregate score winner
ex. sr:competitor:3945

away_normaltime_score

sport_event_status

Integer

Score for the away team in normal time

away_score

sport_event_status

Integer

Total score for the away team in the game

home_normaltime_score

sport_event_status

Integer

Score for the home team in normal time

home_score

sport_event_status

Integer

Total score for the home team in the game

decided_by_fed

sport_event_status

Boolean

Signifies a match result was decided by the federation when true. For example, incomplete due to crowd disruption

match_status

sport_event_status

String

Status within a match. Provides more detail on the state of a match when live than status
ex. not_started, 1st_period, 1st_extra, awaiting_extra_time

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 match
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:3950

Sport Event Situation:
AttributeParent ElementTypeDescription
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_period, 1st_pause, 2nd_period, 2nd_pause, 3rd_period, awaiting_extra, awaiting_penalties, penalties, interrupted
Game Stats (Player):
AttributeParent ElementTypeDescription
assistsplayers - statisticsIntegerNumber of assists for a player in a game
first_assistsplayers - statisticsIntegerNumber of first assists for a player in a game
goalie_minutes_playedplayers - statisticsIntegerNumber of minutes played for a goalie in a game
goalsplayers - statisticsIntegerNumber of goals for a player in a game
goals_concededplayer - statisticsIntegerNumber of goals allowed for a goalie in a game
penaltiesplayers - statisticsIntegerNumber of penalties for a player in a game
penalty_minutesplayers - statisticsIntegerNumber of penalty minutes for a player in a game
plus_minusplayers - statisticsIntegerPlus/minus value for a player in a game
pointsplayers - statisticsIntegerNumber of points for a player in a game
savesplayers - statisticsIntegerNumber of saves for a goalie in a game
second_assistsplayers - statisticsIntegerNumber of second assists for a player in a game
shots_on_goalplayers - statisticsIntegerNumber of shots on goal for a player in a game
Game Stats (Team):
AttributeParent ElementTypeDescription
goals_concededcompetitors - statisticsIntegerNumber of goals allowed for a team in a game
goals_in_power_playcompetitors - statisticsIntegerNumber of power play goals scored for a team in a game
goals_while_short_handedcompetitors - statisticsIntegerNumber of short-handed goals scored for a team in a game
penaltiescompetitors - statisticsIntegerNumber of penalties for a team in a game
penalty_minutescompetitors - statisticsIntegerNumber of penalty minutes for a team in a game
power_playscompetitors - statisticsIntegerNumber of power plays for a team in a game
puck_possessioncompetitors - statisticsIntegerNumber of puck possessions for a team in a game
savescompetitors - statisticsIntegerNumber of saves for a team in a game
shots_on_goalcompetitors - statisticsIntegerNumber of shots on goal for a team in a game
shutoutscompetitors - statisticsIntegerSignifies a shutout for a team in a game when 1