Docs
Coverage MatrixDocumentationChange LogLog InContact Us
Docs

NHL FAQs

Frequently asked questions for NHL v7

Click on the categories below or browse questions on the right panel.


Categories

.


Coverage


How is each NHL game covered?

Coverage information for the NHL can be found here.



Integration


Are simulations available for this API?

Yes! You can replay past games as though they were live using our on-demand Simulations service.


What format are date fields presented in?

When we present date only values we present these in the ISO 8601 standard format.

ex: 2013-04-03

We use these for attributes that have date and no time (such as birthdate). For more information: https://en.wikipedia.org/wiki/ISO_8601


What format are the date/time fields presented in?

All of our Date/Time attributes are in UTC, presented in the ISO 8601 standard format.

ex: 2013-04-03T18:15:00+00:00

For more information: https://en.wikipedia.org/wiki/ISO_8601


How do I locate the TTL (Time to Live)/cache on an API endpoint?

The cache (in seconds) can be accessed in the returned header information on each RESTful API call, under cache-control.

ex. cache-control: max-age=1, public, s-maxage=1 or
cache-control: public, must-revalidate, max-age=120



Game & Series Statuses


What the valid game statuses?

  • scheduled - The game is scheduled to occur.
  • created - The game has been created and we have begun logging information for the game.
  • inprogress – The game is in progress.
  • complete – The game is over, but stat validation is not complete.
  • closed – The game is over and the stats have been validated.
  • cancelled – The game has been cancelled. No makeup game will be played as a result.
  • delayed – The start of the game is currently delayed or the game has gone from in progress to delayed for some reason.
  • postponed – The game has been postponed, to be made up at another day and time. Once the makeup game is announced, a new game and ID will be created and scheduled on the announced makeup date. You should request the scheduled feed(s) regularly to identify the re-scheduled makeup game(s).
  • time-tbd – The game has been scheduled, but a time has yet to be announced.
  • if necessary – The game will be scheduled if it is required.
  • unnecessary – The series game was scheduled to occur, but will not take place due to one team clinching the series early.

What are the valid series statuses?

  • scheduled - The series is scheduled to occur.
  • inprogress – The series is in progress.
  • closed – The series is over.


Player Statuses


What are the valid player statuses?

  • ACT – Active
  • DUP – Duplicate
  • FA – Free Agent
  • IR – Injured reserve
  • M-LEAGUE – Sent to minor league team
  • NWT – Not with team
  • RET – Retired
  • SUS – Suspended
  • UDP – Unsigned Draft Pick

What are the player game statuses and when can I expect them to populate?

Players can be marked with the following statuses in the Game Summary endpoint.

  • played="true"
  • scratched="true"
  • starter="true"

When an NHL game is set to created status all players are marked as played="true".

After coaches decide on game scratches (typically around one hour prior to faceoff), players are assigned scratched="true" as necessary.

Starting players are assigned starter="true" roughly 15-30 minutes prior to faceoff.

<player id="03548fbd-cba9-4287-b585-1cedf431f008" full_name="Brady Skjei" first_name="Brady" 
        last_name="Skjei" handedness="L" position="D" primary_position="D" jersey_number="76" 
        captain="N" played="true" sr_id="sr:player:899408" reference="8476869">
<player id="a576c899-6e98-4b6c-8c4c-243b2dec38d7" full_name="Jackson Blake" first_name="Jackson" 
        last_name="Blake" handedness="R" position="F" primary_position="RW" jersey_number="53" 
        captain="N" scratched="true" sr_id="sr:player:2181518" reference="8482809">
<player id="30d3b91d-c0d2-40e0-ba17-2a21882c43af" full_name="Igor Shesterkin" first_name="Igor" 
        last_name="Shesterkin" handedness="L" position="G" primary_position="G" jersey_number="31" 
        captain="N" starter="true" played="true" sr_id="sr:player:884434" reference="8478048">

Why is a player missing a player.id in a game?

Player id is an optional attribute and may be absent for a period of time in a game.

In preseason games, NHL teams may roster several players not on an NHL roster, and previously unmapped in Sportradar's database. In these instances, a player may be without an id for a period of time.

This could also occur in a regular season game, but will be resolved prior to game start.



Data Workflow


How can I find timings for data entry updates?

Our NHL Data Entry Workflow section covers data availability updates. This includes updates for transactions, rankings, stat validation, and more.



Schedules


How do I pull in schedule data for future games in which teams are not yet known?

This API features a TBD team used for every entry in to-be-determined matchups. This virtual team will have its own unique ID specific to this API.

Find the TBD team in the Teams endpoint.

  • <team id="907dc4e5-6957-4d19-b7d4-b1b7003b91e6" name="TBD" alias="TBD" market="Team"/>

The matchups will appear as below in the Schedule endpoints.

<series id="0f81bb4d-1d0c-4a3b-82de-507534154095" title="NBA Finals - TBD vs TBD" round="4" start_date="2024-06-06" status="scheduled">
  <games>
  <game id="342f103b-0fd7-47ac-a84d-1391e3605e96" status="time-tbd" title="Game 1" coverage="full" scheduled="2024-06-06T17:00:00+00:00" neutral_site="false" track_on_court="true" home_team="907dc4e5-6957-4d19-b7d4-b1b7003b91e6" away_team="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
    <time_zones/>
    <home name="Team TBD" alias="TBD" id="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
      </home>
<away name="Team TBD" alias="TBD" id="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
  </away>
</game>
<game id="71d8d5fc-6836-43c1-85a0-61a828296a06" status="time-tbd" title="Game 2" coverage="full" scheduled="2024-06-09T17:00:00+00:00" neutral_site="false" track_on_court="true" home_team="907dc4e5-6957-4d19-b7d4-b1b7003b91e6" away_team="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
  <time_zones/>
  <home name="Team TBD" alias="TBD" id="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
    </home>
<away name="Team TBD" alias="TBD" id="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
  </away>
</game>
<game id="50b170b9-37e2-47d0-b517-e56ebb960cba" status="time-tbd" title="Game 3" coverage="full" scheduled="2024-06-12T17:00:00+00:00" neutral_site="false" track_on_court="true" home_team="907dc4e5-6957-4d19-b7d4-b1b7003b91e6" away_team="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
  <time_zones/>
  <home name="Team TBD" alias="TBD" id="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
    </home>
<away name="Team TBD" alias="TBD" id="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
  </away>
</game>
<game id="8e94445c-c223-4a49-a759-0b651e440b95" status="time-tbd" title="Game 4" coverage="full" scheduled="2024-06-14T17:00:00+00:00" neutral_site="false" track_on_court="true" home_team="907dc4e5-6957-4d19-b7d4-b1b7003b91e6" away_team="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
  <time_zones/>
  <home name="Team TBD" alias="TBD" id="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
    </home>
<away name="Team TBD" alias="TBD" id="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
  </away>
</game>
<game id="aaa3ddb3-dd1b-459e-a686-d2bfc4408881" status="if-necessary" title="Game 5 (if necessary)" coverage="full" scheduled="2024-06-17T17:00:00+00:00" neutral_site="false" track_on_court="true" home_team="907dc4e5-6957-4d19-b7d4-b1b7003b91e6" away_team="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
  <time_zones/>
  <home name="Team TBD" alias="TBD" id="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
    </home>
<away name="Team TBD" alias="TBD" id="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
  </away>
</game>
<game id="7c16f1ec-6629-4675-aaaa-2a31835862a6" status="if-necessary" title="Game 6 (if necessary)" coverage="full" scheduled="2024-06-20T17:00:00+00:00" neutral_site="false" track_on_court="true" home_team="907dc4e5-6957-4d19-b7d4-b1b7003b91e6" away_team="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
  <time_zones/>
  <home name="Team TBD" alias="TBD" id="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
    </home>
<away name="Team TBD" alias="TBD" id="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
  </away>
</game>
<game id="09129676-2320-4151-976d-713ea785d97b" status="if-necessary" title="Game 7 (if necessary)" coverage="full" scheduled="2024-06-23T17:00:00+00:00" neutral_site="false" track_on_court="true" home_team="907dc4e5-6957-4d19-b7d4-b1b7003b91e6" away_team="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
  <time_zones/>
  <home name="Team TBD" alias="TBD" id="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
    </home>
<away name="Team TBD" alias="TBD" id="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
  </away>
</game>
</games>
</series>

"series": [
  {
    "id": "0f81bb4d-1d0c-4a3b-82de-507534154095",
    "title": "NBA Finals - TBD vs TBD",
    "round": 4,
    "start_date": "2024-06-06",
    "status": "scheduled",
    "participants": [],
    "games": [
      {
        "id": "342f103b-0fd7-47ac-a84d-1391e3605e96",
        "status": "time-tbd",
        "title": "Game 1",
        "coverage": "full",
        "scheduled": "2024-06-06T17:00:00+00:00",
        "neutral_site": false,
        "track_on_court": true,
        "home": {
          "name": "Team TBD",
          "alias": "TBD",
          "id": "907dc4e5-6957-4d19-b7d4-b1b7003b91e6"
        },
        "away": {
          "name": "Team TBD",
          "alias": "TBD",
          "id": "907dc4e5-6957-4d19-b7d4-b1b7003b91e6"
        }
      },
      {
        "id": "71d8d5fc-6836-43c1-85a0-61a828296a06",
        "status": "time-tbd",
        "title": "Game 2",
        "coverage": "full",
        "scheduled": "2024-06-09T17:00:00+00:00",
        "neutral_site": false,
        "track_on_court": true,
        "home": {
          "name": "Team TBD",
          "alias": "TBD",
          "id": "907dc4e5-6957-4d19-b7d4-b1b7003b91e6"
        },
        "away": {
          "name": "Team TBD",
          "alias": "TBD",
          "id": "907dc4e5-6957-4d19-b7d4-b1b7003b91e6"
        }
      },
      {
        "id": "50b170b9-37e2-47d0-b517-e56ebb960cba",
        "status": "time-tbd",
        "title": "Game 3",
        "coverage": "full",
        "scheduled": "2024-06-12T17:00:00+00:00",
        "neutral_site": false,
        "track_on_court": true,
        "home": {
          "name": "Team TBD",
          "alias": "TBD",
          "id": "907dc4e5-6957-4d19-b7d4-b1b7003b91e6"
        },
        "away": {
          "name": "Team TBD",
          "alias": "TBD",
          "id": "907dc4e5-6957-4d19-b7d4-b1b7003b91e6"
        }
      },
      {
        "id": "8e94445c-c223-4a49-a759-0b651e440b95",
        "status": "time-tbd",
        "title": "Game 4",
        "coverage": "full",
        "scheduled": "2024-06-14T17:00:00+00:00",
        "neutral_site": false,
        "track_on_court": true,
        "home": {
          "name": "Team TBD",
          "alias": "TBD",
          "id": "907dc4e5-6957-4d19-b7d4-b1b7003b91e6"
        },
        "away": {
          "name": "Team TBD",
          "alias": "TBD",
          "id": "907dc4e5-6957-4d19-b7d4-b1b7003b91e6"
        }
      },
      {
        "id": "aaa3ddb3-dd1b-459e-a686-d2bfc4408881",
        "status": "if-necessary",
        "title": "Game 5 (if necessary)",
        "coverage": "full",
        "scheduled": "2024-06-17T17:00:00+00:00",
        "neutral_site": false,
        "track_on_court": true,
        "home": {
          "name": "Team TBD",
          "alias": "TBD",
          "id": "907dc4e5-6957-4d19-b7d4-b1b7003b91e6"
        },
        "away": {
          "name": "Team TBD",
          "alias": "TBD",
          "id": "907dc4e5-6957-4d19-b7d4-b1b7003b91e6"
        }
      },
      {
        "id": "7c16f1ec-6629-4675-aaaa-2a31835862a6",
        "status": "if-necessary",
        "title": "Game 6 (if necessary)",
        "coverage": "full",
        "scheduled": "2024-06-20T17:00:00+00:00",
        "neutral_site": false,
        "track_on_court": true,
        "home": {
          "name": "Team TBD",
          "alias": "TBD",
          "id": "907dc4e5-6957-4d19-b7d4-b1b7003b91e6"
        },
        "away": {
          "name": "Team TBD",
          "alias": "TBD",
          "id": "907dc4e5-6957-4d19-b7d4-b1b7003b91e6"
        }
      },
      {
        "id": "09129676-2320-4151-976d-713ea785d97b",
        "status": "if-necessary",
        "title": "Game 7 (if necessary)",
        "coverage": "full",
        "scheduled": "2024-06-23T17:00:00+00:00",
        "neutral_site": false,
        "track_on_court": true,
        "home": {
          "name": "Team TBD",
          "alias": "TBD",
          "id": "907dc4e5-6957-4d19-b7d4-b1b7003b91e6"
        },
        "away": {
          "name": "Team TBD",
          "alias": "TBD",
          "id": "907dc4e5-6957-4d19-b7d4-b1b7003b91e6"
        }
      }
    ]
  },

Make note of the status attribute to determine whether the time of the game is known. A status of time-tbd indicates the game has been scheduled, but a time has yet to be announced. A status of scheduled indicates the game time is known.



Player Positions


What are the valid player positions?

  • NA
  • D
  • F
  • F-D
  • G

What are the player primary positions I can expect to see in the feeds?

  • NA
  • C
  • D
  • G
  • LW
  • RW


Event Types


What are the valid event types tracked in the Play-by-Play endpoint?

  • awardedgoal
  • awardedemptynetgoal
  • challenge
  • emptynetgoal
  • endperiod
  • endshootoutperiod
  • evenstrength
  • faceoff
  • gamesetup
  • giveaway
  • goal
  • goaliechange
  • hit
  • owngoal
  • penalty
  • penaltygoal
  • penaltyshotmissed
  • penaltyshotsaved
  • powerplay
  • shootoutgoal
  • shootoutshotmissed
  • shootoutshotsaved
  • shotmissed
  • shotsaved
  • startshootoutperiod
  • stoppage
  • substitutions
  • takeaway

The following event types can be classified as stoppage, but will be classified in the event description:

  • teamtimeout
  • TV timeout
<event id="48ed8125-ed65-407e-aacc-7f214796a6e9" clock="19:14" official="true" updated="2022-12-06T17:08:30Z" 
wall_clock="2022-12-06T03:39:47Z" clock_decimal="19:14" sequence="1670297987365" zone="offensive" 
event_type="shotsaved">
{
    "id": "7d00ab9a-a612-4c26-a385-9d21445517be",
    "clock": "9:56",
    "official": true,
    "updated": "2023-11-16T07:21:44Z",
    "wall_clock": "2023-11-16T00:54:03Z",
    "description": "Shot on goal by Jesperi Kotkaniemi saved by Carter Hart",
    "clock_decimal": "9:56",
    "sequence": 1700096043241,
    "strength": "even",
    "zone": "offensive",
    "event_type": "shotsaved",
    "attribution": {
        "id": "44182a9d-0f24-11e2-8525-18a905767e44",
        "name": "Hurricanes",
        "market": "Carolina",
        "team_goal": "right",
        "sr_id": "sr:team:3680",
        "reference": "12"
    },
<event id="0d2b0300-9ee7-41fa-bbbe-c7b22f0af47b" clock="5:23" official="true" updated="2023-11-16T07:28:37Z" wall_clock="2023-11-16T03:00:26Z" clock_decimal="5:23" sequence="1700103626120" event_type="stoppage">
    <description>Stoppage - Goalie Stopped (after SOG) - TV timeout</description>
    <details stoppage_type="Goalie Stopped (after SOG)" reason="TV timeout"/>
{
    "id": "94ad6314-b7d6-44d0-a437-3d8088c22bb3",
    "clock": "11:57",
    "official": true,
    "updated": "2023-11-16T07:21:21Z",
    "wall_clock": "2023-11-16T00:49:11Z",
    "description": "Stoppage - Puck in Netting - TV timeout",
    "clock_decimal": "11:57",
    "sequence": 1700095751940,
    "stoppage_type": "Puck in Netting",
    "event_type": "stoppage",
    "details": {
        "stoppage_type": "Puck in Netting",
        "reason": "TV timeout"
    },

Why do certain play-by-play events have a higher latency?

Beginning in the 2024 season, hit, giveaway, and takeaway event types have a higher delivery latency in the Play-by-Play compared to previous years. This is due to a new stat audit process, and is expected to reduce over time.

When an event is received, the timestamp is adjusted to fit into that specific time frame in the game (game clock and wall_clock). This means that the UTC value for the event is always accurate.

<event id="502c99a3-3638-4a85-b344-6d6f6e720834" clock="16:42" official="true" updated="2024-05-28T14:34:53Z" 
       wall_clock="2024-05-28T00:46:08Z" clock_decimal="16:42" sequence="1716857168855" zone="offensive" 
       event_type="takeaway">
  <description>Takeaway by Tyler Seguin in offensive zone</description>
  <attribution id="44157522-0f24-11e2-8525-18a905767e44" name="Stars" market="Dallas" team_goal="right" 
               sr_id="sr:team:3684" reference="25"/>
  <location coord_x="12" coord_y="636" action_area="downlow"/>

What are the valid stoppage types and reasons?

Valid stoppage types (stoppage_type):

  • Offside
  • Icing
  • Clock Problem
  • Puck Frozen
  • Puck in Crowd
  • Goalie Stopped (after SOG)
  • Referee or Linesperson
  • High Stick
  • Objects on Ice
  • Hand Pass
  • Premature Substitution
  • Puck in Netting
  • Puck in Benches
  • Net Dislodged Offensive Skater
  • Puck Frzn-Goalie-Bynd Ctr
  • Skater Puck Frozen

Valid stoppage type reasons (reason):

  • TV timeout
  • Home Timeout
  • Visitor Timeout
  • Player Injury
  • Official Injury
  • Rink Repair
  • Ice problem
  • Player Equipment
  • Video Review
  • Chlg Hm - off-side
  • Chlg Vis - off-side
  • Chlg Hm - goal interference
  • Chlg Vis - goal interference
  • Chlg League - off-side
  • Chlg League - goal interference
  • Switch sides
  • Chlg Hm - Missed stoppage
  • Chlg Vis - Missed stoppage
  • Chlg League - Missed stoppage
  • Chlg Hm - puck over glass
  • Chlg Vis - puck over glass
  • Chlg League - puck over glass
<event id="efeb60bb-a4ef-47f9-bcc9-8ba9509a5341" clock="5:05" official="true" updated="2024-02-27T16:02:45Z" wall_clock="2024-02-13T01:28:19Z" clock_decimal="5:05" sequence="1707787699495" event_type="stoppage">
    <description>Stoppage - Puck Frozen - TV timeout</description>
    <details stoppage_type="Puck Frozen" reason="TV timeout"/>
<event id="4032e5a1-1bcf-440c-9aaa-b8ab8604980c" clock="18:53" official="true" updated="2024-02-27T16:02:07Z" wall_clock="2024-02-13T00:09:23Z" clock_decimal="18:53" sequence="1707782963576" event_type="stoppage">
    <description>Stoppage - Goalie Stopped (after SOG)</description>
    <details stoppage_type="Goalie Stopped (after SOG)"/>
<event id="29827936-b9aa-42fe-9c5b-371072ccb427" clock="7:29" official="true" updated="2024-02-28T02:57:37Z" wall_clock="2024-02-28T01:26:58Z" clock_decimal="7:29" sequence="1709083618325" event_type="stoppage">
    <description>Stoppage - Goalie Stopped (after SOG) - Rink Repair</description>
    <details stoppage_type="Goalie Stopped (after SOG)" reason="Rink Repair"/>


Shot Types


What are the valid shot_typetype values?

Below is a list of the valid shot_typetype values. Note that these values will appear without underscores in the Game Play-By-Play feed.

  • wrist
  • slap
  • backhand
  • tip
  • snap
  • wrap_around
  • bat
  • cradle
  • poke
  • between_legs


Shot Zones


What are the names of the shot zones and where are they situated on the rink?

Below is a list of the shot zone names, with an included diagram for their locations. Note that these values will appear without underscores in the Game Play-By-Play feed.

  • defensive_zone
  • neutral_zone
  • center_point
  • left_point
  • right_point
  • low_center_point
  • low_left_point
  • low_right_point
  • outside_right_circle
  • inside_right_circle
  • high_slot
  • inside_left_circle
  • outside_left_circle
  • low_right
  • right_slot
  • slot
  • left_slot
  • low_left
  • low_slot
  • down_low



What are the names of the danger zones?

  • danger_high
  • danger_medium
  • danger_low
<danger_zones>
    <danger_zone goals="0" shots="0" missed_shots="1" blocked_att="0" shooting_pct="0.0" shot_att="1" name="danger_high"/>
    <danger_zone goals="1" shots="2" missed_shots="1" blocked_att="0" shooting_pct="50.0" shot_att="3" name="danger_medium"/>
    <danger_zone goals="0" shots="1" missed_shots="0" blocked_att="0" shooting_pct="0.0" shot_att="1" name="danger_low"/>
</danger_zones>


Penalty Types


What are the valid penalty types?

  • Bench Penalty
  • Boarding
  • Charging
  • Check From Behind
  • Clipping
  • Closing Hand on the Puck
  • Cross Checking
  • Delay of Game
  • Diving
  • Elbowing
  • Faceoff Violation
  • Fighting
  • Goalie Interference
  • High Sticking
  • Holding
  • Holding Stick
  • Hooking
  • Illegal Check to Head
  • Illegal Equipment
  • Illegal substitution (Penalty Shot)
  • Instigator
  • Interference
  • Interference - Displacing net (Penalty Shot)
  • Interference - Throwing object (Penalty Shot)
  • Interference from bench (Penalty Shot)
  • Interference in crease (Penalty Shot)
  • Interference on breakaway (Penalty Shot)
  • Kneeing
  • Misconduct
  • Players leaving bench (Penalty Shot)
  • Roughing
  • Slashing
  • Spearing
  • Too Many Men on the Ice
  • Tripping
  • Unsportsmanlike Conduct
  • Unsportsmanlike Conduct - Sitting on Boards
<event id="1de52554-0088-4458-b903-dafc41597df1" clock="11:00" official="true" updated="2023-11-16T07:27:40Z" wall_clock="2023-11-16T02:47:49Z" clock_decimal="11:00" sequence="1700102869494" event_type="penalty">
    <description>Penalty to Andrei Svechnikov 2 minutes for High Sticking (Drawn by Travis Sanheim)</description>
    <attribution id="44182a9d-0f24-11e2-8525-18a905767e44" name="Hurricanes" market="Carolina" team_goal="right" sr_id="sr:team:3680" reference="12"/>
    <location coord_x="264" coord_y="12" action_area="lowright"/>
    <details penalty_type="High Sticking" penalty_code="29" duration="2"/>
{
    "id": "1de52554-0088-4458-b903-dafc41597df1",
    "clock": "11:00",
    "official": true,
    "updated": "2023-11-16T07:27:40Z",
    "wall_clock": "2023-11-16T02:47:49Z",
    "duration": 2,
    "description": "Penalty to Andrei Svechnikov 2 minutes for High Sticking (Drawn by Travis Sanheim)",
    "clock_decimal": "11:00",
    "sequence": 1700102869494,
    "strength": "even",
    "penalty_type": "High Sticking",
    "event_type": "penalty",
    "attribution": {
        "id": "44182a9d-0f24-11e2-8525-18a905767e44",
        "name": "Hurricanes",
        "market": "Carolina",
        "team_goal": "right",
        "sr_id": "sr:team:3680",
        "reference": "12"
    },
    "location": {
        "coord_x": 264,
        "coord_y": 12,
        "action_area": "lowright"
    },
    "details": {
        "penalty_type": "High Sticking",
        "penalty_code": "29",
        "duration": 2
    },


Transactions


What are the valid transaction types and codes?

  • Activated - ACT
  • Assigned to Minors - MIN
  • Claimed - CL
  • Contract Expired - CEXP
  • Contract Extension - CEXT
  • Deceased - DEC
  • Declared Free Agency - FA
  • Drafted - DRA
  • League Suspension - SUS
  • Leave of Absence - ABS
  • Loaned to Non-League Team - LOAN
  • Not With Team - NWT
  • Other Transaction - TRAN
  • Placed on Injured Reserve - IR
  • Re-Signed - RSGN
  • Recalled from Minors - REC
  • Reinstated from Suspension - RSUS
  • Released - REL
  • Retired - RET
  • Selected in Expansion Draft - EDRA
  • Signed - SGN
  • Team Suspension - TSUS
  • Traded - TRD
  • Waived - WA
<player id="9786d7ed-73de-11e2-a3e0-f4ce4684ea4c" full_name="Alex Killorn" first_name="Alex" last_name="Killorn" position="F" primary_position="LW" jersey_number="17" sr_id="sr:player:311622" reference="8473986">
    <transfer id="1ae80f16-9ee4-4cd2-81d6-3767e0c72fa7" effective_date="2023-11-05" last_modified="2023-11-05T23:25:27Z" transaction_type="Activated" transaction_code="ACT" desc="The Anaheim Ducks activated F Alex Killorn.">
        <from_team id="441862de-0f24-11e2-8525-18a905767e44" name="Ducks" market="Anaheim" sr_id="sr:team:3675" reference="24"/>
        <to_team id="441862de-0f24-11e2-8525-18a905767e44" name="Ducks" market="Anaheim" sr_id="sr:team:3675" reference="24"/>
    </transfer>
{
    "id": "9786d7ed-73de-11e2-a3e0-f4ce4684ea4c",
    "full_name": "Alex Killorn",
    "first_name": "Alex",
    "last_name": "Killorn",
    "position": "F",
    "primary_position": "LW",
    "jersey_number": "17",
    "sr_id": "sr:player:311622",
    "reference": "8473986",
    "transfers": [
        {
            "id": "1ae80f16-9ee4-4cd2-81d6-3767e0c72fa7",
            "effective_date": "2023-11-05",
            "last_modified": "2023-11-05T23:25:27Z",
            "transaction_type": "Activated",
            "transaction_code": "ACT",
            "desc": "The Anaheim Ducks activated F Alex Killorn.",
            "from_team": {
                "id": "441862de-0f24-11e2-8525-18a905767e44",
                "name": "Ducks",
                "market": "Anaheim",
                "sr_id": "sr:team:3675",
                "reference": "24"
            },
            "to_team": {
                "id": "441862de-0f24-11e2-8525-18a905767e44",
                "name": "Ducks",
                "market": "Anaheim",
                "sr_id": "sr:team:3675",
                "reference": "24"
            }
        }
    ]
},


Standings & Rankings


What are the valid clinched playoff values for a team in the Rankings endpoint?

Here is a list of the clinched values and their definitions:

  • conference – The team has clinched the conference.
  • division – The team has clinched the division.
  • playoff_spot – The team has clinched a playoff berth.
  • presidents_trophy – The team has clinched the best record and home ice advantage.
<division id="1fad71d8-5b9e-4159-921b-9b98d0573f51" name="Atlantic" alias="ATLANTIC">
  <team id="4418464d-0f24-11e2-8525-18a905767e44" name="Panthers" market="Florida" sr_id="sr:team:3687" reference="13">
    <rank division="1" conference="3" clinched="division"/>
  </team>
  <team id="4416ba1a-0f24-11e2-8525-18a905767e44" name="Bruins" market="Boston" sr_id="sr:team:3677" reference="6">
    <rank division="2" conference="4" clinched="playoff_spot"/>
  </team>
  <team id="441730a9-0f24-11e2-8525-18a905767e44" name="Maple Leafs" market="Toronto" sr_id="sr:team:3693" reference="10">
    <rank division="3" conference="5" clinched="playoff_spot"/>
  </team>
  <team id="4417d3cb-0f24-11e2-8525-18a905767e44" name="Lightning" market="Tampa Bay" sr_id="sr:team:3694" reference="14">
    <rank division="4" conference="6" clinched="playoff_spot" wildcard="1"/>
  </team>
  <team id="44169bb9-0f24-11e2-8525-18a905767e44" name="Red Wings" market="Detroit" sr_id="sr:team:3685" reference="17">
    <rank division="5" conference="9" clinched="eliminated" wildcard="3"/>
  </team>
  <team id="4416d559-0f24-11e2-8525-18a905767e44" name="Sabres" market="Buffalo" sr_id="sr:team:3678" reference="7">
    <rank division="6" conference="12" clinched="eliminated" wildcard="6"/>
  </team>
  <team id="4416f5e2-0f24-11e2-8525-18a905767e44" name="Senators" market="Ottawa" sr_id="sr:team:3700" reference="9">
    <rank division="7" conference="14" clinched="eliminated" wildcard="8"/>
  </team>
  <team id="441713b7-0f24-11e2-8525-18a905767e44" name="Canadiens" market="Montreal" sr_id="sr:team:3690" reference="8">
    <rank division="8" conference="15" clinched="eliminated" wildcard="9"/>
  </team>
</division>
"divisions": [
  {
    "id": "1fad71d8-5b9e-4159-921b-9b98d0573f51",
    "name": "Atlantic",
    "alias": "ATLANTIC",
    "teams": [
      {
        "id": "4418464d-0f24-11e2-8525-18a905767e44",
        "name": "Panthers",
        "market": "Florida",
        "sr_id": "sr:team:3687",
        "reference": "13",
        "rank": {
          "division": 1,
          "conference": 3,
          "clinched": "division"
        }
      },
      {
        "id": "4416ba1a-0f24-11e2-8525-18a905767e44",
        "name": "Bruins",
        "market": "Boston",
        "sr_id": "sr:team:3677",
        "reference": "6",
        "rank": {
          "division": 2,
          "conference": 4,
          "clinched": "playoff_spot"
        }
      },
      {
        "id": "441730a9-0f24-11e2-8525-18a905767e44",
        "name": "Maple Leafs",
        "market": "Toronto",
        "sr_id": "sr:team:3693",
        "reference": "10",
        "rank": {
          "division": 3,
          "conference": 5,
          "clinched": "playoff_spot"
        }
      },
      {
        "id": "4417d3cb-0f24-11e2-8525-18a905767e44",
        "name": "Lightning",
        "market": "Tampa Bay",
        "sr_id": "sr:team:3694",
        "reference": "14",
        "rank": {
          "division": 4,
          "conference": 6,
          "clinched": "playoff_spot",
          "wildcard": 1
        }
      },
      {
        "id": "44169bb9-0f24-11e2-8525-18a905767e44",
        "name": "Red Wings",
        "market": "Detroit",
        "sr_id": "sr:team:3685",
        "reference": "17",
        "rank": {
          "division": 5,
          "conference": 9,
          "clinched": "eliminated",
          "wildcard": 3
        }
      },
      {
        "id": "4416d559-0f24-11e2-8525-18a905767e44",
        "name": "Sabres",
        "market": "Buffalo",
        "sr_id": "sr:team:3678",
        "reference": "7",
        "rank": {
          "division": 6,
          "conference": 12,
          "clinched": "eliminated",
          "wildcard": 6
        }
      },
      {
        "id": "4416f5e2-0f24-11e2-8525-18a905767e44",
        "name": "Senators",
        "market": "Ottawa",
        "sr_id": "sr:team:3700",
        "reference": "9",
        "rank": {
          "division": 7,
          "conference": 14,
          "clinched": "eliminated",
          "wildcard": 8
        }
      },
      {
        "id": "441713b7-0f24-11e2-8525-18a905767e44",
        "name": "Canadiens",
        "market": "Montreal",
        "sr_id": "sr:team:3690",
        "reference": "8",
        "rank": {
          "division": 8,
          "conference": 15,
          "clinched": "eliminated",
          "wildcard": 9
        }
      }
    ]
  },



Injuries


What are the valid player injury statuses?

  • Unknown
  • Day To Day
  • Out
  • Out For Season
  • Out Indefinitely
<injury id="0081cbd8-9309-4346-9e43-9b305040d260" start_date="2023-11-12" update_date="2023-11-12" 
comment="Lindgren has an injury to his upper body. The expected duration is unknown, per CapFriendly." 
desc="Upper Body" status="Day To Day"/>
"players": [
    {
        "id": "b6595de6-11a5-4020-889f-13bce84c0fe2",
        "full_name": "Ryan Lindgren",
        "first_name": "Ryan",
        "last_name": "Lindgren",
        "position": "D",
        "primary_position": "D",
        "jersey_number": "55",
        "sr_id": "sr:player:983729",
        "reference": "8479324",
        "injuries": [
            {
                "id": "0081cbd8-9309-4346-9e43-9b305040d260",
                "start_date": "2023-11-12",
                "update_date": "2023-11-12",
                "comment": "Lindgren has an injury to his upper body. The expected duration is unknown, per CapFriendly.",
                "desc": "Upper Body",
                "status": "Day To Day"
            }
        ]
    },


On-Ice Data


How is the on_ice data handled in the Game Play-by-Play endpoint?

Most events contain on_ice team and player information. However, this data is not guaranteed for every event within the Game Play-by-Play feed.

<on_ice>
    <team sr_id="sr:team:3699" id="44179d47-0f24-11e2-8525-18a905767e44" name="Flyers" market="Philadelphia" reference="4">
        <players>
            <player sr_id="sr:player:180841" position="F" primary_position="C" id="4334ad68-0f24-11e2-8525-18a905767e44" full_name="Sean Couturier" jersey_number="14" reference="8476461"/>
            <player sr_id="sr:player:899388" position="D" primary_position="D" id="1e7bc5f5-2f34-4940-abab-8bc1f90ea86e" full_name="Travis Sanheim" jersey_number="6" reference="8477948"/>
            <player sr_id="sr:player:983671" position="G" primary_position="G" id="104295a8-ec3a-46c2-bd03-b252d119a5b7" full_name="Carter Hart" jersey_number="79" reference="8479394"/>
            <player sr_id="sr:player:2072747" position="F" primary_position="C" id="344733e3-9173-4945-81cd-857dad5e227c" full_name="Tyson Foerster" jersey_number="71" reference="8482159"/>
            <player sr_id="sr:player:181157" position="F" primary_position="RW" id="436d74ac-0f24-11e2-8525-18a905767e44" full_name="Cam Atkinson" jersey_number="89" reference="8474715"/>
            <player sr_id="sr:player:1650163" position="D" primary_position="D" id="3b669b2c-d152-4114-9bf1-8f68577a7110" full_name="Cam York" jersey_number="8" reference="8481546"/>
        </players>
    </team>
    <team sr_id="sr:team:3680" id="44182a9d-0f24-11e2-8525-18a905767e44" name="Hurricanes" market="Carolina" reference="12">
        <players>
            <player sr_id="sr:player:899408" position="D" primary_position="D" id="03548fbd-cba9-4287-b585-1cedf431f008" full_name="Brady Skjei" jersey_number="76" reference="8476869"/>
            <player sr_id="sr:player:606988" position="F" primary_position="LW" id="21050a80-e999-47ee-825d-074608dae259" full_name="Jordan Martinook" jersey_number="48" reference="8476921"/>
            <player sr_id="sr:player:914036" position="D" primary_position="D" id="2944b06b-c6ba-4797-a21e-901a404b6124" full_name="Brett Pesce" jersey_number="22" reference="8477488"/>
            <player sr_id="sr:player:31015" position="F" primary_position="C" id="433ee768-0f24-11e2-8525-18a905767e44" full_name="Jordan Staal" jersey_number="11" reference="8473533"/>
            <player sr_id="sr:player:1606552" position="G" primary_position="G" id="73f0991a-46b7-4ccc-895a-5ca4251effc3" full_name="Pyotr Kochetkov" jersey_number="52" reference="8481611"/>
            <player sr_id="sr:player:190785" position="F" primary_position="LW" id="8274d1f8-c050-451d-bd75-dd15bd381481" full_name="Teuvo Teravainen" jersey_number="86" reference="8476882"/>
        </players>
    </team>
</on_ice>
"on_ice": [
    {
        "team": {
            "sr_id": "sr:team:3680",
            "id": "44182a9d-0f24-11e2-8525-18a905767e44",
            "name": "Hurricanes",
            "market": "Carolina",
            "reference": "12",
            "players": [
                {
                    "sr_id": "sr:player:899408",
                    "position": "D",
                    "primary_position": "D",
                    "id": "03548fbd-cba9-4287-b585-1cedf431f008",
                    "full_name": "Brady Skjei",
                    "jersey_number": "76",
                    "reference": "8476869"
                },
                {
                    "sr_id": "sr:player:1040189",
                    "position": "F",
                    "primary_position": "C",
                    "id": "cf8683b6-a0bd-4acd-88bb-de9178ac0444",
                    "full_name": "Martin Necas",
                    "jersey_number": "88",
                    "reference": "8480039"
                },
                {
                    "sr_id": "sr:player:1283448",
                    "position": "F",
                    "primary_position": "C",
                    "id": "cf33c0f3-ee06-4a98-90bc-11279dbdd042",
                    "full_name": "Jesperi Kotkaniemi",
                    "jersey_number": "82",
                    "reference": "8480829"
                },
                {
                    "sr_id": "sr:player:1383323",
                    "position": "F",
                    "primary_position": "RW",
                    "id": "75630a9f-1e79-4caf-afd8-ddae4e87ad6b",
                    "full_name": "Andrei Svechnikov",
                    "jersey_number": "37",
                    "reference": "8480830"
                },
                {
                    "sr_id": "sr:player:914036",
                    "position": "D",
                    "primary_position": "D",
                    "id": "2944b06b-c6ba-4797-a21e-901a404b6124",
                    "full_name": "Brett Pesce",
                    "jersey_number": "22",
                    "reference": "8477488"
                },
                {
                    "sr_id": "sr:player:1606552",
                    "position": "G",
                    "primary_position": "G",
                    "id": "73f0991a-46b7-4ccc-895a-5ca4251effc3",
                    "full_name": "Pyotr Kochetkov",
                    "jersey_number": "52",
                    "reference": "8481611"
                }
            ]
        }
    },
    {
        "team": {
            "sr_id": "sr:team:3699",
            "id": "44179d47-0f24-11e2-8525-18a905767e44",
            "name": "Flyers",
            "market": "Philadelphia",
            "reference": "4",
            "players": [
                {
                    "sr_id": "sr:player:308014",
                    "position": "F",
                    "primary_position": "C",
                    "id": "516869ed-618c-11e2-9e6b-f4ce4684ea4c",
                    "full_name": "Scott Laughton",
                    "jersey_number": "21",
                    "reference": "8476872"
                },
                {
                    "sr_id": "sr:player:1117731",
                    "position": "F",
                    "primary_position": "C",
                    "id": "158053c4-d6db-4d3b-b859-267f6bcfa863",
                    "full_name": "Ryan Poehling",
                    "jersey_number": "25",
                    "reference": "8480068"
                },
                {
                    "sr_id": "sr:player:899388",
                    "position": "D",
                    "primary_position": "D",
                    "id": "1e7bc5f5-2f34-4940-abab-8bc1f90ea86e",
                    "full_name": "Travis Sanheim",
                    "jersey_number": "6",
                    "reference": "8477948"
                },
                {
                    "sr_id": "sr:player:983671",
                    "position": "G",
                    "primary_position": "G",
                    "id": "104295a8-ec3a-46c2-bd03-b252d119a5b7",
                    "full_name": "Carter Hart",
                    "jersey_number": "79",
                    "reference": "8479394"
                },
                {
                    "sr_id": "sr:player:1401453",
                    "position": "F",
                    "primary_position": "LW",
                    "id": "ef53d8d0-cf69-4546-b515-a3d0854e154d",
                    "full_name": "Joel Farabee",
                    "jersey_number": "86",
                    "reference": "8480797"
                },
                {
                    "sr_id": "sr:player:1650163",
                    "position": "D",
                    "primary_position": "D",
                    "id": "3b669b2c-d152-4114-9bf1-8f68577a7110",
                    "full_name": "Cam York",
                    "jersey_number": "8",
                    "reference": "8481546"
                }
            ]
        }
    }
],


Languages


Do you provide your feeds in any languages other than English?

Currently, we provide our feeds in 3 languages: English, Russian, and Simplified Chinese. The codes are as follows:

  • Brazilian Portuguese = br
  • English = eu
  • Spanish = es
  • French = fr
  • Russian = ru
  • Simplified Chinese = zh

Please note, our translated feeds include translated teams, players, play-by-play descriptions. The feeds themselves are in English, but the content of the attributes has been translated.



Rink Dimensions


What is the scale of the X/Y coordinates?

The rink we use is 2400(x) by 1020(y). The scale is in inches.



All-Star Game


How do you cover the NHL All-Star Game?

Please see our dedicated All-Star FAQ for questions and sample data.



🙋

More questions?

Reach out to [email protected] for further assistance.