Integration GuidesDocs
Coverage MatrixDocumentationChange LogLog InContact Us
Integration Guides

Live Game Tracking

Track live NHL game updates, including scores, statistics, play-by-play events, and faceoffs.

Prerequisite: Confirm Season Availability and Coverage

Understanding which seasons are available, and what level of data coverage is provided, is essential for making reliable and accurate API calls.

  • Use the Seasons feed to view all available seasons in the API.
  • Reference the coverage node in a schedule or game endpoint before a game to determine its level of coverage.
📆

Starting Year for Each Season

It's important to note that the season parameter uses the starting year of the season; for example, to retrieve data for the 2024-25 NHL season, you would use 2024 as the value for the season parameter.


Available Game Statistics

For a list of game stats we provide, see our NHL Statistics Summary page.


Accessing Schedules and Live Data

Start by pulling game schedules to obtain game IDs.

  1. Get game IDs (game.id) by querying one of the Schedule feeds.

  2. Use the game.id to access live data from any of the following push and RESTful feeds when the game.status is created or inprogress. The table below shows which feeds correspond to each data type:


    Data Type

    Recommended Feeds

    Play-by-Play/Event Timelines


    Scoring Updates and Boxscore Data

    Game Statistics Beyond Boxscore Data


    Analytics (Corsi, Fenwick, etc.)

    Detailed Faceoff Stats

    Shot Zone Stats

    Detailed Time on Ice Data


    🎯

    Choose the Most Targeted Feed

    Some feeds overlap in the type of data they provide, which can simplify how you capture data. For the most efficient integration, use the feeds designed specifically for the data type you need.

    Example: While both Game Boxscore and Game Play-by-Play include scoring updates, the Game Boxscore feed is optimized for tracking scoring changes, helping you avoid unnecessary data processing.

    Use the Data Points table for each endpoint (e.g.,Game Boxscore) to see all possible fields and definitions. You can also explore the Game Status Workflow page to see how a game progresses and how its status impacts the data returned.



Live Data Scenarios


Play-by-Play and Event Data

Play-by-play data provides a detailed, sequential account of every event in a game, including shots, penalties, goals, faceoffs, substitutions, icing events and more. This data is useful for analyzing game flow, player performance, and team decisions in real time.

You can use the following feeds to access play-by-play data:

  • Game Play-by-Play - The most comprehensive live data feed, returning detailed information for a specific game using its unique game.id.

  • Push Events - Provides a continuous stream of timeline data for all games currently live, with query filtering options to target specific games. Always keep a RESTful backup to track matches in case a Push feed disconnects, since you won’t resume where you left off. For details, see Push Feeds.

Note: There are some differences between REST feeds and their Push feed equivalents (e.g., Game Play-by-Play, and Push Events) with REST feeds typically providing more data. To see the complete set of fields an endpoint can return, review its Data Points section.

Game Play-by-Play Event Samples
<event id="21da6835-7076-43f6-a77b-c4267bec43c5" clock="18:48" official="true" updated="2025-07-17T22:01:07Z" wall_clock="2025-01-04T00:10:25Z" clock_decimal="18:48" sequence="1735949425374" home_points="0" away_points="0" zone="offensive" event_type="shotsaved">
      <description>Shot on goal by Anton Lundell saved by Tristan Jarry</description>
      <attribution id="4418464d-0f24-11e2-8525-18a905767e44" name="Panthers" market="Florida" team_goal="right" sr_id="sr:team:3687" reference="13"/>
      <location coord_x="420" coord_y="300" action_area="insiderightcircle"/>
      <details shot_type="backhand" distance="30"/>
      <statistics>
        <shotagainst saved="true" strength="even" zone="defensive">
          <team id="4417b7d7-0f24-11e2-8525-18a905767e44" name="Penguins" market="Pittsburgh" sr_id="sr:team:3697" reference="5"/>
          <player id="453cb83d-bdd1-4862-aa4e-e9f32f458f82" full_name="Tristan Jarry" jersey_number="35" sr_id="sr:player:904050" reference="8477465" goals_against="2"/>
        </shotagainst>
        <shot strength="even" zone="offensive">
          <team id="4418464d-0f24-11e2-8525-18a905767e44" name="Panthers" market="Florida" sr_id="sr:team:3687" reference="13"/>
          <player id="53a04226-4657-4064-8764-9cd526f966a7" full_name="Anton Lundell" jersey_number="15" sr_id="sr:player:1571752" reference="8482113"/>
        </shot>
      </statistics>
      <on_ice>
        <team sr_id="sr:team:3697" id="4417b7d7-0f24-11e2-8525-18a905767e44" name="Penguins" market="Pittsburgh" reference="5">
          <players>
            <player sr_id="sr:player:904050" position="G" primary_position="G" id="453cb83d-bdd1-4862-aa4e-e9f32f458f82" full_name="Tristan Jarry" jersey_number="35" reference="8477465"/>
            <player sr_id="sr:player:2032037" position="F" primary_position="LW" id="eb79d48e-0d6d-43bd-8a7c-dd3e2843a06a" full_name="Drew O'Connor" jersey_number="10" reference="8482055"/>
            <player sr_id="sr:player:1651067" position="F" primary_position="C" id="419c4c22-88e3-49b0-badc-f29060de9e1f" full_name="Philip Tomasino" jersey_number="53" reference="8481577"/>
            <player sr_id="sr:player:556430" position="F" primary_position="C" id="4512f2eb-e58f-4156-ac4f-e186b9c7171c" full_name="Kevin Hayes" jersey_number="13" reference="8475763"/>
            <player sr_id="sr:player:906454" position="D" primary_position="D" id="d1d9d464-b904-49d1-a9ef-9e5b6e312a85" full_name="Ryan Graves" jersey_number="27" reference="8477435"/>
            <player sr_id="sr:player:2322739" position="D" primary_position="D" id="9131773f-5f63-49cc-8cd8-b1b130cf22c0" full_name="Owen Pickering" jersey_number="38" reference="8483503"/>
          </players>
        </team>
        <team sr_id="sr:team:3687" id="4418464d-0f24-11e2-8525-18a905767e44" name="Panthers" market="Florida" reference="13">
          <players>
            <player sr_id="sr:player:955588" position="F" primary_position="C" id="e7a46d95-4d97-4fd9-afd4-2be1d6f49922" full_name="Jesper Boqvist" jersey_number="70" reference="8480003"/>
            <player sr_id="sr:player:1571752" position="F" primary_position="C" id="53a04226-4657-4064-8764-9cd526f966a7" full_name="Anton Lundell" jersey_number="15" reference="8482113"/>
            <player sr_id="sr:player:1337224" position="D" primary_position="D" id="d5d0e568-bf2c-4e02-bc3b-0df9e3633599" full_name="Adam Boqvist" jersey_number="34" reference="8480871"/>
            <player sr_id="sr:player:1650583" position="G" primary_position="G" id="726c97b6-9611-450b-8f2f-c5f0bdd1144b" full_name="Spencer Knight" jersey_number="30" reference="8481519"/>
            <player sr_id="sr:player:904656" position="F" primary_position="C" id="10205c85-5f02-431d-909e-13c33bd18b05" full_name="Carter Verhaeghe" jersey_number="23" reference="8477409"/>
            <player sr_id="sr:player:351536" position="D" primary_position="D" id="e6fc4e06-9c16-11e2-a01b-f4ce4684ea4c" full_name="Nate Schmidt" jersey_number="88" reference="8477220"/>
          </players>
        </team>
      </on_ice>
    </event>
<event id="e72af144-808c-4ffe-b530-e6455e197f57" clock="18:46" official="true" updated="2025-07-17T22:01:08Z" wall_clock="2025-01-04T00:10:27Z" clock_decimal="18:46" sequence="1735949427364" home_points="0" away_points="0" zone="defensive" event_type="hit">
        <description>Owen Pickering credited with hit on Anton Lundell in defensive zone</description>
        <attribution id="4417b7d7-0f24-11e2-8525-18a905767e44" name="Penguins" market="Pittsburgh" team_goal="left" sr_id="sr:team:3697" reference="5"/>
        <location coord_x="12" coord_y="384" action_area="defensivezone"/>
        <statistics>
          <hittee strength="even" zone="offensive">
            <team id="4418464d-0f24-11e2-8525-18a905767e44" name="Panthers" market="Florida" sr_id="sr:team:3687" reference="13"/>
            <player id="53a04226-4657-4064-8764-9cd526f966a7" full_name="Anton Lundell" jersey_number="15" sr_id="sr:player:1571752" reference="8482113"/>
          </hittee>
          <hit strength="even" zone="defensive">
            <team id="4417b7d7-0f24-11e2-8525-18a905767e44" name="Penguins" market="Pittsburgh" sr_id="sr:team:3697" reference="5"/>
            <player id="9131773f-5f63-49cc-8cd8-b1b130cf22c0" full_name="Owen Pickering" jersey_number="38" sr_id="sr:player:2322739" reference="8483503"/>
          </hit>
        </statistics>
        <on_ice>
          <team sr_id="sr:team:3697" id="4417b7d7-0f24-11e2-8525-18a905767e44" name="Penguins" market="Pittsburgh" reference="5">
            <players>
              <player sr_id="sr:player:904050" position="G" primary_position="G" id="453cb83d-bdd1-4862-aa4e-e9f32f458f82" full_name="Tristan Jarry" jersey_number="35" reference="8477465"/>
              <player sr_id="sr:player:2032037" position="F" primary_position="LW" id="eb79d48e-0d6d-43bd-8a7c-dd3e2843a06a" full_name="Drew O'Connor" jersey_number="10" reference="8482055"/>
              <player sr_id="sr:player:1651067" position="F" primary_position="C" id="419c4c22-88e3-49b0-badc-f29060de9e1f" full_name="Philip Tomasino" jersey_number="53" reference="8481577"/>
              <player sr_id="sr:player:556430" position="F" primary_position="C" id="4512f2eb-e58f-4156-ac4f-e186b9c7171c" full_name="Kevin Hayes" jersey_number="13" reference="8475763"/>
              <player sr_id="sr:player:906454" position="D" primary_position="D" id="d1d9d464-b904-49d1-a9ef-9e5b6e312a85" full_name="Ryan Graves" jersey_number="27" reference="8477435"/>
              <player sr_id="sr:player:2322739" position="D" primary_position="D" id="9131773f-5f63-49cc-8cd8-b1b130cf22c0" full_name="Owen Pickering" jersey_number="38" reference="8483503"/>
            </players>
          </team>
        </on_ice>
        <in_penalty>
          <team sr_id="sr:team:3687" id="4418464d-0f24-11e2-8525-18a905767e44" name="Panthers" market="Florida" reference="13">
            <players>
              <player sr_id="sr:player:983629" position="F" primary_position="LW" id="49889c6c-a26c-4294-bd59-445a24d73570" full_name="Matthew Tkachuk" jersey_number="19" reference="8479314"/>
            </players>
          </team>
        </in_penalty>
      </event>
<event id="7bf92fa0-471b-43e3-a44e-d34a1a2652e9" clock="17:37" official="true" updated="2025-07-17T22:01:11Z" wall_clock="2025-01-04T00:11:36Z" clock_decimal="17:37" sequence="1735949496445" home_points="0" away_points="0" event_type="stoppage">
        <description>Stoppage - Icing</description>
        <details stoppage_type="Icing"/>
        <on_ice>
          <team sr_id="sr:team:3697" id="4417b7d7-0f24-11e2-8525-18a905767e44" name="Penguins" market="Pittsburgh" reference="5">
            <players>
              <player sr_id="sr:player:980369" position="D" primary_position="D" id="a97bdbff-c16b-42c3-a3de-e1e8aa8ad9dc" full_name="Matt Grzelcyk" jersey_number="24" reference="8476891"/>
              <player sr_id="sr:player:34592" position="D" primary_position="D" id="42fa3dcd-0f24-11e2-8525-18a905767e44" full_name="Erik Karlsson" jersey_number="65" reference="8474578"/>
              <player sr_id="sr:player:904050" position="G" primary_position="G" id="453cb83d-bdd1-4862-aa4e-e9f32f458f82" full_name="Tristan Jarry" jersey_number="35" reference="8477465"/>
              <player sr_id="sr:player:1726708" position="F" primary_position="C" id="070ff077-e59b-4135-b060-352ee716bc7e" full_name="Blake Lizotte" jersey_number="46" reference="8481481"/>
              <player sr_id="sr:player:354820" position="F" primary_position="LW" id="dedda775-c1af-4db3-8db5-43df9b22bb63" full_name="Matt Nieto" jersey_number="83" reference="8476442"/>
              <player sr_id="sr:player:895794" position="F" primary_position="C" id="8c8c5fd6-272e-4c17-ae32-2e3d8e5a1aa8" full_name="Noel Acciari" jersey_number="55" reference="8478569"/>
            </players>
          </team>
          <team sr_id="sr:team:3687" id="4418464d-0f24-11e2-8525-18a905767e44" name="Panthers" market="Florida" reference="13">
            <players>
              <player sr_id="sr:player:600624" position="D" primary_position="D" id="a24e0f46-9cad-49dd-b07f-7835e0848d99" full_name="Gustav Forsling" jersey_number="42" reference="8478055"/>
              <player sr_id="sr:player:2173266" position="F" primary_position="RW" id="187ba4fe-9464-4e9c-917b-d40f3b78832f" full_name="Mackie Samoskevich" jersey_number="25" reference="8482713"/>
              <player sr_id="sr:player:1650583" position="G" primary_position="G" id="726c97b6-9611-450b-8f2f-c5f0bdd1144b" full_name="Spencer Knight" jersey_number="30" reference="8481519"/>
              <player sr_id="sr:player:1051385" position="F" primary_position="LW" id="8d8f90bf-5c5c-46b6-9e49-da553f1dad8c" full_name="A.J. Greer" jersey_number="10" reference="8478421"/>
              <player sr_id="sr:player:179663" position="F" primary_position="LW" id="ec8c4f98-afc4-49c9-90ef-0a37e8a84b32" full_name="Tomas Nosek" jersey_number="92" reference="8477931"/>
              <player sr_id="sr:player:753950" position="D" primary_position="D" id="447fb3e7-2174-4db3-9dec-421728327cc4" full_name="Aaron Ekblad" jersey_number="5" reference="8477932"/>
            </players>
          </team>
        </on_ice>
      </event>
    <events>
      <event id="e289a451-4740-4a19-8506-996788ec524c" clock="5:00" official="true" updated="2025-07-17T22:11:45Z" wall_clock="2025-01-04T02:42:07Z" clock_decimal="5:00" sequence="1735958527000" home_points="2" away_points="2" event_type="substitution">
        <description>Panthers substitution (Aleksander Barkov, Sam Reinhart, Carter Verhaeghe)</description>
        <attribution id="4418464d-0f24-11e2-8525-18a905767e44" name="Panthers" market="Florida" team_goal="left" sr_id="sr:team:3687" reference="13"/>
        <players>
          <player sr_id="sr:player:184453" id="0cd5158e-f92b-11e2-a133-f4ce4684ea4c" full_name="Aleksander Barkov" jersey_number="16" reference="8477493"/>
          <player sr_id="sr:player:904656" id="10205c85-5f02-431d-909e-13c33bd18b05" full_name="Carter Verhaeghe" jersey_number="23" reference="8477409"/>
          <player sr_id="sr:player:610972" id="d4fb4274-a59f-4705-821e-dba04967570f" full_name="Sam Reinhart" jersey_number="13" reference="8477933"/>
        </players>
      </event>
      <event id="4199605e-e1db-4fb2-aa53-d6403a39485b" clock="5:00" official="true" updated="2025-07-17T22:11:45Z" wall_clock="2025-01-04T02:42:07Z" clock_decimal="5:00" sequence="1735958527010" home_points="2" away_points="2" event_type="substitution">
        <description>Penguins substitution (Rickard Rakell, Erik Karlsson, Sidney Crosby)</description>
        <attribution id="4417b7d7-0f24-11e2-8525-18a905767e44" name="Penguins" market="Pittsburgh" team_goal="right" sr_id="sr:team:3697" reference="5"/>
        <players>
          <player sr_id="sr:player:31007" id="433de553-0f24-11e2-8525-18a905767e44" full_name="Sidney Crosby" jersey_number="87" reference="8471675"/>
          <player sr_id="sr:player:308098" id="42789ae7-0f24-11e2-8525-18a905767e44" full_name="Rickard Rakell" jersey_number="67" reference="8476483"/>
          <player sr_id="sr:player:34592" id="42fa3dcd-0f24-11e2-8525-18a905767e44" full_name="Erik Karlsson" jersey_number="65" reference="8474578"/>
        </players>
      </event>

You can use play-by-play data to render immersive visuals of the live game by mapping events such as shots, goals, and hits directly onto a rink graphic.

For example, you can use event_type (e.g., shotsaved) to filter for specific types of events, while description provides context for what happened. The location.coord_x and location.coord_y fields let you plot the event on the rink, and details like shot_type and distance can drive play animations. Attributes such as attribution.name (team) and player.full_name provide team and player labels to complete the visualization.

👍

Play-by-Play FAQs

For more details, including the complete list of event types and information on event latency, see the NHL FAQ page .

You can also generate a play-by-play timeline by using fields such as event_type (e.g., faceoff, goaliesave, hit), description, and clock to display the sequence of events within each period. Combine these with player.full_name, attribution.name (team), and location.coord_x / coord_y to show who was involved and where the play occurred, creating a clear, chronological view of game action.

📸

Accessing Headshots and Team Logos

To access team logos and player headshots, use the Images API .


Scoring Updates

Scoring updates include top-level data by period, such as team goals per sequence, that you can use to map to the live clock while displaying your boxscore. They also capture details like goals, assists, strength (even, power play, or shorthanded), and the players involved, which can be aggregated to highlight team leaders in goals, assists, and total points.

The following feeds are optimized to track scores by showing high-level data avoiding unnecessary data processing to render more simple things like a boxscore as opposed to the data needed for a full timeline or rink graphic

  • Game Boxscore - Provides top-level team scores by quarter and full statistics for team leaders in assists, goals, and points.
  • Push Clock - Provides a game clock feed with high level scoring and strength information, including the most recent game event.
  • Game Summary - Provides boxscore information along with detailed team and player statistics. Use this feed if you want richer data for your boxscores. If your primary goal is to track simple score progression or render high-level boxscores, the Game Boxscore and Push Clock feeds are better optimized for that use case.
  • Push Statistics - Provides detailed, real-time game stats at the team and player level.

Together, these feeds give you flexible options for rendering scoreboards, boxscores, and leaderboards without the overhead of play-by-play or timeline data.

Note: There are some differences between REST feeds and their Push feed equivalents (e.g., Game Summary, and Push Statistics) with REST feeds typically providing more data. To see the complete set of fields an endpoint can return, review its Data Points section.

Game Boxscore Samples
<team id="4418464d-0f24-11e2-8525-18a905767e44" name="Panthers" market="Florida" points="3" sr_id="sr:team:3687" reference="13" strength="even" home="true">
  <record wins="24" losses="14" overtime_losses="2"/>
  <scoring>
    <period number="1" sequence="1" points="0"/>
    <period number="2" sequence="2" points="1"/>
    <period number="3" sequence="3" points="1"/>
    <overtime number="1" sequence="4" points="0"/>
    <shootout number="1" sequence="5" points="1"/>
  </scoring>
<leaders>
      <points>
        <player id="0cd5158e-f92b-11e2-a133-f4ce4684ea4c" full_name="Aleksander Barkov" first_name="Aleksander" last_name="Barkov" handedness="L" position="F" primary_position="C" jersey_number="16" sr_id="sr:player:184453" reference="8477493">
          <statistics goals="0" assists="1" penalties="0" penalty_minutes="0" shots="2" blocked_att="1" missed_shots="0" hits="2" giveaways="0" takeaways="1" blocked_shots="1" faceoffs_won="8" faceoffs_lost="8" plus_minus="1" shooting_pct="0.0" faceoff_win_pct="50.0" faceoffs="16" points="1" emptynet_goals="0" overtime_goals="0" overtime_assists="0" overtime_shots="0" penalties_major="0" penalties_match="0" penalties_minor="0" penalties_misconduct="0" first_star="0" second_star="0" third_star="0">
            <powerplay shots="0" goals="0" missed_shots="0" assists="0" faceoffs="3" faceoffs_won="1" faceoffs_lost="2" faceoff_win_pct="33.3"/>
            <shorthanded shots="0" goals="0" missed_shots="0" assists="0" faceoffs="5" faceoffs_won="3" faceoffs_lost="2" faceoff_win_pct="60.0"/>
            <evenstrength shots="2" goals="0" missed_shots="0" assists="1" faceoffs="8" faceoffs_won="4" faceoffs_lost="4" faceoff_win_pct="50.0"/>
            <penalty shots="0" goals="0" missed_shots="0"/>
            <shootout shots="1" goals="0" missed_shots="0"/>
            <periods>
              <period id="bac976c8-b028-47e1-9529-53ce24c304e6" sequence="1" number="1" type="REG" goals="0" assists="0" penalties="0" penalty_minutes="0" shots="1" blocked_att="0" missed_shots="0" hits="1" giveaways="0" takeaways="0" blocked_shots="0" faceoffs_won="2" faceoffs_lost="1" number_of_shifts="8" points="0" shooting_pct="0.0" faceoff_win_pct="66.7" faceoffs="3">
                <powerplay shots="0" goals="0" missed_shots="0" assists="0"/>
                <shorthanded shots="0" goals="0" missed_shots="0" assists="0"/>
                <evenstrength shots="1" goals="0" missed_shots="0" assists="0"/>
                <penalty shots="0" goals="0" missed_shots="0"/>
              </period>
              <period id="39c1f95b-6624-4614-b184-31beb2e2feea" sequence="2" number="2" type="REG" goals="0" assists="1" penalties="0" penalty_minutes="0" shots="1" blocked_att="0" missed_shots="0" hits="1" giveaways="0" takeaways="1" blocked_shots="0" faceoffs_won="2" faceoffs_lost="4" number_of_shifts="9" points="1" shooting_pct="0.0" faceoff_win_pct="33.3" faceoffs="6">
                <powerplay shots="0" goals="0" missed_shots="0" assists="0"/>
                <shorthanded shots="0" goals="0" missed_shots="0" assists="0"/>
                <evenstrength shots="1" goals="0" missed_shots="0" assists="1"/>
                <penalty shots="0" goals="0" missed_shots="0"/>
              </period>
              <period id="50c566a4-f2d9-4798-b6ba-097135402361" sequence="3" number="3" type="REG" goals="0" assists="0" penalties="0" penalty_minutes="0" shots="0" blocked_att="1" missed_shots="0" hits="0" giveaways="0" takeaways="0" blocked_shots="1" faceoffs_won="4" faceoffs_lost="3" number_of_shifts="9" points="0" shooting_pct="0.0" faceoff_win_pct="57.1" faceoffs="7">
                <powerplay shots="0" goals="0" missed_shots="0" assists="0"/>
                <shorthanded shots="0" goals="0" missed_shots="0" assists="0"/>
                <evenstrength shots="0" goals="0" missed_shots="0" assists="0"/>
                <penalty shots="0" goals="0" missed_shots="0"/>
              </period>
              <period id="4d1788e2-6375-45a0-9572-51bc699a0b49" sequence="4" number="1" type="OT" goals="0" assists="0" penalties="0" penalty_minutes="0" shots="0" blocked_att="0" missed_shots="0" hits="0" giveaways="0" takeaways="0" blocked_shots="0" faceoffs_won="0" faceoffs_lost="0" number_of_shifts="2" points="0" shooting_pct="0.0" faceoff_win_pct="0.0" faceoffs="0">
                <powerplay shots="0" goals="0" missed_shots="0" assists="0"/>
                <shorthanded shots="0" goals="0" missed_shots="0" assists="0"/>
                <evenstrength shots="0" goals="0" missed_shots="0" assists="0"/>
                <penalty shots="0" goals="0" missed_shots="0"/>
              </period>
              <period id="b116d7ef-48df-4541-b969-4a5487835e75" sequence="5" number="1" type="SO" goals="0" assists="0" penalties="0" penalty_minutes="0" shots="1" blocked_att="0" missed_shots="0" hits="0" giveaways="0" takeaways="0" blocked_shots="0" faceoffs_won="0" faceoffs_lost="0" points="0" shooting_pct="0.0" faceoff_win_pct="0.0" faceoffs="0">
                <powerplay shots="0" goals="0" missed_shots="0" assists="0"/>
                <shorthanded shots="0" goals="0" missed_shots="0" assists="0"/>
                <evenstrength shots="1" goals="0" missed_shots="0" assists="0"/>
                <penalty shots="0" goals="0" missed_shots="0"/>
              </period>
            </periods>
          </statistics>
          <time_on_ice shifts="28" powerplay="3:32" shorthanded="3:17" avg="00:42" evenstrength="13:05" total="19:54" overtime="1:47"/>
        </player>
        <player id="a24e0f46-9cad-49dd-b07f-7835e0848d99" full_name="Gustav Forsling" first_name="Gustav" last_name="Forsling" handedness="L" position="D" primary_position="D" jersey_number="42" sr_id="sr:player:600624" reference="8478055">
          <statistics goals="1" assists="0" penalties="0" penalty_minutes="0" shots="3" blocked_att="2" missed_shots="1" hits="1" giveaways="0" takeaways="0" blocked_shots="0" faceoffs_won="0" faceoffs_lost="0" plus_minus="1" shooting_pct="33.3" faceoff_win_pct="0.0" faceoffs="0" points="1" emptynet_goals="0" overtime_goals="0" overtime_assists="0" overtime_shots="0" penalties_major="0" penalties_match="0" penalties_minor="0" penalties_misconduct="0" first_star="0" second_star="0" third_star="0">
            <powerplay shots="0" goals="0" missed_shots="0" assists="0" faceoffs="0" faceoffs_won="0" faceoffs_lost="0" faceoff_win_pct="0.0"/>
            <shorthanded shots="1" goals="0" missed_shots="0" assists="0" faceoffs="0" faceoffs_won="0" faceoffs_lost="0" faceoff_win_pct="0.0"/>
            <evenstrength shots="2" goals="1" missed_shots="1" assists="0" faceoffs="0" faceoffs_won="0" faceoffs_lost="0" faceoff_win_pct="0.0"/>
            <penalty shots="0" goals="0" missed_shots="0"/>
            <shootout shots="0" goals="0" missed_shots="0"/>
            <periods>
              <period id="bac976c8-b028-47e1-9529-53ce24c304e6" sequence="1" number="1" type="REG" goals="0" assists="0" penalties="0" penalty_minutes="0" shots="0" blocked_att="0" missed_shots="0" hits="0" giveaways="0" takeaways="0" blocked_shots="0" faceoffs_won="0" faceoffs_lost="0" number_of_shifts="11" points="0" shooting_pct="0.0" faceoff_win_pct="0.0" faceoffs="0">
                <powerplay shots="0" goals="0" missed_shots="0" assists="0"/>
                <shorthanded shots="0" goals="0" missed_shots="0" assists="0"/>
                <evenstrength shots="0" goals="0" missed_shots="0" assists="0"/>
                <penalty shots="0" goals="0" missed_shots="0"/>
              </period>
              <period id="39c1f95b-6624-4614-b184-31beb2e2feea" sequence="2" number="2" type="REG" goals="1" assists="0" penalties="0" penalty_minutes="0" shots="2" blocked_att="1" missed_shots="0" hits="1" giveaways="0" takeaways="0" blocked_shots="0" faceoffs_won="0" faceoffs_lost="0" number_of_shifts="9" points="1" shooting_pct="50.0" faceoff_win_pct="0.0" faceoffs="0">
                <powerplay shots="0" goals="0" missed_shots="0" assists="0"/>
                <shorthanded shots="1" goals="0" missed_shots="0" assists="0"/>
                <evenstrength shots="1" goals="1" missed_shots="0" assists="0"/>
                <penalty shots="0" goals="0" missed_shots="0"/>
              </period>
              <period id="50c566a4-f2d9-4798-b6ba-097135402361" sequence="3" number="3" type="REG" goals="0" assists="0" penalties="0" penalty_minutes="0" shots="1" blocked_att="1" missed_shots="0" hits="0" giveaways="0" takeaways="0" blocked_shots="0" faceoffs_won="0" faceoffs_lost="0" number_of_shifts="8" points="0" shooting_pct="0.0" faceoff_win_pct="0.0" faceoffs="0">
                <powerplay shots="0" goals="0" missed_shots="0" assists="0"/>
                <shorthanded shots="0" goals="0" missed_shots="0" assists="0"/>
                <evenstrength shots="1" goals="0" missed_shots="0" assists="0"/>
                <penalty shots="0" goals="0" missed_shots="0"/>
              </period>
              <period id="4d1788e2-6375-45a0-9572-51bc699a0b49" sequence="4" number="1" type="OT" goals="0" assists="0" penalties="0" penalty_minutes="0" shots="0" blocked_att="0" missed_shots="1" hits="0" giveaways="0" takeaways="0" blocked_shots="0" faceoffs_won="0" faceoffs_lost="0" number_of_shifts="2" points="0" shooting_pct="0.0" faceoff_win_pct="0.0" faceoffs="0">
                <powerplay shots="0" goals="0" missed_shots="0" assists="0"/>
                <shorthanded shots="0" goals="0" missed_shots="0" assists="0"/>
                <evenstrength shots="0" goals="0" missed_shots="1" assists="0"/>
                <penalty shots="0" goals="0" missed_shots="0"/>
              </period>
              <period id="b116d7ef-48df-4541-b969-4a5487835e75" sequence="5" number="1" type="SO" goals="0" assists="0" penalties="0" penalty_minutes="0" shots="0" blocked_att="0" missed_shots="0" hits="0" giveaways="0" takeaways="0" blocked_shots="0" faceoffs_won="0" faceoffs_lost="0" points="0" shooting_pct="0.0" faceoff_win_pct="0.0" faceoffs="0">
                <powerplay shots="0" goals="0" missed_shots="0" assists="0"/>
                <shorthanded shots="0" goals="0" missed_shots="0" assists="0"/>
                <evenstrength shots="0" goals="0" missed_shots="0" assists="0"/>
                <penalty shots="0" goals="0" missed_shots="0"/>
              </period>
            </periods>
          </statistics>
          <time_on_ice shifts="30" powerplay="00:00" shorthanded="7:36" avg="00:52" evenstrength="18:37" total="26:13" overtime="2:07"/>
        </player>

You can use game and player boxscore data to render a team leaderboard view like the one below by combining team-level scoring by period (scoring.period.points) with player performance metrics such as goals, assists, and shots. These fields allow you to display boxscore totals alongside individual skater contributions, giving fans an overview of both team performance and player leaders.

Other high-level visuals you can generate include easy-to-render scoreboards, mini timelines, team comparison charts, player leaderboards, and more, giving fans quick insights into game flow and standout performances


Game Statistics

Similar to boxscore data, game statistics provide a deeper dive into quantifiable data points from a hockey game, such as saves, goals_against, shots_against, and more.

The following feeds are optimized to track game statistics:

  • Game Summary - Provides boxscore information along with detailed team and player statistics.
  • Push Statistics - Provides detailed, real-time game stats at the team and player level.
Game Summary Sample
<team id="4418464d-0f24-11e2-8525-18a905767e44" name="Panthers" market="Florida" points="3" sr_id="sr:team:3687" reference="13" strength="even" home="true">
  <record wins="24" losses="14" overtime_losses="2"/>
  <scoring>
    <period number="1" sequence="1" points="0"/>
    <period number="2" sequence="2" points="1"/>
    <period number="3" sequence="3" points="1"/>
    <overtime number="1" sequence="4" points="0"/>
    <shootout number="1" sequence="5" points="1"/>
  </scoring>
  <statistics goals="2" assists="4" penalties="8" penalty_minutes="28" team_penalties="0" team_penalty_minutes="0" shots="33" blocked_att="12" missed_shots="29" hits="28" giveaways="7" takeaways="2" blocked_shots="12" faceoffs_won="30" faceoffs_lost="28" powerplays="3" shooting_pct="6.1" faceoff_win_pct="51.7" faceoffs="58" points="6" plus_minus="5" overtime_goals="0" overtime_assists="0" overtime_shots="3" emptynet_goals="0" penalties_major="0" penalties_match="0" penalties_minor="5" penalties_misconduct="1">
    <powerplay faceoffs_won="2" faceoffs_lost="4" shots="2" goals="1" missed_shots="4" assists="2" faceoff_win_pct="33.3" opportunities="3" faceoffs="6">
      <strength opportunities="3" shots="2" goals="1" time="5:51" type="5v4"/>
      <strength opportunities="0" shots="0" goals="0" time="00:00" type="5v3"/>
      <strength opportunities="0" shots="0" goals="0" time="00:00" type="4v3"/>
    </powerplay>
    <shorthanded faceoffs_won="7" faceoffs_lost="4" shots="5" goals="0" missed_shots="3" assists="0" faceoff_win_pct="63.6" faceoffs="11">
      <strength shots="5" goals="0" type="4v5"/>
      <strength shots="0" goals="0" type="3v5"/>
      <strength shots="0" goals="0" type="3v4"/>
    </shorthanded>
    <evenstrength faceoffs_won="21" faceoffs_lost="20" shots="26" goals="1" missed_shots="22" assists="2" faceoff_win_pct="51.2" faceoffs="41">
      <strength shots="23" goals="1" type="5v5"/>
      <strength shots="0" goals="0" type="4v4"/>
      <strength shots="3" goals="0" type="3v3"/>
    </evenstrength>
    <penalty shots="0" goals="0" missed_shots="0"/>
  </statistics>
  <shootout shots="3" missed_shots="0" goals="2" shots_against="2" goals_against="0" saves="2" saves_pct="1.0"/>
  <goaltending shots_against="31" goals_against="2" saves="29" total_goals_against="2" total_shots_against="31" saves_pct="0.935" credit="win">
    <powerplay shots_against="2" goals_against="0" saves="2" saves_pct="1.0"/>
    <shorthanded shots_against="8" goals_against="2" saves="6" saves_pct="0.75"/>
    <evenstrength shots_against="21" goals_against="0" saves="21" saves_pct="1.0"/>
    <penalty shots_against="0" goals_against="0" saves="0" saves_pct="0.0"/>
    <emptynet goals_against="0" shots_against="0">
      <powerplay goals_against="0"/>
      <shorthanded goals_against="0"/>
      <evenstrength goals_against="0"/>
    </emptynet>
    <time_on_ice total="1:05:00"/>
  </goaltending>

Note: There are some differences between REST feeds and their Push feed equivalents (e.g., Game Summary, and Push Statistics) with REST feeds typically providing more data. To see the complete set of fields an endpoint can return, review its Data Points section.


Analytics

The Game Analytics feed provides hockey analytics. These include possession, shot-quality measurements, and other performance predictors:

  • Corsi (e.g., corsi_total, corsi_pct) - A measure of all shot attempts (shots on goal, missed shots, and blocked shots) taken while a player or team is on the ice. Often used as a proxy for puck possession. A higher Corsi suggests a team is controlling play.

  • Fenwick (e.g., fenwick_total, fenwick_pct) - Similar to Corsi but excludes blocked shots, counting only shots on goal and missed shots. Considered a better predictor of scoring chances, since blocked shots are less likely to generate goals.

  • PDO (e.g., pdo_total) - The sum of a team’s shooting percentage and save percentage. A “luck” indicator. Values far above or below 100 tend to regress over time.

  • Zone Starts (e.g., offensive, defensive) - Tracks where a player’s shifts begin in the offensive, defensive, or neutral zone. Useful for evaluating player deployment and coaching strategy.

Game Analytics Samples
<team id="4418464d-0f24-11e2-8525-18a905767e44" name="Panthers" market="Florida" points="3" sr_id="sr:team:3687" reference="13" strength="even" home="true">
  <statistics corsi_for="55" corsi_against="42" corsi_total="13" fenwick_for="48" fenwick_against="34" fenwick_total="14" on_ice_shots_for="26" on_ice_shots_against="21" average_shot_distance="43.4" on_ice_shots_pct="0.553" on_ice_shots_differential="5" corsi_pct="0.567" fenwick_pct="0.585" pdo="7.035">
    <shots_by_type>
      <shot_type type="wrist" shots="16" goals="0" pct="0.0"/>
      <shot_type type="slap" shots="1" goals="0" pct="0.0"/>
      <shot_type type="backhand" shots="2" goals="0" pct="0.0"/>
      <shot_type type="tip" shots="3" goals="0" pct="0.0"/>
      <shot_type type="snap" shots="11" goals="3" pct="27.3"/>
      <shot_type type="wrap_around" shots="1" goals="0" pct="0.0"/>
      <shot_type type="bat" shots="0" goals="0" pct="0.0"/>
      <shot_type type="cradle" shots="0" goals="0" pct="0.0"/>
      <shot_type type="poke" shots="0" goals="0" pct="0.0"/>
      <shot_type type="between_legs" shots="0" goals="0" pct="0.0"/>
      <shot_type type="defensive_deflection" shots="0" goals="0" pct="0.0"/>
    </shots_by_type>
  </statistics>
 <players>
      <player id="8425d3c8-3584-4819-a014-3aaf724e9c0b" full_name="Uvis Balinskis" first_name="Uvis" last_name="Balinskis" handedness="L" position="D" primary_position="D" jersey_number="26" captain="N" played="true" sr_id="sr:player:1087222" reference="8484304">
        <statistics corsi_for="9" corsi_against="5" corsi_total="4" fenwick_for="8" fenwick_against="5" fenwick_total="3" on_ice_shots_for="4" on_ice_shots_against="3" average_shot_distance="55.0" on_ice_shots_pct="0.571" on_ice_shots_differential="1" corsi_pct="0.643" fenwick_pct="0.615">
          <shots_by_type>
            <shot_type type="wrist" shots="0" goals="0" pct="0.0"/>
            <shot_type type="slap" shots="0" goals="0" pct="0.0"/>
            <shot_type type="backhand" shots="0" goals="0" pct="0.0"/>
            <shot_type type="tip" shots="0" goals="0" pct="0.0"/>
            <shot_type type="snap" shots="1" goals="0" pct="0.0"/>
            <shot_type type="wrap_around" shots="0" goals="0" pct="0.0"/>
            <shot_type type="bat" shots="0" goals="0" pct="0.0"/>
            <shot_type type="cradle" shots="0" goals="0" pct="0.0"/>
            <shot_type type="poke" shots="0" goals="0" pct="0.0"/>
            <shot_type type="between_legs" shots="0" goals="0" pct="0.0"/>
            <shot_type type="defensive_deflection" shots="0" goals="0" pct="0.0"/>
          </shots_by_type>
          <starts_by_zone offensive="5" offensive_pct="45.5" defensive="3" defensive_pct="27.3" neutral="3" neutral_pct="27.3"/>
        </statistics>
      </player>
      <player id="0cd5158e-f92b-11e2-a133-f4ce4684ea4c" full_name="Aleksander Barkov" first_name="Aleksander" last_name="Barkov" handedness="L" position="F" primary_position="C" jersey_number="16" captain="C" starter="true" played="true" sr_id="sr:player:184453" reference="8477493">
        <statistics corsi_for="5" corsi_against="4" corsi_total="1" fenwick_for="5" fenwick_against="1" fenwick_total="4" on_ice_shots_for="3" on_ice_shots_against="1" average_shot_distance="32.5" on_ice_shots_pct="0.75" on_ice_shots_differential="2" corsi_pct="0.556" fenwick_pct="0.833">
          <shots_by_type>
            <shot_type type="wrist" shots="1" goals="0" pct="0.0"/>
            <shot_type type="slap" shots="0" goals="0" pct="0.0"/>
            <shot_type type="backhand" shots="0" goals="0" pct="0.0"/>
            <shot_type type="tip" shots="1" goals="0" pct="0.0"/>
            <shot_type type="snap" shots="1" goals="0" pct="0.0"/>
            <shot_type type="wrap_around" shots="0" goals="0" pct="0.0"/>
            <shot_type type="bat" shots="0" goals="0" pct="0.0"/>
            <shot_type type="cradle" shots="0" goals="0" pct="0.0"/>
            <shot_type type="poke" shots="0" goals="0" pct="0.0"/>
            <shot_type type="between_legs" shots="0" goals="0" pct="0.0"/>
            <shot_type type="defensive_deflection" shots="0" goals="0" pct="0.0"/>
          </shots_by_type>
          <starts_by_zone offensive="3" offensive_pct="33.3" defensive="3" defensive_pct="33.3" neutral="3" neutral_pct="33.3"/>
        </statistics>
      </player>
      <player id="e7a46d95-4d97-4fd9-afd4-2be1d6f49922" full_name="Jesper Boqvist" first_name="Jesper" last_name="Boqvist" handedness="L" position="F" primary_position="C" jersey_number="70" captain="N" played="true" sr_id="sr:player:955588" reference="8480003">
        <statistics corsi_for="3" corsi_against="16" corsi_total="-13" fenwick_for="3" fenwick_against="12" fenwick_total="-9" on_ice_shots_for="3" on_ice_shots_against="8" average_shot_distance="38.0" on_ice_shots_pct="0.273" on_ice_shots_differential="-5" corsi_pct="0.158" fenwick_pct="0.2">
          <shots_by_type>
            <shot_type type="wrist" shots="1" goals="0" pct="0.0"/>
            <shot_type type="slap" shots="0" goals="0" pct="0.0"/>
            <shot_type type="backhand" shots="0" goals="0" pct="0.0"/>
            <shot_type type="tip" shots="0" goals="0" pct="0.0"/>
            <shot_type type="snap" shots="0" goals="0" pct="0.0"/>
            <shot_type type="wrap_around" shots="0" goals="0" pct="0.0"/>
            <shot_type type="bat" shots="0" goals="0" pct="0.0"/>
            <shot_type type="cradle" shots="0" goals="0" pct="0.0"/>
            <shot_type type="poke" shots="0" goals="0" pct="0.0"/>
            <shot_type type="between_legs" shots="0" goals="0" pct="0.0"/>
            <shot_type type="defensive_deflection" shots="0" goals="0" pct="0.0"/>
          </shots_by_type>
          <starts_by_zone offensive="4" offensive_pct="36.4" defensive="4" defensive_pct="36.4" neutral="3" neutral_pct="27.3"/>
        </statistics>
      </player>
      <player id="53a04226-4657-4064-8764-9cd526f966a7" full_name="Anton Lundell" first_name="Anton" last_name="Lundell" handedness="L" position="F" primary_position="C" jersey_number="15" captain="N" played="true" sr_id="sr:player:1571752" reference="8482113">
        <statistics corsi_for="5" corsi_against="15" corsi_total="-10" fenwick_for="5" fenwick_against="11" fenwick_total="-6" on_ice_shots_for="4" on_ice_shots_against="8" average_shot_distance="40.0" on_ice_shots_pct="0.333" on_ice_shots_differential="-4" corsi_pct="0.25" fenwick_pct="0.313">
          <shots_by_type>
            <shot_type type="wrist" shots="5" goals="0" pct="0.0"/>
            <shot_type type="slap" shots="0" goals="0" pct="0.0"/>
            <shot_type type="backhand" shots="1" goals="0" pct="0.0"/>
            <shot_type type="tip" shots="0" goals="0" pct="0.0"/>
            <shot_type type="snap" shots="1" goals="1" pct="100.0"/>
            <shot_type type="wrap_around" shots="0" goals="0" pct="0.0"/>
            <shot_type type="bat" shots="0" goals="0" pct="0.0"/>
            <shot_type type="cradle" shots="0" goals="0" pct="0.0"/>
            <shot_type type="poke" shots="0" goals="0" pct="0.0"/>
            <shot_type type="between_legs" shots="0" goals="0" pct="0.0"/>
            <shot_type type="defensive_deflection" shots="0" goals="0" pct="0.0"/>
          </shots_by_type>
          <starts_by_zone offensive="3" offensive_pct="30.0" defensive="4" defensive_pct="40.0" neutral="3" neutral_pct="30.0"/>
        </statistics>
      </player>

The Game Analytics feed is designed to provide only advanced statistics such as corsi_pct, fenwick_pct. This is ideal if you want to focus specifically on possession and shot-quality metrics. To get the complete statistics, you can use the Game Analytics feed alongside the Game Summary feed, pairing base-level and detailed stats like goals, assists, and shots with deeper analytics to show not just the outcome of the game, but the underlying performance that drove it.

You can also use the Game Analytics feed’s shots_by_type data to break down shot volume and efficiency by type (e.g., snap, wrist, tip) and it's starts_by_zone data to show how often players begin shifts in the offensive, defensive, or neutral zone, highlighting deployment and usage patterns.

To see the complete set of fields an endpoint can return, review its Data Points section.


Detailed Faceoff Stats

A faceoff is a method of starting or resuming play in hockey, where the puck is dropped between two opposing players who attempt to gain possession for their team. While other feeds include faceoff data, the Game Faceoffs feed is purpose-built to deliver it in a dedicated and detailed format.

Use this feed to access detailed faceoff information for teams and players, including period, zone, and strength breakdowns, for a given game.

Game Faceoffs Sample
<team id="4418464d-0f24-11e2-8525-18a905767e44" name="Panthers" market="Florida" points="3" sr_id="sr:team:3687" reference="13" strength="even" home="true">
  <faceoffs won="30" lost="28" win_pct="51.7" total="58">
    <by-strength>
      <powerplay won="2" lost="4" win_pct="33.3" total="6"/>
      <shorthanded won="7" lost="4" win_pct="63.6" total="11"/>
      <evenstrength won="21" lost="20" win_pct="51.2" total="41"/>
    </by-strength>
  </faceoffs>
<player id="0cd5158e-f92b-11e2-a133-f4ce4684ea4c" full_name="Aleksander Barkov" position="F" jersey_number="16" sr_id="sr:player:184453" reference="8477493">
        <faceoffs won="8" lost="8" win_pct="50.0" total="16">
          <by-zone>
            <offensive won="1" lost="3" win_pct="25.0" total="4"/>
            <defensive won="4" lost="2" win_pct="66.7" total="6"/>
            <neutral won="3" lost="3" win_pct="50.0" total="6"/>
          </by-zone>
<by-strength>
            <powerplay win_pct="33.3" won="1" total="3" lost="2">
              <strength type="5v4" won="1" lost="2" win_pct="33.3" total="3"/>
              <strength type="5v3" won="0" lost="0" win_pct="0.0" total="0"/>
              <strength type="4v3" won="0" lost="0" win_pct="0.0" total="0"/>
            </powerplay>
            <shorthanded win_pct="60.0" won="3" total="5" lost="2">
              <strength type="4v5" won="3" lost="2" win_pct="60.0" total="5"/>
              <strength type="3v5" won="0" lost="0" win_pct="0.0" total="0"/>
              <strength type="3v4" won="0" lost="0" win_pct="0.0" total="0"/>
            </shorthanded>
            <evenstrength win_pct="50.0" won="4" total="8" lost="4">
              <strength type="5v5" won="4" lost="4" win_pct="50.0" total="8"/>
              <strength type="4v4" won="0" lost="0" win_pct="0.0" total="0"/>
              <strength type="3v3" won="0" lost="0" win_pct="0.0" total="0"/>
            </evenstrength>
          </by-strength>
<periods>
            <period id="bac976c8-b028-47e1-9529-53ce24c304e6" sequence="1" number="1" won="2" lost="1" win_pct="66.7" total="3" type="REG">
              <by-zone>
                <offensive won="0" lost="1" win_pct="0.0" total="1"/>
                <defensive won="1" lost="0" win_pct="100.0" total="1"/>
                <neutral won="1" lost="0" win_pct="100.0" total="1"/>
              </by-zone>
            </period>
            <period id="39c1f95b-6624-4614-b184-31beb2e2feea" sequence="2" number="2" won="2" lost="4" win_pct="33.3" total="6" type="REG">
              <by-zone>
                <offensive won="1" lost="1" win_pct="50.0" total="2"/>
                <defensive won="0" lost="1" win_pct="0.0" total="1"/>
                <neutral won="1" lost="2" win_pct="33.3" total="3"/>
              </by-zone>
            </period>
            <period id="50c566a4-f2d9-4798-b6ba-097135402361" sequence="3" number="3" won="4" lost="3" win_pct="57.1" total="7" type="REG">
              <by-zone>
                <offensive won="0" lost="1" win_pct="0.0" total="1"/>
                <defensive won="3" lost="1" win_pct="75.0" total="4"/>
                <neutral won="1" lost="1" win_pct="50.0" total="2"/>
              </by-zone>
            </period>
            <period id="4d1788e2-6375-45a0-9572-51bc699a0b49" sequence="4" number="1" won="0" lost="0" win_pct="0.0" total="0" type="OT">
              <by-zone>
                <offensive won="0" lost="0" win_pct="0.0" total="0"/>
                <defensive won="0" lost="0" win_pct="0.0" total="0"/>
                <neutral won="0" lost="0" win_pct="0.0" total="0"/>
              </by-zone>
            </period>
            <period id="b116d7ef-48df-4541-b969-4a5487835e75" sequence="5" number="1" won="0" lost="0" win_pct="0.0" total="0" type="SO">
              <by-zone>
                <offensive won="0" lost="0" win_pct="0.0" total="0"/>
                <defensive won="0" lost="0" win_pct="0.0" total="0"/>
                <neutral won="0" lost="0" win_pct="0.0" total="0"/>
              </by-zone>
            </period>
          </periods>

You can combine the Game Faceoffs feed with statistical feeds such as Game Summary and Game Analytics to build a complete picture of game performance. For example, you can correlate faceoff win rates with possession metrics like corsi_pct or tie them to scoring opportunities captured in the Game Summary.

To see the complete set of fields an endpoint can return, review its Data Points section.


Shot Zone Data

Shot zone data identifies where on the ice each shot was taken, grouping attempts into defined rink areas (e.g., slot, point, circles) to analyze shooting patterns and scoring chances. The Game Shot Zones feed provides goals, shots, saves, shooting percentage, shots faced, total shot attempts, and other game statistics for players in each zone.

Game Shot Zone Sample
<players>
    <player id="8425d3c8-3584-4819-a014-3aaf724e9c0b" full_name="Uvis Balinskis" first_name="Uvis" last_name="Balinskis" handedness="L" position="D" primary_position="D" jersey_number="26" captain="N" played="true" sr_id="sr:player:1087222" reference="8484304">
      <statistics>
        <shot_zones>
          <shot_zone goals="0" shots="0" missed_shots="0" blocked_att="0" shooting_pct="0.0" shot_att="0" name="defensive_zone"/>
          <shot_zone goals="0" shots="0" missed_shots="0" blocked_att="0" shooting_pct="0.0" shot_att="0" name="neutral_zone"/>
          <shot_zone goals="0" shots="1" missed_shots="1" blocked_att="0" shooting_pct="0.0" shot_att="2" name="center_point"/>
          <shot_zone goals="0" shots="0" missed_shots="0" blocked_att="0" shooting_pct="0.0" shot_att="0" name="left_point"/>
          <shot_zone goals="0" shots="0" missed_shots="0" blocked_att="0" shooting_pct="0.0" shot_att="0" name="right_point"/>
          <shot_zone goals="0" shots="0" missed_shots="0" blocked_att="0" shooting_pct="0.0" shot_att="0" name="low_center_point"/>
          <shot_zone goals="0" shots="0" missed_shots="0" blocked_att="0" shooting_pct="0.0" shot_att="0" name="low_left_point"/>
          <shot_zone goals="0" shots="0" missed_shots="0" blocked_att="0" shooting_pct="0.0" shot_att="0" name="low_right_point"/>
          <shot_zone goals="0" shots="0" missed_shots="0" blocked_att="0" shooting_pct="0.0" shot_att="0" name="outside_right_circle"/>
          <shot_zone goals="0" shots="0" missed_shots="1" blocked_att="0" shooting_pct="0.0" shot_att="1" name="inside_right_circle"/>
          <shot_zone goals="0" shots="0" missed_shots="0" blocked_att="0" shooting_pct="0.0" shot_att="0" name="high_slot"/>
          <shot_zone goals="0" shots="0" missed_shots="0" blocked_att="0" shooting_pct="0.0" shot_att="0" name="inside_left_circle"/>
          <shot_zone goals="0" shots="0" missed_shots="1" blocked_att="0" shooting_pct="0.0" shot_att="1" name="outside_left_circle"/>
          <shot_zone goals="0" shots="0" missed_shots="0" blocked_att="0" shooting_pct="0.0" shot_att="0" name="low_right"/>
          <shot_zone goals="0" shots="0" missed_shots="0" blocked_att="0" shooting_pct="0.0" shot_att="0" name="right_slot"/>
          <shot_zone goals="0" shots="0" missed_shots="0" blocked_att="1" shooting_pct="0.0" shot_att="1" name="slot"/>
          <shot_zone goals="0" shots="0" missed_shots="0" blocked_att="0" shooting_pct="0.0" shot_att="0" name="left_slot"/>
          <shot_zone goals="0" shots="0" missed_shots="0" blocked_att="0" shooting_pct="0.0" shot_att="0" name="low_left"/>
          <shot_zone goals="0" shots="0" missed_shots="0" blocked_att="0" shooting_pct="0.0" shot_att="0" name="low_slot"/>
          <shot_zone goals="0" shots="0" missed_shots="0" blocked_att="0" shooting_pct="0.0" shot_att="0" name="down_low"/>
        </shot_zones>
        <danger_zones>
          <danger_zone goals="0" shots="0" missed_shots="0" blocked_att="1" shooting_pct="0.0" shot_att="1" name="danger_high"/>
          <danger_zone goals="0" shots="0" missed_shots="1" blocked_att="0" shooting_pct="0.0" shot_att="1" name="danger_medium"/>
          <danger_zone goals="0" shots="1" missed_shots="2" blocked_att="0" shooting_pct="0.0" shot_att="3" name="danger_low"/>
        </danger_zones>
      </statistics>
    </player>
    <player id="0cd5158e-f92b-11e2-a133-f4ce4684ea4c" full_name="Aleksander Barkov" first_name="Aleksander" last_name="Barkov" handedness="L" position="F" primary_position="C" jersey_number="16" captain="C" starter="true" played="true" sr_id="sr:player:184453" reference="8477493">
      <statistics>
        <shot_zones>
          <shot_zone goals="0" shots="0" missed_shots="0" blocked_att="0" shooting_pct="0.0" shot_att="0" name="defensive_zone"/>
          <shot_zone goals="0" shots="0" missed_shots="0" blocked_att="0" shooting_pct="0.0" shot_att="0" name="neutral_zone"/>
          <shot_zone goals="0" shots="0" missed_shots="0" blocked_att="0" shooting_pct="0.0" shot_att="0" name="center_point"/>
          <shot_zone goals="0" shots="0" missed_shots="0" blocked_att="0" shooting_pct="0.0" shot_att="0" name="left_point"/>
          <shot_zone goals="0" shots="0" missed_shots="0" blocked_att="0" shooting_pct="0.0" shot_att="0" name="right_point"/>
          <shot_zone goals="0" shots="0" missed_shots="0" blocked_att="0" shooting_pct="0.0" shot_att="0" name="low_center_point"/>
          <shot_zone goals="0" shots="0" missed_shots="0" blocked_att="0" shooting_pct="0.0" shot_att="0" name="low_left_point"/>
          <shot_zone goals="0" shots="0" missed_shots="0" blocked_att="0" shooting_pct="0.0" shot_att="0" name="low_right_point"/>
          <shot_zone goals="0" shots="0" missed_shots="0" blocked_att="0" shooting_pct="0.0" shot_att="0" name="outside_right_circle"/>
          <shot_zone goals="0" shots="0" missed_shots="0" blocked_att="0" shooting_pct="0.0" shot_att="0" name="inside_right_circle"/>
          <shot_zone goals="0" shots="1" missed_shots="0" blocked_att="0" shooting_pct="0.0" shot_att="1" name="high_slot"/>
          <shot_zone goals="0" shots="0" missed_shots="0" blocked_att="0" shooting_pct="0.0" shot_att="0" name="inside_left_circle"/>
          <shot_zone goals="0" shots="1" missed_shots="0" blocked_att="0" shooting_pct="0.0" shot_att="1" name="outside_left_circle"/>
          <shot_zone goals="0" shots="0" missed_shots="0" blocked_att="0" shooting_pct="0.0" shot_att="0" name="low_right"/>
          <shot_zone goals="0" shots="0" missed_shots="0" blocked_att="0" shooting_pct="0.0" shot_att="0" name="right_slot"/>
          <shot_zone goals="0" shots="0" missed_shots="0" blocked_att="0" shooting_pct="0.0" shot_att="0" name="slot"/>
          <shot_zone goals="0" shots="0" missed_shots="0" blocked_att="0" shooting_pct="0.0" shot_att="0" name="left_slot"/>
          <shot_zone goals="0" shots="0" missed_shots="0" blocked_att="0" shooting_pct="0.0" shot_att="0" name="low_left"/>
          <shot_zone goals="0" shots="0" missed_shots="0" blocked_att="1" shooting_pct="0.0" shot_att="1" name="low_slot"/>
          <shot_zone goals="0" shots="0" missed_shots="0" blocked_att="0" shooting_pct="0.0" shot_att="0" name="down_low"/>
        </shot_zones>
        <danger_zones>
          <danger_zone goals="0" shots="1" missed_shots="0" blocked_att="1" shooting_pct="0.0" shot_att="2" name="danger_high"/>
          <danger_zone goals="0" shots="0" missed_shots="0" blocked_att="0" shooting_pct="0.0" shot_att="0" 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>
      </statistics>
    </player>

You can pair the Game Shot Zones feed with other statistical feeds like Game Analytics or Game Summary to get a full picture of both where shots are taken on the ice and how effective they are by type, player, and game situation.

To see the complete set of fields an endpoint can return, review its Data Points section.


Detailed Time on Ice Data

Time on ice is the total amount of playing time a hockey player spends on the ice during a game, tracked across all shifts and special team situations. The Game Time on Ice Feed provides time on ice totals for every player for a given game, including detailed shift information.

Game Time On Ice Sample
<players>
    <player id="8425d3c8-3584-4819-a014-3aaf724e9c0b" full_name="Uvis Balinskis" position="D" jersey_number="26" sr_id="sr:player:1087222" reference="8484304">
      <time_on_ice total="20:23" avg="00:39" shift_count="31">
        <powerplay total="00:00">
          <strength total="00:00" type="5v4"/>
          <strength total="00:00" type="5v3"/>
          <strength total="00:00" type="4v3"/>
        </powerplay>
        <shorthanded total="3:51">
          <strength total="3:51" type="4v5"/>
          <strength total="00:00" type="3v5"/>
          <strength total="00:00" type="3v4"/>
        </shorthanded>
        <evenstrength total="16:32">
        </evenstrength>
        <periods>
          <period id="bac976c8-b028-47e1-9529-53ce24c304e6" sequence="1" number="1" total="7:19" shift_count="11" powerplay="00:00" shorthanded="1:47" avg="00:39" evenstrength="5:32" type="REG">
            <shifts>
              <shift number="1" start="00:21" end="1:11" duration="00:50"/>
              <shift number="2" start="2:23" end="3:02" duration="00:39"/>
              <shift number="3" start="4:55" end="5:46" duration="00:51"/>
              <shift number="4" start="6:43" end="7:33" duration="00:50"/>
              <shift number="5" start="8:57" end="9:18" duration="00:21"/>
              <shift number="6" start="9:57" end="10:29" duration="00:32"/>
              <shift number="7" start="11:21" end="12:36" duration="1:15"/>
              <shift number="8" start="14:03" end="14:26" duration="00:23"/>
              <shift number="9" start="15:13" end="16:09" duration="00:56"/>
              <shift number="10" start="17:03" end="17:12" duration="00:09"/>
              <shift number="11" start="17:34" end="18:07" duration="00:33"/>
            </shifts>
          </period>
          <period id="39c1f95b-6624-4614-b184-31beb2e2feea" sequence="2" number="2" total="5:04" shift_count="9" powerplay="00:00" shorthanded="1:31" avg="00:33" evenstrength="3:33" type="REG">
            <shifts>
              <shift number="12" start="00:36" end="1:00" duration="00:24"/>
              <shift number="13" start="1:47" end="2:16" duration="00:29"/>
              <shift number="14" start="3:32" end="4:21" duration="00:49"/>
              <shift number="15" start="5:39" end="6:16" duration="00:37"/>
              <shift number="16" start="9:14" end="10:14" duration="1:00"/>
              <shift number="17" start="11:51" end="12:38" duration="00:47"/>
              <shift number="18" start="14:27" end="14:38" duration="00:11"/>
              <shift number="19" start="17:47" end="18:21" duration="00:34"/>
              <shift number="20" start="19:43" end="19:56" duration="00:13"/>
            </shifts>
          </period>
          <period id="50c566a4-f2d9-4798-b6ba-097135402361" sequence="3" number="3" total="6:57" shift_count="10" powerplay="00:00" shorthanded="00:33" avg="00:41" evenstrength="6:24" type="REG">
            <shifts>
              <shift number="21" start="2:35" end="3:28" duration="00:53"/>
              <shift number="22" start="4:56" end="5:47" duration="00:51"/>
              <shift number="23" start="6:27" end="6:57" duration="00:30"/>
              <shift number="24" start="9:46" end="10:19" duration="00:33"/>
              <shift number="25" start="11:40" end="12:44" duration="1:04"/>
              <shift number="26" start="14:10" end="14:57" duration="00:47"/>
              <shift number="27" start="15:13" end="16:07" duration="00:54"/>
              <shift number="28" start="16:41" end="17:16" duration="00:35"/>
              <shift number="29" start="17:49" end="17:59" duration="00:10"/>
              <shift number="30" start="19:20" end="20:00" duration="00:40"/>
            </shifts>
          </period>
          <period id="4d1788e2-6375-45a0-9572-51bc699a0b49" sequence="4" number="1" total="1:03" shift_count="1" powerplay="00:00" shorthanded="00:00" avg="1:03" evenstrength="1:03" type="OT">
            <shifts>
              <shift number="31" start="2:04" end="3:07" duration="1:03"/>
            </shifts>
          </period>
          <period id="b116d7ef-48df-4541-b969-4a5487835e75" sequence="5" number="1" type="SO">
          </period>
        </periods>
      </time_on_ice>

Use the time_on_ice data to break down a player’s workload across evenstrength, powerplay, and shorthanded situations, while also tracking per-period totals and individual shift start and end times. This lets you render shift charts, monitor fatigue, and compare average shift length or total minutes played across skaters.

To see the complete set of fields an endpoint can return, review its Data Points section.


Post Game Updates and Revisions

Use the Daily Change Log feed to track postgame updates such as stat corrections and event revisions, ensuring your data stays accurate and up to date.


Game State Samples

Access sample data of Game feeds by game state.