Ice Hockey

The rules of Ice-Hockey can be found here:


Note: not all data elements are available for all matches due to differing information availability and coverage methods.
This document describes the V1 Ice-Hockey match state contract.

Match State Summary Message

{
"CustomerId": 6105,
"FixtureId": "92964499",
"MessageTimestampUtc": "2017-03-14T13:22:46.685Z",
"IsReliable": false,
"MatchStatus": "ThirdPeriod",
"OvertimeCount": 0,
"Statistics": [],
"CurrentScore": [],
"IsScoreConfirmed": true,
"InProgressPenaltyCount": [],
"PlayersOnIceCount": [],
"HomeGoalKeeperOnIce": true,
"AwayGoalKeeperOnIce": true,
"IsClockRunning": false,
"DangerState": "HomeGoal",
"TimeRemainingInCurrentPeriod": [],
"HomeTeam": [],
"AwayTeam": [],
"MatchFormat": [],
} 

Element

Type

Description

CustomerId

Integer

An immutable identifier for the customer

FixtureId

Integer

An immutable identifier for the event

MessageTimestampUtc

DateTime

The time in UTC at which the message was generated

IsReliable

Boolean

True if the data values are reliable, False otherwise

MatchStatus

String

Describes the current match status, possible values are:
PreMatch
FirstPeriod
EndOfFirstPeriod
SecondPeriod
EndOfSecondPeriod
ThirdPeriod
EndOfThirdPeriod
OvertimePeriod
EndOfOvertimePeriod
PenaltyShootout
Suspended
Abandoned
PostMatch

OvertimeCount

Integer

Describes the overtime count

Statistics

IceHockeyStatistics

Describes match statistics

CurrentScore

Score

Describes current score

IsScoreConfirmed

Boolean

True if score is confirmed false otherwise

InProgressPenaltyCount

Score

Describes penalty count

PlayersOnIceCount

Score

Describes players on ice

HomeGoalKeeperOnIce

Boolean

True if home goal keeper is on ice, False otherwise

AwayGoalKeeperOnIce

Boolean

True if away goal keeper is on ice, False otherwise

IsClockRunning

Boolean

True if game clock is running, False otherwise

DangerState

String

Describes the current danger state, possible values are:
Safe
PenaltyRisk
PossibleHomePenaltyShot
PossibleAwayPenaltyShot
HomePenaltyShot
AwayPenaltyShot
HomeGoal
AwayGoal
HomeAttack
AwayAttack

TimeRemainingInCurrentPeriod

TimeRemainingAtTimestamp

Describes the time remaining in the period

HomeTeam

Team

Describes team

AwayTeam

Team

Describes Team

MatchFormat

MatchFormat

Describes match format


IceHockeyStatistics

{
"Goals": [],
"PenaltyShots": [],
"PenaltyShotGoals": [],
"TotalGoals": [],
"TotalPenalties": [],
"ShotsOnTarget": [],
"TotalAttacks": [] 
} 

Element

Type

Description

Goals

Score

Describes goals

PenaltyShots

Score

Describes penalty shots

PenaltyShotGoals

Score

Describes penalty goals

TotalGoals

Score

Describes total goals

TotalPenalties

Score

Describes penalties

ShotsOnTarget

Score

Describes shots on target

TotalAttacks

Score

Describes total attacks


Score

{
"Home":0,
"Away":2
} 

Element

Type

Description

Home

Integer

The Home team's score

Away

Integer

The Away team's score


TimeRemainingInCurrentPeriod

{
"TimestampUtc": "2016-12-12T17:21:08.095Z",
"TimeRemaining": "00:12:19"
} 

Element

Type

Description

TimestampUtc

DateTime

Describes the timestamp for the message

TimeRemaining

Duration

Describes the duration of the phase

The value of TimeRemainingInCurrentPeriod will not be updated with each message. When a clock action occurs, such as stopping the clock, TimeRemainingInCurrentPeriod will be updated to the current value, which will allow you to recalculate the clock if needed.

Team

{
"Id": "1",
"Name": "TestHomeTeam",
"Jersey": []
} 

Element

Type

Description

Id

Integer

An immutable identifier for the team

Name

String

Describes team name

Jersey

Jersey

Describes teams jersey


Jersey

{
"MainColor": "red",
"MinorColor": "black" 
} 

Element

Type

Description

MainColor

String

Describes team main color

MinorColor

String

Describes team minor color


MatchFormat

{
"PeriodLength": "00:20:00",
"NumberOfExtraTimePeriods": 0,
"ExtraTimePeriodLength": "00:05:00"
} 

Element

Type

Description

PeriodLength

Duration

Describes the length of the period

NumberOfExtraTimePeriods

Integer

Describes the number of extra time periods

ExtraTimePeriodLength

Duration

Describes extra time period length

Match State Details Message

The detail message lists every action that has happened in an ice hockey match. This allows a complete timeline of the match to be constructed at any point.

{
"MatchActions": [],
"CustomerId": 6105,
"FixtureId": "92964499",
"MessageTimestampUtc": "2017-03-14T13:22:46.685Z",
"IsReliable": false,
"MatchStatus": "ThirdPeriod",
"OvertimeCount": 0,
"Statistics": [],
"CurrentScore": [],
"IsScoreConfirmed": true,
"InProgressPenaltyCount": [],
"PlayersOnIceCount": [],
"HomeGoalKeeperOnIce": true,
"AwayGoalKeeperOnIce": true,
"IsClockRunning": false,
"DangerState": "HomeGoal",
"TimeRemainingInCurrentPeriod": [],
"HomeTeam": [],
"AwayTeam": [],
"MatchFormat": [],
} 

Element

Type

Description

MatchActions

MatchActions

Describes the historic match actions

CustomerId

Integer

An immutable identifier for the customer

FixtureId

Integer

An immutable identifier for the event

MessageTimestampUtc

DateTime

The time in UTC at which the message was generated

IsReliable

Boolean

True if the data values are reliable, False otherwise

MatchStatus

String

Describes the current match status, possible values are:
PreMatch
FirstPeriod
EndOfFirstPeriod
SecondPeriod
EndOfSecondPeriod
ThirdPeriod
EndOfThirdPeriod
OvertimePeriod
EndOfOvertimePeriod
PenaltyShootout
EndOfPenaltyShootout
Suspended
Abandoned
PostMatch

OvertimeCount

Integer

Describes the overtime count

Statistics

IceHockeyStatistics

Describes match statistics

CurrentScore

Score

Describes current score

IsScoreConfirmed

Boolean

True if score is confirmed false otherwise

InProgressPenaltyCount

Score

Describes penalty count

PlayersOnIceCount

Score

Describes players on ice

HomeGoalKeeperOnIce

Boolean

True if home goal keeper is on ice, False otherwise

AwayGoalKeeperOnIce

Boolean

True if away goal keeper is on ice, False otherwise

IsClockRunning

Boolean

True if game clock is running, False otherwise

DangerState

String

Describes the current danger state, possible values are:
Safe
PenaltyRisk
PossibleHomePenaltyShot
PossibleAwayPenaltyShot
HomePenaltyShot
AwayPenaltyShot
HomeGoal
AwayGoal
HomeAttack
AwayAttack

TimeRemainingInCurrentPeriod

TimeRemainingAtTimestamp

Describes the time remaining in the period

HomeTeam

Team

Describes team

AwayTeam

Team

Describes Team

MatchFormat

MatchFormat

Describes match format


MatchActions

{
"ClockActions": [],
"FaceOffs": [],
"Goals": [],
"GoalKeeperOnIceChanges": [],
"Penalties": [],
"PenaltyShots": [],
"PenaltyShotGoals": [],
"PenaltyShotsMissed": [],
"PenaltyShotsRetaken": [],
"MatchStatusChanges": [],
"ShotsOnTarget": [],
"DangerStateChanges": [],
"PlayerCountChanges": []
} 

Element

Type

Description

ClockActions

ClockActionCollection

Array of ClockActions

FaceOffs

FaceOffCollection

Array of FaceOffs

Goals

GoalCollection

Array of Goals

GoalKeeperOnIceChanges

GoalKeeperOnIceChangeCollection

Array of GoalKeeperOnIceChanges

Penalties

PenaltyCollection

Array of Penalties

PenaltyShots

PenaltyShotCollection

Array of PenaltyShots

PenaltyShotGoals

PenaltyShotGoalCollection

Array of PenaltyShotGoals

PenaltyShotsMissed

PenaltyShotMissedCollection

Array of PenaltyShotsMissed

PenaltyShotsRetaken

PenaltyShotRetakeCollection

Array of PenaltyShotsRetaken

MatchStatusChanges

MatchStatusChangeCollection

Array of MatchStatusChanges

ShotsOnTarget

ShotOnTargetCollection

Array of ShotsOnTarget

DangerStateChanges

DangerStateChangeCollection

Array of DangerStateChanges

PlayerCountChanges

PlayerCountCollection

Array of PlayerCountChanges


ClockActionCollection

{
"Type": "Set",
"Adjustment": null,
"IsRunning": false,
"IsConfirmed": true,
"UtcTimestamp": "2016-12-12T16:17:36.217Z",
"TimeRemainingInPeriod": "00:02:20",
"OccurredDuring": "PreMatch",
"OvertimeCount": 0
} 

Element

Type

Description

Type

String

Describes Clock action type, possible values are:
Start
Stop
Adjustment - currently not in active use
Set

Adjustment

Duration

Describes the adjustment - currently not in active use

IsRunning

Boolean

True if clock was running, false otherwise

IsConfirmed

Boolean

True if message is confirmed, false otherwise

UtcTimestamp

DateTime

Timestamp of the action

TimeRemainingInPeriod

Duration

Describes the time remaining

OccurredDuring

String

Describes the match status, possible values are:
PreMatch
FirstPeriod
EndOfFirstPeriod
SecondPeriod
EndOfSecondPeriod
ThirdPeriod
EndOfThirdPeriod
OvertimePeriod
EndOfOvertimePeriod
PenaltyShootout
EndOfPenaltyShootout
Suspended
Abandoned
PostMatch

OvertimeCount

Integer

 


FaceOffCollection

{
"IsConfirmed": true,
"UtcTimestamp": "2016-12-12T16:17:59.824Z",
"TimeRemainingInPeriod": "00:02:26",
"OccurredDuring": "FirstPeriod",
"OvertimeCount": 0
} 

Element

Type

Description

IsConfirmed

Boolean

True if action is confirmed, false otherwise

UtcTimestamp

DateTime

Action timestamp

TimeRemainingInPeriod

Duration

Describes the time remaining duration

OccurredDuring

String

Describes the match status, possible values are:
PreMatch
FirstPeriod
EndOfFirstPeriod
SecondPeriod
EndOfSecondPeriod
ThirdPeriod
EndOfThirdPeriod
OvertimePeriod
EndOfOvertimePeriod
PenaltyShootout
EndOfPenaltyShootout
Suspended
Abandoned
PostMatch

OvertimeCount

 

 


GoalCollection

{
"Goals": [],
"IsCollected": false,
"IsReliable": true
} 

Element

Type

Description

Goals

ArrayOfGoal


IsCollectedBooleanTrue if action is confirmed, false otherwise

IsReliable

BooleanTrue if action is confirmed, false otherwise

ArrayOfGoal

{
"Team": "Home",
"IsConfirmed": true,
"UtcTimestamp": "2016-12-12T16:20:03.396Z",
"TimeRemainingInPeriod": "00:01:20",
"OccurredDuring": "FirstPeriod",
"OvertimeCount": 0
} 

Element

Type

Description

Team

String

Describes the team

IsConfirmed

Boolean

True if action is confirmed, false otherwise

UtcTimestamp

DateTime

Action timestamp

TimeRemainingInPeriod

Duration

Describes the time remaining duration

OccurredDuring

String

Describes the match status, possible values are:
PreMatch
FirstPeriod
EndOfFirstPeriod
SecondPeriod
EndOfSecondPeriod
ThirdPeriod
EndOfThirdPeriod
OvertimePeriod
EndOfOvertimePeriod
PenaltyShootout
EndOfPenaltyShootout
Suspended
Abandoned
PostMatch

OvertimeCount

 

 


GoalKeeperOnIceChangeCollection

{
"IsOnIce": false,
"Team": "Home",
"IsConfirmed": true,
"UtcTimestamp": "2016-12-12T16:20:03.396Z",
"TimeRemainingInPeriod": "00:01:20",
"OccurredDuring": "FirstPeriod",
"OvertimeCount": 0
} 

Element

Type

Description

IsOnIce

Boolean

True if goal keeper is on ice, false otherwise

Team

String

Describes the team

IsConfirmed

Boolean

True if action is confirmed, false otherwise

UtcTimestamp

DateTime

Action timestamp

TimeRemainingInPeriod

Duration

Describes the time remaining duration

OccurredDuring

String

Describes the match status, possible values are:
PreMatch
FirstPeriod
EndOfFirstPeriod
SecondPeriod
EndOfSecondPeriod
ThirdPeriod
EndOfThirdPeriod
OvertimePeriod
EndOfOvertimePeriod
PenaltyShootout
EndOfPenaltyShootout
Suspended
Abandoned
PostMatch

OvertimeCount

 

 



PenaltyCollection

{
"Status": "Finished",
"Duration": "00:02:00",
"IsGameMisconductPenalty": false,
"StartedAtTimeRemainingInPeriod": "00:02:07",
"StartedDuring": null,
"StartedDuringOvertimeCount": 0,
"Team": "Away",
"IsConfirmed": true,
"AwardedAtUtcTimestamp": "2016-12-12T16:19:00.184Z",
"AwardedAtTimeRemainingInPeriod": "00:02:07",
"AwardedAtOccurredDuring": "FirstPeriod",
"AwardedAtOvertimeCount": 0
} 

Element

Type

Description

Status

String

Action status, possible values:
Unknown
Waiting
Started
Finished

Duration

Duration

 

IsGameMisconductPenalty

Boolean

True if miscontucted, false otherwise

StartedAtTimeRemainingInPeriod

Duration

 

StartedDuring

MatchStatus

 

StartedDuringOvertimeCount

Integer

 

Team

String

Describes the team

IsConfirmed

Boolean

True if action is confirmed, false otherwise

AwardedAtUtcTimestamp

DateTime

 

AwardedAtTimeRemainingInPeriod

Duration

 

AwardedAtOccurredDuring

MatchStatus

 

AwardedAtOvertimeCount

MatchStatus

 


MatchStatusChangeCollection

{
"IsConfirmed": true,
"UtcTimestamp": "2016-12-12T16:17:40.478Z",
"TimeRemainingInPeriod": "00:20:00",
"OccurredDuring": "FirstPeriod",
"OvertimeCount": 0 
} 

Element

Type

Description

IsConfirmed

Boolean

True is action is confirmed

UtcTimestamp

DateTime

Action timestamp

TimeRemainingInPeriod

Duration

Describes time remaining

OccurredDuring

MatchStatus

Describes the phase

OvertimeCount

Integer

 


ShotOnTargetCollection

{
"Team": "Home",
"IsConfirmed": true,
"UtcTimestamp": "2016-12-12T16:20:03.396Z",
"TimeRemainingInPeriod": "00:01:20",
"OccurredDuring": "FirstPeriod",
"OvertimeCount": 0
} 

Element

Type

Description

Team

String

Describes the team

IsConfirmed

Boolean

True if action is confirmed, false otherwise

UtcTimestamp

DateTime

Action timestamp

TimeRemainingInPeriod

Duration

Describes the time remaining duration

OccurredDuring

String

Describes the match status

OvertimeCount

 

 


DangerStateChangeCollection

{
"State": "Safe",
"IsConfirmed": true,
"UtcTimestamp": "2016-12-12T16:20:03.396Z",
"TimeRemainingInPeriod": "00:01:20",
"OccurredDuring": "FirstPeriod",
"OvertimeCount": 0
} 

Element

Type

Description

State

String

Describes the team

IsConfirmed

Boolean

True if action is confirmed, false otherwise

UtcTimestamp

DateTime

Action timestamp

TimeRemainingInPeriod

Duration

Describes the time remaining duration

OccurredDuring

String

Describes the match status

OvertimeCount

 

 


PlayerCountCollection

{
"HomePlayerCount": 5,
"AwayPlayerCount": 4,
"IsConfirmed": true,
"UtcTimestamp": "2016-12-12T16:19:03.439Z",
"TimeRemainingInPeriod": "00:02:07",
"OccurredDuring": "FirstPeriod",
"OvertimeCount": 0
} 

Element

Type

Description

HomePlayerCount

Integer

Describes the team

AwayPlayerCount

Integer

Describes the team

IsConfirmed

Boolean

True if action is confirmed, false otherwise

UtcTimestamp

DateTime

Action timestamp

TimeRemainingInPeriod

Duration

Describes the time remaining duration

OccurredDuring

String

Describes the match status

OvertimeCount