Find all updates to the NHL v7 API and its documentation
Major Fighting Penalty Stats
🗓️ Release Date 08/26/2026
We've added specificity for major penalties in our NHL API. There are now two major penalty data points: penalties_major and penalties_major_fighting.
penalties_major_fighting captures major penalties specifically assessed for fighting. It is a subset of penalties_major: the total major count already includes fighting majors, so the new stat lets you break out how many of a team's or player's majors were for fighting. This statistic is available at the game and season level. See below for supported feeds and sample data.
⭐ Benefit
Distinguish fighting majors from other major penalties across game and season stats — so you can surface fighting-specific metrics in player and team profiles, enrich enforcer and penalty analytics, and report on fighting trends without inferring them from generic penalty counts.
📋 Recommended Actions
- Read
penalties_major_fightingalongsidepenalties_majorin the Game feeds (Boxscore, Summary, Push Statistics) and season feeds (Player Profile, Seasonal Statistics, Series Statistics, League Leaders) to break out fighting penalties specifically. - Treat
penalties_major_fightingas a subset ofpenalties_major: the major count is inclusive of fighting majors, so do not add the two together. To derive non-fighting majors, subtract (penalties_major−penalties_major_fighting). - Note that stat location differs by feed and format (
team/statisticsnodes in XML game feeds vs. nestedstatistics.totalobjects in season JSON) — map per feed rather than assuming one path.
☑️ Sample Requests:
Seasonal Statistics
curl --request GET \
--url https://api.sportradar.com/nhl/trial/v7/en/seasons/2025/REG/teams/441660ea-0f24-11e2-8525-18a905767e44/statistics.json \
--header 'accept: application/json' \
--header 'x-api-key: YOUR_API_KEY'Game Summary
curl --request GET \
--url https://api.sportradar.com/nhl/trial/v7/en/games/0583d6ee-637e-4856-ba13-969b19a0a430/summary.json \
--header 'accept: application/json' \
--header 'x-api-key: YOUR_API_KEY'🔢 Products
| Sport | Product | Version(s) |
|---|---|---|
| Ice Hockey | NHL API | v7 |
🔁 Endpoints Affected
Game
Season
⚙️ Return Samples
Return Samples
<team id="441660ea-0f24-11e2-8525-18a905767e44" name="Blues" market="St. Louis" points="2" sr_id="sr:team:3695" reference="19" strength="even" home="true">
<record wins="12" losses="15" overtime_losses="7"/>
<scoring>
<period number="1" sequence="1" points="1"/>
<period number="2" sequence="2" points="0"/>
<period number="3" sequence="3" points="1"/>
</scoring>
<statistics goals="2" assists="4" penalties="7" penalty_minutes="17" team_penalties="0" team_penalty_minutes="0" shots="22" blocked_att="8" missed_shots="13" hits="22" giveaways="10" takeaways="2" blocked_shots="11" faceoffs_won="17" faceoffs_lost="32" powerplays="3" shooting_pct="9.1" faceoff_win_pct="34.7" faceoffs="49" points="6" emptynet_goals="0" overtime_assists="0" overtime_goals="0" overtime_shots="0" penalties_major="1" penalties_major_fighting="1" penalties_match="0" penalties_minor="6" penalties_misconduct="0" plus_minus="-16" time_on_ice="5:52:38"/>
<!-- ...additional game data omitted... -->
</team>{
"id": "433de553-0f24-11e2-8525-18a905767e44",
"status": "ACT",
"full_name": "Sidney Crosby",
"first_name": "Sidney",
"last_name": "Crosby",
"abbr_name": "S.Crosby",
"height": 71,
"weight": 200,
"handedness": "L",
"position": "F",
"primary_position": "C",
"jersey_number": "87",
"experience": "20",
"birth_place": "Cole Harbour, NS, CAN",
"birthdate": "1987-08-07",
"updated": "2026-03-18T16:03:01+00:00",
"sr_id": "sr:player:31007",
"reference": "8471675",
"rookie_year": 2005,
"salary": 8700000,
"nationality": "CAN",
"league": {
"id": "fd560107-a85b-4388-ab0d-655ad022aff7",
"name": "NHL",
"alias": "NHL"
},
"team": {
"id": "4417b7d7-0f24-11e2-8525-18a905767e44",
"name": "Penguins",
"market": "Pittsburgh",
"alias": "PIT",
"sr_id": "sr:team:3697",
"reference": "5"
},
"draft": {
"team_id": "4417b7d7-0f24-11e2-8525-18a905767e44",
"year": 2005,
"round": "1",
"pick": "1"
},
"references": [
{
"source_id": "8471675",
"scope": "NHL",
"id_type": "external"
},
{
"source_id": "ed66350d-f19d-4afc-90d1-672599a7ecdc",
"scope": "hockey",
"id_type": "sport_profile"
}
],
"seasons": [
{
"id": "206309a8-f31b-4d71-b1e5-57c6d3f969cb",
"year": 2013,
"type": "PRE",
"qualifiers": {
"goals_per_game": false,
"assists_per_game": true,
"points_per_game": true,
"shooting_pct": false
},
"teams": [
{
"id": "4417b7d7-0f24-11e2-8525-18a905767e44",
"name": "Penguins",
"market": "Pittsburgh",
"alias": "PIT",
"sr_id": "sr:team:3697",
"reference": "5",
"statistics": {
"total": {
"games_played": 2,
"goals": 0,
"assists": 2,
"penalties": 1,
"penalty_minutes": 2,
"shots": 0,
"blocked_att": 2,
"missed_shots": 1,
"hits": 0,
"giveaways": 0,
"takeaways": 0,
"blocked_shots": 0,
"faceoffs_won": 8,
"faceoffs_lost": 12,
"winning_goals": 0,
"plus_minus": 3,
"games_scratched": 1,
"shooting_pct": 0.0,
"faceoff_win_pct": 40.0,
"faceoffs": 20,
"points": 2,
"overtime_goals": 0,
"penalties_major_fighting": 0,
"penalty_minutes_additional": 0,
"tying_goals": 0
}
// ...additional statistics omitted...
}
}
]
}
]
}Playoff Series Records
🗓️ Release Date 08/19/2026
We've added series win/loss records for playoff games in our NHL API.
You can now access each team's series record entering a playoff matchup, in the Series Schedule feed and certain Game feeds.
playoff_series_wins_entering– Number of series wins the team has entering a playoff gameplayoff_series_losses_entering– Number of series losses the team has entering a playoff game
Both attributes appear on each team object (home and away), are optional, and only appear in playoff games.
⭐ Benefit
Track and publish each team's series record for all NHL playoff matchups. For example, the Hurricanes are up 3-2 on the Golden Knights heading into Game 6.
📋 Recommended Actions
- Read
playoff_series_wins_enteringandplayoff_series_losses_enteringfrom each team object in the Series Schedule and Game feeds to display a team's series standing (e.g. "up 3-2") entering a matchup. - Handle both as optional – they appear only on playoff (postseason) games and are absent for regular-season and preseason games. Null-check before rendering.
- Note the location differs by feed and format: in the Series Schedule they're on the
home/awayobjects; in the Game Summary, Boxscore, and Play-by-Play feeds they're on theteamnodes. Map per feed rather than assuming one path.
☑️ Sample Requests:
Series Schedule
curl --request GET \
--url https://api.sportradar.com/nhl/trial/v7/en/series/2025/PST/schedule.json \
--header 'accept: application/json' \
--header 'x-api-key: YOUR_API_KEY'Game Summary
curl --request GET \
--url https://api.sportradar.com/nhl/trial/v7/en/games/67674916-e908-4013-a6e4-3d2092befdda/summary.json \
--header 'accept: application/json' \
--header 'x-api-key: YOUR_API_KEY'🔢 Products
| Sport | Product | Version(s) |
|---|---|---|
| Ice Hockey | NHL API | v7 |
🔁 Endpoints Affected
Schedule
Game
⚙️ Return Samples
Return Samples
<game id="7cd40ab7-e0a4-4d1e-a7b0-acf250e157f2" title="Game 6" status="closed" coverage="full" scheduled="2026-05-01T23:00:00+00:00" home_points="0" away_points="1" sr_id="sr:match:70558050" reference="30126" home_team="441713b7-0f24-11e2-8525-18a905767e44" away_team="4417d3cb-0f24-11e2-8525-18a905767e44">
<venue id="2ee8c0bf-dfd1-480c-80df-4d5f66a9dc76" name="Bell Centre" capacity="21288" address="1909 Avenue des Canadiens-de-Montreal" city="Montreal" state="QC" zip="H3B 5E8" country="CAN" time_zone="US/Eastern" sr_id="sr:venue:6034">
<location lat="45.49604" lng="-73.56937"/>
</venue>
<time_zones venue="US/Eastern" home="US/Eastern" away="US/Eastern"/>
<home id="441713b7-0f24-11e2-8525-18a905767e44" name="Montreal Canadiens" alias="MTL" seed="4" sr_id="sr:team:3690" reference="8" playoff_series_wins_entering="3" playoff_series_losses_entering="2"/>
<away id="4417d3cb-0f24-11e2-8525-18a905767e44" name="Tampa Bay Lightning" alias="TB" seed="3" sr_id="sr:team:3694" reference="14" playoff_series_wins_entering="2" playoff_series_losses_entering="3"/>
<!-- ...additional game data omitted for brevity... -->
</game>{
"id": "15a3830a-f4d6-402b-9718-7adc38bba26c",
"title": "Game 3",
"status": "closed",
"coverage": "full",
"scheduled": "2026-05-25T00:00:00+00:00",
"home_points": 5,
"away_points": 3,
"sr_id": "sr:match:70557986",
"reference": "30323",
"time_zones": {
"venue": "US/Pacific",
"home": "US/Pacific",
"away": "US/Mountain"
},
"venue": {
"id": "17d90f56-d6fc-4d73-9cc7-4991d6da72f4",
"name": "T-Mobile Arena",
"capacity": 17500,
"address": "3780 South Las Vegas Boulevard",
"city": "Las Vegas",
"state": "NV",
"zip": "89158",
"country": "USA",
"time_zone": "US/Pacific",
"sr_id": "sr:venue:20621",
"location": {
"lat": "36.10277",
"lng": "-115.17812"
}
},
"broadcasts": [
{
"network": "ESPN",
"type": "TV",
"locale": "National",
"channel": "206"
},
{
"network": "SportsNet",
"type": "TV",
"locale": "International"
},
{
"network": "CBC",
"type": "TV",
"locale": "International"
},
{
"network": "TVAS",
"type": "TV",
"locale": "International"
}
],
"home": {
"id": "42376e1c-6da8-461e-9443-cfcf0a9fcc4d",
"name": "Vegas Golden Knights",
"alias": "VGK",
"seed": 4,
"sr_id": "sr:team:344158",
"reference": "54",
"playoff_series_wins_entering": 2,
"playoff_series_losses_entering": 0
},
"away": {
"id": "4415ce44-0f24-11e2-8525-18a905767e44",
"name": "Colorado Avalanche",
"alias": "COL",
"seed": 1,
"sr_id": "sr:team:3682",
"reference": "21",
"playoff_series_wins_entering": 0,
"playoff_series_losses_entering": 2
}
}<game xmlns="http://feed.elasticstats.com/schema/hockey/game-v7.0.xsd" id="67674916-e908-4013-a6e4-3d2092befdda" status="closed" coverage="full" scheduled="2026-06-12T00:00:00+00:00" attendance="18761" entry_mode="INGEST" start_time="2026-06-12T00:21:00+00:00" end_time="2026-06-12T02:53:11+00:00" total_game_duration="60:00" clock="00:00" period="3" sr_id="sr:match:70558078" reference="30415" clock_decimal="00:00" is_outdoors="false" is_all_star_game="false" home_team="44182a9d-0f24-11e2-8525-18a905767e44" away_team="42376e1c-6da8-461e-9443-cfcf0a9fcc4d">
<season id="3c1bb21f-6523-4115-87ee-c8c16ed80421" year="2025" type="PST"/>
<time_zones venue="US/Eastern" home="US/Eastern" away="US/Pacific"/>
<venue id="1ea58cb6-6a28-4619-b010-747ecbc30aa7" name="Lenovo Center" capacity="18680" address="1400 Edwards Mill Road" city="Raleigh" state="NC" zip="27607" country="USA" time_zone="US/Eastern" sr_id="sr:venue:5956">
<location lat="35.80345079214118" lng="-78.72182325990354"/>
</venue>
<team id="44182a9d-0f24-11e2-8525-18a905767e44" name="Hurricanes" market="Carolina" points="4" sr_id="sr:team:3680" reference="12" playoff_series_wins_entering="2" playoff_series_losses_entering="2" strength="even" home="true">
<record wins="53" losses="22" overtime_losses="7"/>
<scoring>
<period number="1" sequence="1" points="1"/>
<period number="2" sequence="2" points="2"/>
<period number="3" sequence="3" points="1"/>
</scoring>
<!-- ...omitted for brevity... -->
</team>
<team id="42376e1c-6da8-461e-9443-cfcf0a9fcc4d" name="Golden Knights" market="Vegas" points="2" sr_id="sr:team:344158" reference="54" playoff_series_wins_entering="2" playoff_series_losses_entering="2" strength="even">
<record wins="39" losses="26" overtime_losses="17"/>
<scoring>
<period number="1" sequence="1" points="1"/>
<period number="2" sequence="2" points="0"/>
<period number="3" sequence="3" points="1"/>
</scoring>
<!-- ...omitted for brevity... -->
</team>
</game>Deleted Games
🗓️ Release Date 08/18/2026
We've added support for deleted games in version 7 of the NHL API.
Previously, deleted games were fully removed from the API. Now, when a game is removed from our coverage (for example, a duplicate or erroneously created game), it will remain available with:
"deleted": trueat the game level- A
"deleted_games"array within Schedule endpoints - A
deleted_gamesnode added to the Daily Change Log feed
⭐ Benefit
Track and store deleted game IDs within your system to prevent mis-categorization or unintended downstream processing.
📋 Recommended Actions
- Update your Schedule and Daily Change Log ingestion to read the new
deletedflag anddeleted_gamesarray/node. - Store deleted game IDs so your system can suppress or reconcile them, rather than treating a previously-valid game as still active.
- Confirm your downstream processing (stats, standings, displays) excludes games flagged as deleted.
☑️ Sample Requests:
Season Schedule
curl --request GET \
--url https://api.sportradar.com/nhl/trial/v7/en/games/{season_year}/{season_type}/schedule.json \
--header 'accept: application/json' \
--header 'x-api-key: YOUR_API_KEY'Daily Change Log
curl --request GET \
--url https://api.sportradar.com/nhl/trial/v7/en/league/{year}/{month}/{day}/changes.json \
--header 'accept: application/json' \
--header 'x-api-key: YOUR_API_KEY'🔢 Products
| Sport | Product | Version(s) |
|---|---|---|
| Ice Hockey | NHL API | v7 |
🔁 Endpoints Affected
- Daily Change Log
- Game Boxscore, Game Faceoffs, Game Play-by-Play, Game Shot Zones, Game Summary, Game Time on Ice
- Daily Schedule, Season Schedule
⚙️ Return Samples
Return Samples
{
"id": "3c10d26b-2c58-4a33-9faa-37d57b999054",
"status": "scheduled",
"coverage": "full",
"scheduled": "2026-08-18T00:00:00+00:00",
"deleted": true,
"is_all_star_game": false,
"is_outdoors": false,
"season": {
"id": "4a67cca6-b450-45f9-91c6-48e92ac19069",
"year": 2025,
"type": "REG",
"name": "Regular Season"
},
"venue": {
"id": "1ea58cb6-6a28-4619-b010-747ecbc30aa7",
"name": "Lenovo Center",
"capacity": 18680,
"address": "1400 Edwards Mill Road",
"city": "Raleigh",
"state": "NC",
"zip": "27607",
"country": "USA",
"time_zone": "US/Eastern",
"reference": "612",
"location": {
"latitude": "35.80345079214118",
"longitude": "-78.72182325990354"
}
},
"time_zones": {
"venue": "US/Eastern",
"home": "US/Eastern",
"away": "US/Central"
},
"home": {
"full_name": "Carolina Hurricanes",
"alias": "CAR",
"reference": "12",
"game_number": 84,
"id": "44182a9d-0f24-11e2-8525-18a905767e44",
"market": "Carolina",
"name": "Hurricanes",
"points": 0
},
"away": {
"full_name": "Chicago Blackhawks",
"alias": "CHI",
"reference": "16",
"game_number": 83,
"id": "4416272f-0f24-11e2-8525-18a905767e44",
"market": "Chicago",
"name": "Blackhawks",
"points": 0
}
}{
"league": {
"id": "fd560107-a85b-4388-ab0d-655ad022aff7",
"name": "NHL",
"alias": "NHL"
},
"season": {
"id": "4a67cca6-b450-45f9-91c6-48e92ac19069",
"year": 2025,
"type": "REG"
},
"games": [
{
"id": "72e5d52b-84ae-43f4-bb8c-e8d3975c9979",
"status": "scheduled",
"coverage": "full",
"reference": "20897",
"scheduled": "2026-02-05T02:00:00+00:00",
"season": {
"id": "4a67cca6-b450-45f9-91c6-48e92ac19069",
"year": 2025,
"type": "REG"
},
"venue": {
"id": "a75eea49-c384-4edb-99f1-d5252773ec83",
"name": "Ball Arena",
"capacity": 18007,
"city": "Denver",
"state": "CO",
"country": "USA",
"time_zone": "US/Mountain"
},
"home": {
"name": "Colorado Avalanche",
"alias": "COL",
"id": "4415ce44-0f24-11e2-8525-18a905767e44"
},
"away": {
"name": "San Jose Sharks",
"alias": "SJ",
"id": "44155909-0f24-11e2-8525-18a905767e44"
}
}
// ... additional games omitted for brevity ...
],
"deleted_games": [
{
"id": "3c10d26b-2c58-4a33-9faa-37d57b999054"
},
{
"id": "b3fec6f9-e454-4f7b-ab74-96750e097748"
}
]
}All-Star & Outdoor Game Flags
🗓️ Release Date 08/17/2026
We've added boolean flags for NHL All-Star games and games played at outdoor venues in our NHL API.
Find these new attributes under the game element in all relevant Schedule and Game endpoints.
is_all_star_game–truewhen the game is an All-Star Gameis_outdoors–truewhen the game is played at an outdoor venue
Both flags may be present on a game and default to false, so a standard indoor, non-All-Star game returns false for each.
⭐ Benefit
Identify All-Star and outdoor games directly from the schedule, so you can label or filter these special events in your product without maintaining your own list.
📋 Recommended Actions
- Read the
is_all_star_gameandis_outdoorsflags from thegameelement in the Schedule and Game endpoints. - Use the flags to label or filter special events in your schedules and game views, rather than maintaining your own list of All-Star or outdoor games.
- Treat both as standard booleans — expect
falsefor typical indoor, non-All-Star games.
☑️ Sample Requests:
Game Summary (Outdoor Game)
curl --request GET \
--url https://api.sportradar.com/nhl/trial/v7/en/games/6c5d2c0f-a18f-43cd-9c9c-df9d3288dfd0/summary.json \
--header 'accept: application/json' \
--header 'x-api-key: YOUR_API_KEY'Schedule (2026 Regular Season)
curl --request GET \
--url https://api.sportradar.com/nhl/trial/v7/en/games/2026/REG/schedule.json \
--header 'accept: application/json' \
--header 'x-api-key: YOUR_API_KEY'🔢 Products
| Sport | Product | Version(s) |
|---|---|---|
| Ice Hockey | NHL API | v7 |
🔁 Endpoints Affected
Game
- Game Analytics
- Game Boxscore
- Game Faceoffs
- Game Play-by-Play
- Game Shot Zones
- Game Summary
- Game Time on Ice
Schedule
- Daily Schedule
- Schedule
- Series Schedule
Push
- Push Clock
- Push Events
- Push Statistics
⚙️ Return Samples
Return Samples
<game id="6c5d2c0f-a18f-43cd-9c9c-df9d3288dfd0" status="scheduled" coverage="full" scheduled="2026-10-25T23:00:00+00:00" sr_id="sr:match:72909210" reference="20182" is_outdoors="true" is_all_star_game="false" home_team="44180e55-0f24-11e2-8525-18a905767e44" away_team="441713b7-0f24-11e2-8525-18a905767e44">
<venue id="4d51a3b3-9057-49dd-bb0e-afa82d065532" name="Princess Auto Stadium" capacity="33500" address="315 Chancellor Matheson Road" city="Winnipeg" state="MB" zip="R3T 1Z2" country="CAN" time_zone="US/Central" sr_id="sr:venue:16376">
<location lat="49.80776" lng="-97.14289"/>
</venue>
<season id="7feada34-0b0d-44f2-8d0d-cb9d2ce14a2e" year="2026" type="REG"/>
<time_zones venue="US/Central" home="US/Central" away="US/Eastern"/>
<home id="44180e55-0f24-11e2-8525-18a905767e44" name="Winnipeg Jets" alias="WPG" sr_id="sr:team:3676" reference="52">
</home>
<away id="441713b7-0f24-11e2-8525-18a905767e44" name="Montreal Canadiens" alias="MTL" sr_id="sr:team:3690" reference="8">
</away>
</game>{
"id": "6c5d2c0f-a18f-43cd-9c9c-df9d3288dfd0",
"status": "scheduled",
"coverage": "full",
"scheduled": "2026-10-25T23:00:00+00:00",
"sr_id": "sr:match:72909210",
"reference": "20182",
"is_outdoors": true,
"is_all_star_game": false,
"season": {
"id": "7feada34-0b0d-44f2-8d0d-cb9d2ce14a2e",
"year": 2026,
"type": "REG"
},Coach's Challenge Support
🗓️ Release Date 08/17/2026
We've added support for coach challenges in the NHL API.
Beginning this season, a challenge_info object is present when a challenge is initiated. It appears in the Game Play-by-Play endpoint on events with event_type="challenge". This object includes:
reason_description– Text description of the reason for a challenge (ex.Interference on goalie)outcome_description– Text description of the outcome of a challenge (ex.Goal overturned)outcome– Outcome of a challenge (ex.call_overturned)decision– Resulting decision of a challenge (ex.no_goal)name&idof the team initiating the challenge and receiving the challenge (underinitiated_byandagainst_teamrespectively)
All
challenge_infofields are string values, not enumerated types. There is no fixed set of valid values, so avoid hardcoding logic against specific strings — even fields that look machine-readable (such asoutcomeanddecision) are free-text and may change. Display them as provided rather than matching them against an expected list.
⭐ Benefit
Surface coach's challenges in your play-by-play, including who challenged, the reason, and how the original call was resolved.
📋 Recommended Actions
- Parse the
challenge_infoobject from thechallengeevent type in your Game Play-by-Play (and Push) integration. - Treat all
challenge_infofields as free-text strings — display them as provided rather than matching against a fixed set of expected values. - Use
initiated_byandagainst_teamto show which team challenged and which was challenged. - Handle the object's absence on events that do not involve a challenge.
☑️ Sample Requests:
Game Play-by-Play
curl --request GET \
--url https://api.sportradar.com/nhl/trial/v7/en/games/81fb1a0f-a8f8-427c-8bcb-35c9ef4874b9/pbp.json \
--header 'accept: application/json' \
--header 'x-api-key: YOUR_API_KEY'🔢 Products
| Sport | Product | Version(s) |
|---|---|---|
| Ice Hockey | NHL API | v7 |
🔁 Endpoints Affected
⚙️ Return Samples
Return Samples
<event id="9791736d-1dd3-4e4c-8c3a-a2c38eab3e5b" clock="3:22" official="true" updated="2026-07-22T17:14:58+00:00" wall_clock="2025-12-19T01:32:17+00:00" clock_decimal="3:22" sequence="1766107937895" home_points="1" away_points="1" event_type="challenge">
<description>Blackhawks challenge (Offside), call reversed</description>
<attribution id="4416272f-0f24-11e2-8525-18a905767e44" name="Blackhawks" market="Chicago" team_goal="right" sr_id="sr:team:3681" reference="16"/>
<challenge_info reason_description="Offside" outcome_description="Goal overturned" outcome="call_overturned" decision="no_goal">
<initiated_by id="4416272f-0f24-11e2-8525-18a905767e44" name="Blackhawks"/>
<against_team id="441713b7-0f24-11e2-8525-18a905767e44" name="Canadiens"/>
</challenge_info>
...{
"id": "9b43afd6-5a17-44c9-8afe-4abf91a7dc45",
"clock": "15:53",
"official": true,
"updated": "2026-07-22T17:14:18+00:00",
"wall_clock": "2025-12-19T00:12:32+00:00",
"description": "Canadiens challenge (Interference on goalie), call reversed",
"clock_decimal": "15:53",
"sequence": 1766103152703,
"home_points": 0,
"away_points": 0,
"event_type": "challenge",
"attribution": {
"id": "441713b7-0f24-11e2-8525-18a905767e44",
"name": "Canadiens",
"market": "Montreal",
"team_goal": "right",
"sr_id": "sr:team:3690",
"reference": "8"
},
"challenge_info": {
"reason_description": "Interference on goalie",
"outcome_description": "Goal overturned",
"outcome": "call_overturned",
"decision": "no_goal",
"initiated_by": {
"id": "441713b7-0f24-11e2-8525-18a905767e44",
"name": "Canadiens"
},
"against_team": {
"id": "4416272f-0f24-11e2-8525-18a905767e44",
"name": "Blackhawks"
}
},
...Delayed Penalties
🗓️ Release Date 07/09/2026
We've added support for delayed penalties in the NHL API.
A delayed penalty occurs when an official signals a penalty but play continues until the penalized team touches the puck. This new event marks that window in the play-by-play feed. It is present in the Game Play-by-Play endpoint, as well as the Push Events and Push Clock feeds, identified by event_type: "penalty_delayed", with a description such as "Delayed penalty (against the Canadiens)".
⭐ Benefit
Get a more accurate play-by-play experience in moments where a penalty is flagged, but the on-ice action is still ongoing.
📋 Recommended Actions
- Update your Game Play-by-Play parsing to handle the new
penalty_delayedevent type so your feed reflects delayed penalties as they occur. - Ensure your play-by-play display accounts for this event during live action, when a penalty is signaled but play continues.
- See all of the valid event types in our NHL API FAQ.
☑️ Sample Requests:
Game Play-by-Play
curl --request GET \
--url https://api.sportradar.com/nhl/trial/v7/en/games/81fb1a0f-a8f8-427c-8bcb-35c9ef4874b9/pbp.json \
--header 'accept: application/json' \
--header 'x-api-key: YOUR_API_KEY'🔢 Products
| Sport | Product | Version(s) |
|---|---|---|
| Ice Hockey | NHL API | v7, v6, v5 |
🔁 Endpoints Affected
⚙️ Return Samples
Return Samples
<event id="7f73d07c-45a4-40d0-bdea-336f369419ea" clock="15:14" official="true" updated="2026-07-22T17:20:09+00:00" wall_clock="2025-12-19T01:09:46+00:00" clock_decimal="15:14" sequence="1766106586367" home_points="1" away_points="1" strength="even" event_type="penalty_delayed">
<description>Delayed penalty (against the Canadiens)</description>
<attribution id="441713b7-0f24-11e2-8525-18a905767e44" name="Canadiens" market="Montreal" team_goal="left" sr_id="sr:team:3690" reference="8"/>
<location coord_x="312" coord_y="384" action_area="defensivezone"/>
</event>{
"id": "7f73d07c-45a4-40d0-bdea-336f369419ea",
"clock": "15:14",
"official": true,
"updated": "2026-07-22T17:20:09+00:00",
"wall_clock": "2025-12-19T01:09:46+00:00",
"description": "Delayed penalty (against the Canadiens)",
"clock_decimal": "15:14",
"sequence": 1766106586367,
"home_points": 1,
"away_points": 1,
"strength": "even",
"event_type": "penalty_delayed",
"attribution": {
"id": "441713b7-0f24-11e2-8525-18a905767e44",
"name": "Canadiens",
"market": "Montreal",
"team_goal": "left",
"sr_id": "sr:team:3690",
"reference": "8"
},
"location": {
"coord_x": 312,
"coord_y": 384,
"action_area": "defensivezone"
}
},Player Nationality
🗓️ Release Date 07/09/2026
We’ve added a nationality attribute to our NHL API.
This is the country the player represents internationally, which may differ from the existing birth_place data point. The value is a three-letter ISO country code (e.g., CAN), matching the country code used in birth_place.
⭐ Benefit
Use nationality to display the country a player represents internationally, distinct from their birthplace.
📋 Recommended Actions
- Capture the new
nationalityfield from the Player and Team Profile endpoints. Note that this is an optional field, and may not be present for every player. - Use it wherever you display player origin, keeping in mind it may differ from
birth_place.
☑️ Sample Requests:
curl --request GET \
--url https://api.sportradar.com/nhl/trial/v7/en/players/{player_id}/profile.json \
--header 'accept: application/json' \
--header 'x-api-key: YOUR_API_KEY'🔢 Versions
🔁 Endpoints Affected
⚙️ Return Samples
Return Samples
<player xmlns="http://feed.elasticstats.com/schema/hockey/profile-v7.0.xsd" id="433de553-0f24-11e2-8525-18a905767e44" status="ACT" full_name="Sidney Crosby" first_name="Sidney" last_name="Crosby" abbr_name="S.Crosby" height="71" weight="200" handedness="L" position="F" primary_position="C" jersey_number="87" experience="20" birth_place="Cole Harbour, NS, CAN" birthdate="1987-08-07" updated="2026-03-18T16:03:01+00:00" sr_id="sr:player:31007" reference="8471675" rookie_year="2005" salary="8700000" nationality="CAN">{
"id": "433de553-0f24-11e2-8525-18a905767e44",
"status": "ACT",
"full_name": "Sidney Crosby",
"first_name": "Sidney",
"last_name": "Crosby",
"abbr_name": "S.Crosby",
"height": 71,
"weight": 200,
"handedness": "L",
"position": "F",
"primary_position": "C",
"jersey_number": "87",
"experience": "20",
"birth_place": "Cole Harbour, NS, CAN",
"birthdate": "1987-08-07",
"updated": "2026-03-18T16:03:01+00:00",
"sr_id": "sr:player:31007",
"reference": "8471675",
"rookie_year": 2005,
"salary": 8700000,
"nationality": "CAN",Estimated Return Injury Date
🗓️ Release Date 07/06/2026
We’ve added a new estimated_return_date attribute to player injuries in the NHL Injuries endpoint.
injury.estimated_return_date — Estimated date the player is expected to return from injury.
Return Samples
<player id="651605ef-de59-41bf-b66c-9806f1ea9162" full_name="Seth Jarvis" first_name="Seth" last_name="Jarvis" position="F" primary_position="C" jersey_number="24" sr_id="sr:player:2067019" reference="8482093">
<injury id="5df85f5f-a24f-473d-91be-a2e1395db9b9" start_date="2026-06-26" update_date="2026-06-26" estimated_return_date="2026-11-01" comment="The Hurricanes said on Friday (Jun. 26) that Jarvis underwent shoulder surgery and will be out 4-6 months, per Chip Alexander of The Raleigh News & Observer." desc="Shoulder" status="Out"/>
</player>⭐ Benefit
Use this new estimated return date to provide additional context around a player's injury status and expected availability. This can help power injury reports, player outlooks, fantasy applications, and other player availability experiences.
📋 Recommended Actions
- Update injury data models to support the new
estimated_return_dateattribute. - Surface estimated return information in injury reports and player availability experiences.
- This is an optional attribute. Ensure integrations gracefully handle cases where an estimated return date is not available.
☑️ Sample Requests:
curl --request GET \
--url https://api.sportradar.com/nhl/trial/v7/en/league/injuries.json \
--header 'accept: application/json' \
--header 'x-api-key: YOUR_API_KEY'🔢 Versions
🔁 Endpoints Affected
⚙️ Return Samples
Return Samples
<team id="44182a9d-0f24-11e2-8525-18a905767e44" name="Hurricanes" market="Carolina" sr_id="sr:team:3680" reference="12">
<player id="651605ef-de59-41bf-b66c-9806f1ea9162" full_name="Seth Jarvis" first_name="Seth" last_name="Jarvis" position="F" primary_position="C" jersey_number="24" sr_id="sr:player:2067019" reference="8482093">
<injury id="5df85f5f-a24f-473d-91be-a2e1395db9b9" start_date="2026-06-26" update_date="2026-06-26" estimated_return_date="2026-11-01" comment="The Hurricanes said on Friday (Jun. 26) that Jarvis underwent shoulder surgery and will be out 4-6 months, per Chip Alexander of The Raleigh News & Observer." desc="Shoulder" status="Out"/>
</player>
</team>{
"id": "44182a9d-0f24-11e2-8525-18a905767e44",
"name": "Hurricanes",
"market": "Carolina",
"sr_id": "sr:team:3680",
"reference": "12",
"players": [
{
"id": "651605ef-de59-41bf-b66c-9806f1ea9162",
"full_name": "Seth Jarvis",
"first_name": "Seth",
"last_name": "Jarvis",
"position": "F",
"primary_position": "C",
"jersey_number": "24",
"sr_id": "sr:player:2067019",
"reference": "8482093",
"injuries": [
{
"id": "5df85f5f-a24f-473d-91be-a2e1395db9b9",
"start_date": "2026-06-26",
"update_date": "2026-06-26",
"estimated_return_date": "2026-11-01",
"comment": "The Hurricanes said on Friday (Jun. 26) that Jarvis underwent shoulder surgery and will be out 4-6 months, per Chip Alexander of The Raleigh News & Observer.",
"desc": "Shoulder",
"status": "Out"
}
]
}
]
},Timestamp Format Update
🗓️ Release Date 03/12/2026
We've updated the format of certain timestamp data points in our US Ice Hockey APIs.
Going forward, timestamps will use the 2026-04-17T02:30:00+00:00 format instead of 2026-04-17T02:30:00Z.
Both formats follow the ISO 8601 standard and represent the same UTC time. However, older games or data may still include the previous format.
This update applies to the following fields:
game.scheduled— in Schedule and Game endpointsplayer.updated— in Player Profile, Free Agents, and Team Profile endpointslast_modified— in Daily Change Log and Daily Transfers endpoints
☑️ Sample Requests
- Schedule (NHL) -
https://api.sportradar.com/nhl/trial/v7/en/games/2025/REG/schedule.json - Schedule (NCAAMH) -
https://api.sportradar.com/ncaamh/trial/v3/en/games/2025/REG/schedule.json
🔢 Versions
🔁 Endpoints Affected
- Daily Schedule, Schedule, Series Schedule (
scheduled) - Game Analytics, Game Boxscore, Game Faceoffs, Game Play-by-Play, Game Shot Zones, Game Summary, Game Time On Ice (
scheduled) - Free Agents, Player Profile, Team Profile (
updated) - Daily Change Log, Daily Transfers (
last_modified)
⚙️ Return Samples
Return Samples
{
"league": {
"id": "fd560107-a85b-4388-ab0d-655ad022aff7",
"name": "NHL",
"alias": "NHL"
},
"start_time": "2026-03-05T05:00:00Z",
"end_time": "2026-03-06T04:59:59Z",
"players": [
{
"id": "02231b60-5b7d-479b-8a98-11304b1ab167",
"full_name": "Jack Thompson",
"last_modified": "2026-03-05T20:58:14+00:00",
"sr_id": "sr:player:2079311",
"reference": "8482144"
},
{
"id": "06a3e45a-e4d6-494a-9757-26cc48e9ffbb",
"full_name": "Kevin Korchinski",
"last_modified": "2026-03-05T21:01:34+00:00",
"sr_id": "sr:player:2322721",
"reference": "8483466"
},
{
"id": "0992487d-52ee-4ec5-ac3a-9f4d583e60ac",
"full_name": "Curtis Lazar",
"last_modified": "2026-03-05T06:00:14+00:00",
"sr_id": "sr:player:606870",
"reference": "8477508"
},
{
"id": "0c672978-1e7b-486f-8ed8-d2e488b18812",
"full_name": "Alexander Holtz",
"last_modified": "2026-03-05T19:36:11+00:00",
"sr_id": "sr:player:1577514",
"reference": "8482125"
},
{
"id": "112d8125-b415-44b5-99bf-718e8b999d42",
"full_name": "Reid Schaefer",
"last_modified": "2026-03-05T19:08:57+00:00",
"sr_id": "sr:player:2266699",
"reference": "8483513"
},<game id="dfb0ff81-5807-4db0-b3a4-ea2cf9887c55" status="closed" coverage="full" scheduled="2026-01-12T00:00:00+00:00" home_points="2" away_points="3" sr_id="sr:match:62075556" reference="20714" home_team="715a1dba-4e9f-4158-8346-3473b6e3557f" away_team="44167db4-0f24-11e2-8525-18a905767e44">{
"id": "433de553-0f24-11e2-8525-18a905767e44",
"status": "IR",
"full_name": "Sidney Crosby",
"first_name": "Sidney",
"last_name": "Crosby",
"abbr_name": "S.Crosby",
"height": 71,
"weight": 200,
"handedness": "L",
"position": "F",
"primary_position": "C",
"jersey_number": "87",
"experience": "20",
"birth_place": "Cole Harbour, NS, CAN",
"birthdate": "1987-08-07",
"updated": "2026-02-25T15:34:42+00:00",
"sr_id": "sr:player:31007",
"reference": "8471675",
"rookie_year": 2005,
"salary": 8700000,
"league": {
"id": "fd560107-a85b-4388-ab0d-655ad022aff7",
"name": "NHL",
"alias": "NHL"
},
"team": {
"id": "4417b7d7-0f24-11e2-8525-18a905767e44",
"name": "Penguins",
"market": "Pittsburgh",
"alias": "PIT",
"sr_id": "sr:team:3697",
"reference": "5"
},Shootout Attempt Play Statistics
| Release Date | Feeds Affected | Benefit |
|---|---|---|
| 10/29/2025 | Game Play-by-Play | We've added an attempt and attemptagainst object for shootout/penalty events in the Game Play-by-Play endpoint. These event statistics represent any opportunity a skater/goalie faces on a shootout/penalty.These could be leveraged (along with shotmissed and shotagainst) in the rare cases where a player doesn't get a shot off on a shootout/penalty shot. |
Return Samples
<event id="fffb8f04-752c-49a3-933c-ccd0cbb13bed" clock="00:00" official="true" updated="2025-10-29T03:28:38Z" wall_clock="2025-10-26T02:58:42Z" away_points="4" clock_decimal="00:00" home_points="4" sequence="1761447522883" event_type="shootoutshotmissed">
<description>Shootout attempt missed by Luke Evangelista</description>
<attribution id="441643b7-0f24-11e2-8525-18a905767e44" name="Predators" market="Nashville" team_goal="left" sr_id="sr:team:3705" reference="18"/>
<location coord_x="2220" coord_y="576" action_area="lowslot"/>
<details shot_type="wrist" distance="6"/>
<statistics>
<attempt shootout="true" strength="even">
<team id="441643b7-0f24-11e2-8525-18a905767e44" name="Predators" market="Nashville" sr_id="sr:team:3705" reference="18"/>
<player id="c35b8a77-89c2-48d8-b707-ae483957c7a2" full_name="Luke Evangelista" jersey_number="77" sr_id="sr:player:2073385" reference="8482146"/>
</attempt>
<attemptagainst shootout="true" strength="even">
<team id="44151f7a-0f24-11e2-8525-18a905767e44" name="Kings" market="Los Angeles" sr_id="sr:team:3688" reference="26"/>
<player id="42befb61-0f24-11e2-8525-18a905767e44" full_name="Darcy Kuemper" jersey_number="35" sr_id="sr:player:754096" reference="8475311" goals_against="4"/>
</attemptagainst>
<shotmissed shootout="true" strength="even">
<team id="441643b7-0f24-11e2-8525-18a905767e44" name="Predators" market="Nashville" sr_id="sr:team:3705" reference="18"/>
<player id="c35b8a77-89c2-48d8-b707-ae483957c7a2" full_name="Luke Evangelista" jersey_number="77" sr_id="sr:player:2073385" reference="8482146"/>
</shotmissed>
<shotagainst saved="false" shootout="true" strength="even">
<team id="44151f7a-0f24-11e2-8525-18a905767e44" name="Kings" market="Los Angeles" sr_id="sr:team:3688" reference="26"/>
<player id="42befb61-0f24-11e2-8525-18a905767e44" full_name="Darcy Kuemper" jersey_number="35" sr_id="sr:player:754096" reference="8475311" goals_against="4"/>
</shotagainst>
</statistics>
</event>Year-to-Date Statistics in PBP
| Release Date | Feeds Affected | Benefit |
|---|---|---|
| 10/15/2025 | Game Play-by-Play | We've added year-to-date goal and assist statistics for players in our NHL Game Play-by-Play endpoint. Each goal score event now includes player objects for the goal scorer, primary assister, and secondary assister. Parse these fields to easily display a player's total season goals, primary assists, or secondary assists. |
Return Samples
{
"id": "47193681-c47d-4b4c-8e59-91630a8503b8",
"clock": "15:23",
"official": true,
"updated": "2025-10-15T04:18:27Z",
"wall_clock": "2025-10-14T23:26:26Z",
"description": "Goal scored by Alex Newhook assisted by Ivan Demidov and Alexandre Carrier",
"away_points": 0,
"clock_decimal": "15:23",
"home_points": 1,
"sequence": 1760484386614,
"strength": "even",
"zone": "offensive",
"event_type": "goal",
"attribution": {
"id": "441713b7-0f24-11e2-8525-18a905767e44",
"name": "Canadiens",
"market": "Montreal",
"team_goal": "right",
"sr_id": "sr:team:3690",
"reference": "8"
},
"taken_by": {
"full_name": "Alex Newhook",
"jersey_number": "15",
"reference": "8481618",
"id": "2b6963fd-3924-42c4-be6d-753087d2498f",
"scorer_ytd_goals": 1
},
"primary_assist": {
"full_name": "Ivan Demidov",
"jersey_number": "93",
"reference": "8484984",
"id": "49de95da-de4f-4c36-a5ff-300450ebf674",
"primary_assist_ytd_assists": 2
},
"secondary_assist": {
"full_name": "Alexandre Carrier",
"jersey_number": "45",
"reference": "8478851",
"id": "4e61366d-c43e-4716-8b86-a136a0f2a786",
"secondary_assist_ytd_assists": 1
},
"location": {
"coord_x": 192,
"coord_y": 528,
"action_area": "lowslot"
},
"details": {
"shot_type": "tip-in",
"goal_zone": "lower middle",
"distance": 6
},
"statistics": [
{
"goal": true,
"type": "shot",
"strength": "even",
"zone": "offensive",
"team": {
"id": "441713b7-0f24-11e2-8525-18a905767e44",
"name": "Canadiens",
"market": "Montreal",
"sr_id": "sr:team:3690",
"reference": "8"
},
"player": {
"id": "2b6963fd-3924-42c4-be6d-753087d2498f",
"full_name": "Alex Newhook",
"jersey_number": "15",
"sr_id": "sr:player:1650187",
"reference": "8481618"
}
},
{
"type": "assist",
"strength": "even",
"zone": "offensive",
"assist_type": "primary",
"team": {
"id": "441713b7-0f24-11e2-8525-18a905767e44",
"name": "Canadiens",
"market": "Montreal",
"sr_id": "sr:team:3690",
"reference": "8"
},
"player": {
"id": "49de95da-de4f-4c36-a5ff-300450ebf674",
"full_name": "Ivan Demidov",
"jersey_number": "93",
"sr_id": "sr:player:2487595",
"reference": "8484984"
}
},
{
"type": "assist",
"strength": "even",
"zone": "offensive",
"assist_type": "secondary",
"team": {
"id": "441713b7-0f24-11e2-8525-18a905767e44",
"name": "Canadiens",
"market": "Montreal",
"sr_id": "sr:team:3690",
"reference": "8"
},
"player": {
"id": "4e61366d-c43e-4716-8b86-a136a0f2a786",
"full_name": "Alexandre Carrier",
"jersey_number": "45",
"sr_id": "sr:player:904496",
"reference": "8478851"
}
},
{
"saved": false,
"goal": true,
"type": "shotagainst",
"strength": "even",
"zone": "defensive",
"team": {
"id": "1fb48e65-9688-4084-8868-02173525c3e1",
"name": "Kraken",
"market": "Seattle",
"sr_id": "sr:team:794340",
"reference": "55"
},
"player": {
"id": "cd985f0a-3d12-45f9-9b97-cc448388e19e",
"full_name": "Joey Daccord",
"jersey_number": "35",
"sr_id": "sr:player:1726520",
"reference": "8478916",
"goals_against": 5
}
}
],<event id="47193681-c47d-4b4c-8e59-91630a8503b8" clock="15:23" official="true" updated="2025-10-15T04:18:27Z" wall_clock="2025-10-14T23:26:26Z" away_points="0" clock_decimal="15:23" home_points="1" sequence="1760484386614" zone="offensive" event_type="goal">
<description>Goal scored by Alex Newhook assisted by Ivan Demidov and Alexandre Carrier</description>
<attribution id="441713b7-0f24-11e2-8525-18a905767e44" name="Canadiens" market="Montreal" team_goal="right" sr_id="sr:team:3690" reference="8"/>
<taken_by full_name="Alex Newhook" jersey_number="15" reference="8481618" id="2b6963fd-3924-42c4-be6d-753087d2498f" scorer_ytd_goals="1"/>
<primary_assist full_name="Ivan Demidov" jersey_number="93" reference="8484984" id="49de95da-de4f-4c36-a5ff-300450ebf674" primary_assist_ytd_assists="2"/>
<secondary_assist full_name="Alexandre Carrier" jersey_number="45" reference="8478851" id="4e61366d-c43e-4716-8b86-a136a0f2a786" secondary_assist_ytd_assists="1"/>
<location coord_x="192" coord_y="528" action_area="lowslot"/>
<details shot_type="tip-in" goal_zone="lower middle" distance="6"/>
<statistics>
<shot goal="true" strength="even" zone="offensive">
<team id="441713b7-0f24-11e2-8525-18a905767e44" name="Canadiens" market="Montreal" sr_id="sr:team:3690" reference="8"/>
<player id="2b6963fd-3924-42c4-be6d-753087d2498f" full_name="Alex Newhook" jersey_number="15" sr_id="sr:player:1650187" reference="8481618"/>
</shot>
<assist strength="even" zone="offensive" assist_type="primary">
<team id="441713b7-0f24-11e2-8525-18a905767e44" name="Canadiens" market="Montreal" sr_id="sr:team:3690" reference="8"/>
<player id="49de95da-de4f-4c36-a5ff-300450ebf674" full_name="Ivan Demidov" jersey_number="93" sr_id="sr:player:2487595" reference="8484984"/>
</assist>
<assist strength="even" zone="offensive" assist_type="secondary">
<team id="441713b7-0f24-11e2-8525-18a905767e44" name="Canadiens" market="Montreal" sr_id="sr:team:3690" reference="8"/>
<player id="4e61366d-c43e-4716-8b86-a136a0f2a786" full_name="Alexandre Carrier" jersey_number="45" sr_id="sr:player:904496" reference="8478851"/>
</assist>
<shotagainst saved="false" goal="true" strength="even" zone="defensive">
<team id="1fb48e65-9688-4084-8868-02173525c3e1" name="Kraken" market="Seattle" sr_id="sr:team:794340" reference="55"/>
<player id="cd985f0a-3d12-45f9-9b97-cc448388e19e" full_name="Joey Daccord" jersey_number="35" sr_id="sr:player:1726520" reference="8478916" goals_against="5"/>
</shotagainst>
</statistics>Period-Level Team Stats by Game
| Release Date | Feeds Affected | Benefit |
|---|---|---|
| 10/08/2025 | Game Summary Push Statistics | We've added period-level team statistics for NHL games. These statistics are now available in the Game Summary endpoint for all full-coverage NHL games, beginning in the 2025 season. View the complete list of available period-level metrics here. |
Return Samples
"periods": [
{
"id": "1363ba7b-2b14-4c49-84c9-00a5ecd705ac",
"sequence": 1,
"number": 1,
"type": "REG",
"total": {
"goals": 0,
"assists": 0,
"penalties": 1,
"penalty_minutes": 2,
"team_penalties": 0,
"team_penalty_minutes": 0,
"shots": 7,
"blocked_att": 3,
"missed_shots": 6,
"hits": 13,
"giveaways": 4,
"takeaways": 3,
"blocked_shots": 5,
"faceoffs_won": 9,
"faceoffs_lost": 4,
"powerplays": 0,
"faceoffs": 13,
"points": 0,
"emptynet_goals": 0,
"overtime_assists": 0,
"overtime_goals": 0,
"overtime_shots": 0,
"penalties_major": 0,
"penalties_match": 0,
"penalties_minor": 1,
"penalties_misconduct": 0,
"time_on_ice": "1:58:00"
},
"powerplay": {
"faceoffs_won": 2,
"faceoffs_lost": 0,
"shots": 1,
"goals": 0,
"missed_shots": 0,
"assists": 0,
"faceoff_win_pct": 100.0,
"opportunities": 0,
"faceoffs": 2,
"time_on_ice": "12:00"
},
"shorthanded": {
"faceoffs_won": 0,
"faceoffs_lost": 1,
"shots": 0,
"goals": 0,
"missed_shots": 0,
"assists": 0,
"faceoff_win_pct": 0.0,
"faceoffs": 1,
"time_on_ice": "10:00"
},
"evenstrength": {
"faceoffs_won": 7,
"faceoffs_lost": 3,
"shots": 6,
"goals": 0,
"missed_shots": 6,
"assists": 0,
"faceoff_win_pct": 70.0,
"faceoffs": 10,
"time_on_ice": "1:36:00"
},
"penalty": {
"shots": 0,
"goals": 0,
"missed_shots": 0
}
},
{
"id": "0948472c-e6d3-4bf5-bd9c-746bdb7dd11a",
"sequence": 2,
"number": 2,
"type": "REG",
"total": {
"goals": 0,
"assists": 0,
"penalties": 0,
"penalty_minutes": 0,
"team_penalties": 0,
"team_penalty_minutes": 0,
"shots": 13,
"blocked_att": 11,
"missed_shots": 4,
"hits": 12,
"giveaways": 9,
"takeaways": 1,
"blocked_shots": 10,
"faceoffs_won": 3,
"faceoffs_lost": 9,
"powerplays": 0,
"faceoffs": 12,
"points": 0,
"emptynet_goals": 0,
"overtime_assists": 0,
"overtime_goals": 0,
"overtime_shots": 0,
"penalties_major": 0,
"penalties_match": 0,
"penalties_minor": 0,
"penalties_misconduct": 0,
"time_on_ice": "2:00:00"
},
"powerplay": {
"faceoffs_won": 0,
"faceoffs_lost": 3,
"shots": 2,
"goals": 0,
"missed_shots": 0,
"assists": 0,
"faceoff_win_pct": 0.0,
"opportunities": 0,
"faceoffs": 3,
"time_on_ice": "6:30"
},
"shorthanded": {
"faceoffs_won": 0,
"faceoffs_lost": 0,
"shots": 0,
"goals": 0,
"missed_shots": 0,
"assists": 0,
"faceoff_win_pct": 0.0,
"faceoffs": 0,
"time_on_ice": 0
},
"evenstrength": {
"faceoffs_won": 3,
"faceoffs_lost": 6,
"shots": 11,
"goals": 0,
"missed_shots": 4,
"assists": 0,
"faceoff_win_pct": 33.3,
"faceoffs": 9,
"time_on_ice": "1:53:30"
},
"penalty": {
"shots": 0,
"goals": 0,
"missed_shots": 0
}
},
{
"id": "8b4b29d8-644c-4b85-b6be-7b17a658ee7d",
"sequence": 3,
"number": 3,
"type": "REG",
"total": {
"goals": 0,
"assists": 0,
"penalties": 0,
"penalty_minutes": 0,
"team_penalties": 0,
"team_penalty_minutes": 0,
"shots": 5,
"blocked_att": 8,
"missed_shots": 3,
"hits": 9,
"giveaways": 4,
"takeaways": 0,
"blocked_shots": 2,
"faceoffs_won": 7,
"faceoffs_lost": 8,
"powerplays": 0,
"faceoffs": 15,
"points": 0,
"emptynet_goals": 0,
"overtime_assists": 0,
"overtime_goals": 0,
"overtime_shots": 0,
"penalties_major": 0,
"penalties_match": 0,
"penalties_minor": 0,
"penalties_misconduct": 0,
"time_on_ice": "2:00:00"
},
"powerplay": {
"faceoffs_won": 1,
"faceoffs_lost": 1,
"shots": 0,
"goals": 0,
"missed_shots": 0,
"assists": 0,
"faceoff_win_pct": 50.0,
"opportunities": 0,
"faceoffs": 2,
"time_on_ice": "5:30"
},
"shorthanded": {
"faceoffs_won": 0,
"faceoffs_lost": 0,
"shots": 0,
"goals": 0,
"missed_shots": 0,
"assists": 0,
"faceoff_win_pct": 0.0,
"faceoffs": 0,
"time_on_ice": 0
},
"evenstrength": {
"faceoffs_won": 6,
"faceoffs_lost": 7,
"shots": 5,
"goals": 0,
"missed_shots": 3,
"assists": 0,
"faceoff_win_pct": 46.2,
"faceoffs": 13,
"time_on_ice": "1:54:30"
},
"penalty": {
"shots": 0,
"goals": 0,
"missed_shots": 0
}
}
]
},<periods>
<period id="1363ba7b-2b14-4c49-84c9-00a5ecd705ac" sequence="1" number="1" type="REG" goals="0" assists="0" penalties="1" penalty_minutes="2" team_penalties="0" team_penalty_minutes="0" shots="7" blocked_att="3" missed_shots="6" hits="13" giveaways="4" takeaways="3" blocked_shots="5" faceoffs_won="9" faceoffs_lost="4" powerplays="0" faceoffs="13" points="0" emptynet_goals="0" overtime_assists="0" overtime_goals="0" overtime_shots="0" penalties_major="0" penalties_match="0" penalties_minor="1" penalties_misconduct="0" time_on_ice="1:58:00">
<powerplay faceoffs_won="2" faceoffs_lost="0" shots="1" goals="0" missed_shots="0" assists="0" faceoff_win_pct="100.0" opportunities="0" faceoffs="2" time_on_ice="12:00"/>
<shorthanded faceoffs_won="0" faceoffs_lost="1" shots="0" goals="0" missed_shots="0" assists="0" faceoff_win_pct="0.0" faceoffs="1" time_on_ice="10:00"/>
<evenstrength faceoffs_won="7" faceoffs_lost="3" shots="6" goals="0" missed_shots="6" assists="0" faceoff_win_pct="70.0" faceoffs="10" time_on_ice="1:36:00"/>
<penalty shots="0" goals="0" missed_shots="0"/>
</period>
<period id="0948472c-e6d3-4bf5-bd9c-746bdb7dd11a" sequence="2" number="2" type="REG" goals="0" assists="0" penalties="0" penalty_minutes="0" team_penalties="0" team_penalty_minutes="0" shots="13" blocked_att="11" missed_shots="4" hits="12" giveaways="9" takeaways="1" blocked_shots="10" faceoffs_won="3" faceoffs_lost="9" powerplays="0" faceoffs="12" points="0" emptynet_goals="0" overtime_assists="0" overtime_goals="0" overtime_shots="0" penalties_major="0" penalties_match="0" penalties_minor="0" penalties_misconduct="0" time_on_ice="2:00:00">
<powerplay faceoffs_won="0" faceoffs_lost="3" shots="2" goals="0" missed_shots="0" assists="0" faceoff_win_pct="0.0" opportunities="0" faceoffs="3" time_on_ice="6:30"/>
<shorthanded faceoffs_won="0" faceoffs_lost="0" shots="0" goals="0" missed_shots="0" assists="0" faceoff_win_pct="0.0" faceoffs="0" time_on_ice="0"/>
<evenstrength faceoffs_won="3" faceoffs_lost="6" shots="11" goals="0" missed_shots="4" assists="0" faceoff_win_pct="33.3" faceoffs="9" time_on_ice="1:53:30"/>
<penalty shots="0" goals="0" missed_shots="0"/>
</period>
<period id="8b4b29d8-644c-4b85-b6be-7b17a658ee7d" sequence="3" number="3" type="REG" goals="0" assists="0" penalties="0" penalty_minutes="0" team_penalties="0" team_penalty_minutes="0" shots="5" blocked_att="8" missed_shots="3" hits="9" giveaways="4" takeaways="0" blocked_shots="2" faceoffs_won="7" faceoffs_lost="8" powerplays="0" faceoffs="15" points="0" emptynet_goals="0" overtime_assists="0" overtime_goals="0" overtime_shots="0" penalties_major="0" penalties_match="0" penalties_minor="0" penalties_misconduct="0" time_on_ice="2:00:00">
<powerplay faceoffs_won="1" faceoffs_lost="1" shots="0" goals="0" missed_shots="0" assists="0" faceoff_win_pct="50.0" opportunities="0" faceoffs="2" time_on_ice="5:30"/>
<shorthanded faceoffs_won="0" faceoffs_lost="0" shots="0" goals="0" missed_shots="0" assists="0" faceoff_win_pct="0.0" faceoffs="0" time_on_ice="0"/>
<evenstrength faceoffs_won="6" faceoffs_lost="7" shots="5" goals="0" missed_shots="3" assists="0" faceoff_win_pct="46.2" faceoffs="13" time_on_ice="1:54:30"/>
<penalty shots="0" goals="0" missed_shots="0"/>
</period>
</periods>
</statistics>Own Goals and Empty Net Goals
| Release Date | Feeds Affected | Benefit |
|---|---|---|
| 10/08/2025 | Game Summary | We've added boolean flags for empty net goals and own goals at the event level for NHL games.event.empty_net_goal — Signifies a goal is an empty net goal when trueevent.own_goal — Signifies a goal is an own goal when true |
Return Samples
{
"id": "fb91b80b-55f7-4a89-8e4e-a10dddbb04b3",
"clock": "2:12",
"official": true,
"updated": "2025-10-08T02:54:50Z",
"wall_clock": "2025-10-08T02:22:29Z",
"description": "Goal scored by Justin Brazeau assisted by Evgeni Malkin and Anthony Mantha (Empty Net)",
"away_points": 2,
"clock_decimal": "2:12",
"empty_net_goal": true,
"home_points": 0,
"sequence": 1759890149953,
"strength": "even",
"zone": "offensive",
"event_type": "emptynetgoal",
"attribution": {
"id": "4417b7d7-0f24-11e2-8525-18a905767e44",
"name": "Penguins",
"market": "Pittsburgh",
"team_goal": "left",
"sr_id": "sr:team:3697",
"reference": "5"
},
"location": {
"coord_x": 2136,
"coord_y": 504,
"action_area": "slot"
},
"details": {
"shot_type": "wrist",
"goal_zone": "lower middle",
"distance": 10
},
"statistics": [
{
"goal": true,
"type": "shot",
"strength": "even",
"zone": "offensive",
"team": {
"id": "4417b7d7-0f24-11e2-8525-18a905767e44",
"name": "Penguins",
"market": "Pittsburgh",
"sr_id": "sr:team:3697",
"reference": "5"
},
"player": {
"id": "35fba521-b78e-407c-8e66-7e385102015c",
"full_name": "Justin Brazeau",
"jersey_number": "16",
"sr_id": "sr:player:1052929",
"reference": "8479638"
}
},
{
"type": "assist",
"strength": "even",
"zone": "offensive",
"assist_type": "secondary",
"team": {
"id": "4417b7d7-0f24-11e2-8525-18a905767e44",
"name": "Penguins",
"market": "Pittsburgh",
"sr_id": "sr:team:3697",
"reference": "5"
},
"player": {
"id": "e16bf6b8-b7ba-4ab1-b3b2-b21c83cd622e",
"full_name": "Anthony Mantha",
"jersey_number": "39",
"sr_id": "sr:player:904668",
"reference": "8477511"
}
},
{
"type": "emptynetgoal",
"strength": "even",
"zone": "defensive",
"team": {
"id": "441781b9-0f24-11e2-8525-18a905767e44",
"name": "Rangers",
"market": "New York",
"sr_id": "sr:team:3701",
"reference": "3"
}
},
{
"type": "assist",
"strength": "even",
"zone": "offensive",
"assist_type": "primary",
"team": {
"id": "4417b7d7-0f24-11e2-8525-18a905767e44",
"name": "Penguins",
"market": "Pittsburgh",
"sr_id": "sr:team:3697",
"reference": "5"
},
"player": {
"id": "433e7a98-0f24-11e2-8525-18a905767e44",
"full_name": "Evgeni Malkin",
"jersey_number": "71",
"sr_id": "sr:player:31010",
"reference": "8471215"
}
}
],<event id="fb91b80b-55f7-4a89-8e4e-a10dddbb04b3" clock="2:12" official="true" updated="2025-10-08T02:54:50Z" wall_clock="2025-10-08T02:22:29Z" away_points="2" clock_decimal="2:12" empty_net_goal="true" home_points="0" sequence="1759890149953" zone="offensive" event_type="emptynetgoal">
<description>Goal scored by Justin Brazeau assisted by Evgeni Malkin and Anthony Mantha (Empty Net)</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="2136" coord_y="504" action_area="slot"/>
<details shot_type="wrist" goal_zone="lower middle" distance="10"/>
<statistics>
<shot goal="true" strength="even" zone="offensive">
<team id="4417b7d7-0f24-11e2-8525-18a905767e44" name="Penguins" market="Pittsburgh" sr_id="sr:team:3697" reference="5"/>
<player id="35fba521-b78e-407c-8e66-7e385102015c" full_name="Justin Brazeau" jersey_number="16" sr_id="sr:player:1052929" reference="8479638"/>
</shot>
<assist strength="even" zone="offensive" assist_type="secondary">
<team id="4417b7d7-0f24-11e2-8525-18a905767e44" name="Penguins" market="Pittsburgh" sr_id="sr:team:3697" reference="5"/>
<player id="e16bf6b8-b7ba-4ab1-b3b2-b21c83cd622e" full_name="Anthony Mantha" jersey_number="39" sr_id="sr:player:904668" reference="8477511"/>
</assist>
<emptynetgoal strength="even" zone="defensive">
<team id="441781b9-0f24-11e2-8525-18a905767e44" name="Rangers" market="New York" sr_id="sr:team:3701" reference="3"/>
</emptynetgoal>
<assist strength="even" zone="offensive" assist_type="primary">
<team id="4417b7d7-0f24-11e2-8525-18a905767e44" name="Penguins" market="Pittsburgh" sr_id="sr:team:3697" reference="5"/>
<player id="433e7a98-0f24-11e2-8525-18a905767e44" full_name="Evgeni Malkin" jersey_number="71" sr_id="sr:player:31010" reference="8471215"/>
</assist>
</statistics>Event Type "shootoutshotfailed"
| Release Date | Feeds Affected | Benefit |
|---|---|---|
| 09/23/2025 | Game Play-by-Play Push Clock Push Events | We've added boolean flags for empty net goals and own goals at the event level for NHL games.
|
Return Samples
{
"id": "9f19e1fe-177c-44de-9136-9a19d831cee4",
"clock": "00:00",
"official": true,
"updated": "2025-09-22T05:52:36Z",
"wall_clock": "2025-09-22T01:53:12Z",
"description": "Shootout attempt failed by Trevor Zegras",
"away_points": 2,
"clock_decimal": "00:00",
"home_points": 2,
"sequence": 1758505992650,
"strength": "even",
"event_type": "shootoutshotfailed",
"attribution": {
"id": "44179d47-0f24-11e2-8525-18a905767e44",
"name": "Flyers",
"market": "Philadelphia",
"team_goal": "right",
"sr_id": "sr:team:3699",
"reference": "4"
},
"location": {
"coord_x": 180,
"coord_y": 468,
"action_area": "lowslot"
},
"details": {
"distance": 5
}
},
{
"id": "5d8d172e-0447-4fca-8bd5-f63d6b07b2d3",
"clock": "00:00",
"official": true,
"updated": "2025-09-22T05:52:54Z",
"wall_clock": "2025-09-22T01:53:49Z",
"description": "Shootout attempt by Jonathan Drouin saved by Carson Bjarnason",
"away_points": 2,
"clock_decimal": "00:00",
"home_points": 2,
"sequence": 1758506029372,
"zone": "offensive",
"event_type": "shootoutshotsaved",
"attribution": {
"id": "441766b9-0f24-11e2-8525-18a905767e44",
"name": "Islanders",
"market": "New York",
"team_goal": "left",
"sr_id": "sr:team:3703",
"reference": "2"
},
"location": {
"coord_x": 2076,
"coord_y": 504,
"action_area": "slot"
},
"details": {
"shot_type": "wrist",
"distance": 15
},
"statistics": [
{
"shootout": true,
"type": "shot",
"zone": "offensive",
"team": {
"id": "441766b9-0f24-11e2-8525-18a905767e44",
"name": "Islanders",
"market": "New York",
"sr_id": "sr:team:3703",
"reference": "2"
},
"player": {
"id": "8fc7171d-e806-11e2-a133-f4ce4684ea4c",
"full_name": "Jonathan Drouin",
"jersey_number": "29",
"sr_id": "sr:player:753686",
"reference": "8477494"
}
},
{
"saved": true,
"shootout": true,
"type": "shotagainst",
"zone": "defensive",
"team": {
"id": "44179d47-0f24-11e2-8525-18a905767e44",
"name": "Flyers",
"market": "Philadelphia",
"sr_id": "sr:team:3699",
"reference": "4"
},
"player": {
"id": "e6294d59-a7cc-47bf-8536-3782eb04963d",
"full_name": "Carson Bjarnason",
"jersey_number": "64",
"sr_id": "sr:player:2452955",
"reference": "8484147",
"goals_against": 0
}
}
]
},<event id="9f19e1fe-177c-44de-9136-9a19d831cee4" clock="00:00" official="true" updated="2025-09-22T05:52:36Z" wall_clock="2025-09-22T01:53:12Z" away_points="2" clock_decimal="00:00" home_points="2" sequence="1758505992650" event_type="shootoutshotfailed">
<description>Shootout attempt failed by Trevor Zegras</description>
<attribution id="44179d47-0f24-11e2-8525-18a905767e44" name="Flyers" market="Philadelphia" team_goal="right" sr_id="sr:team:3699" reference="4"/>
<location coord_x="180" coord_y="468" action_area="lowslot"/>
<details distance="5"/>
</event>
<event id="5d8d172e-0447-4fca-8bd5-f63d6b07b2d3" clock="00:00" official="true" updated="2025-09-22T05:52:54Z" wall_clock="2025-09-22T01:53:49Z" away_points="2" clock_decimal="00:00" home_points="2" sequence="1758506029372" zone="offensive" event_type="shootoutshotsaved">
<description>Shootout attempt by Jonathan Drouin saved by Carson Bjarnason</description>
<attribution id="441766b9-0f24-11e2-8525-18a905767e44" name="Islanders" market="New York" team_goal="left" sr_id="sr:team:3703" reference="2"/>
<location coord_x="2076" coord_y="504" action_area="slot"/>
<details shot_type="wrist" distance="15"/>
<statistics>
<shot shootout="true" zone="offensive">
<team id="441766b9-0f24-11e2-8525-18a905767e44" name="Islanders" market="New York" sr_id="sr:team:3703" reference="2"/>
<player id="8fc7171d-e806-11e2-a133-f4ce4684ea4c" full_name="Jonathan Drouin" jersey_number="29" sr_id="sr:player:753686" reference="8477494"/>
</shot>
<shotagainst saved="true" shootout="true" zone="defensive">
<team id="44179d47-0f24-11e2-8525-18a905767e44" name="Flyers" market="Philadelphia" sr_id="sr:team:3699" reference="4"/>
<player id="e6294d59-a7cc-47bf-8536-3782eb04963d" full_name="Carson Bjarnason" jersey_number="64" sr_id="sr:player:2452955" reference="8484147" goals_against="0"/>
</shotagainst>
</statistics>
</event>Event Type "shootoutshotfailed"
| Release Date | Feeds Affected | Benefit |
|---|---|---|
| 09/23/2025 | Game Play-by-Play Push Clock Push Events | We've added an event type called View all valid |
Return Samples
{
"id": "9f19e1fe-177c-44de-9136-9a19d831cee4",
"clock": "00:00",
"official": true,
"updated": "2025-09-22T05:52:36Z",
"wall_clock": "2025-09-22T01:53:12Z",
"description": "Shootout attempt failed by Trevor Zegras",
"away_points": 2,
"clock_decimal": "00:00",
"home_points": 2,
"sequence": 1758505992650,
"strength": "even",
"event_type": "shootoutshotfailed",
"attribution": {
"id": "44179d47-0f24-11e2-8525-18a905767e44",
"name": "Flyers",
"market": "Philadelphia",
"team_goal": "right",
"sr_id": "sr:team:3699",
"reference": "4"
},
"location": {
"coord_x": 180,
"coord_y": 468,
"action_area": "lowslot"
},
"details": {
"distance": 5
}
},
{
"id": "5d8d172e-0447-4fca-8bd5-f63d6b07b2d3",
"clock": "00:00",
"official": true,
"updated": "2025-09-22T05:52:54Z",
"wall_clock": "2025-09-22T01:53:49Z",
"description": "Shootout attempt by Jonathan Drouin saved by Carson Bjarnason",
"away_points": 2,
"clock_decimal": "00:00",
"home_points": 2,
"sequence": 1758506029372,
"zone": "offensive",
"event_type": "shootoutshotsaved",
"attribution": {
"id": "441766b9-0f24-11e2-8525-18a905767e44",
"name": "Islanders",
"market": "New York",
"team_goal": "left",
"sr_id": "sr:team:3703",
"reference": "2"
},
"location": {
"coord_x": 2076,
"coord_y": 504,
"action_area": "slot"
},
"details": {
"shot_type": "wrist",
"distance": 15
},
"statistics": [
{
"shootout": true,
"type": "shot",
"zone": "offensive",
"team": {
"id": "441766b9-0f24-11e2-8525-18a905767e44",
"name": "Islanders",
"market": "New York",
"sr_id": "sr:team:3703",
"reference": "2"
},
"player": {
"id": "8fc7171d-e806-11e2-a133-f4ce4684ea4c",
"full_name": "Jonathan Drouin",
"jersey_number": "29",
"sr_id": "sr:player:753686",
"reference": "8477494"
}
},
{
"saved": true,
"shootout": true,
"type": "shotagainst",
"zone": "defensive",
"team": {
"id": "44179d47-0f24-11e2-8525-18a905767e44",
"name": "Flyers",
"market": "Philadelphia",
"sr_id": "sr:team:3699",
"reference": "4"
},
"player": {
"id": "e6294d59-a7cc-47bf-8536-3782eb04963d",
"full_name": "Carson Bjarnason",
"jersey_number": "64",
"sr_id": "sr:player:2452955",
"reference": "8484147",
"goals_against": 0
}
}
]
},<event id="9f19e1fe-177c-44de-9136-9a19d831cee4" clock="00:00" official="true" updated="2025-09-22T05:52:36Z" wall_clock="2025-09-22T01:53:12Z" away_points="2" clock_decimal="00:00" home_points="2" sequence="1758505992650" event_type="shootoutshotfailed">
<description>Shootout attempt failed by Trevor Zegras</description>
<attribution id="44179d47-0f24-11e2-8525-18a905767e44" name="Flyers" market="Philadelphia" team_goal="right" sr_id="sr:team:3699" reference="4"/>
<location coord_x="180" coord_y="468" action_area="lowslot"/>
<details distance="5"/>
</event>
<event id="5d8d172e-0447-4fca-8bd5-f63d6b07b2d3" clock="00:00" official="true" updated="2025-09-22T05:52:54Z" wall_clock="2025-09-22T01:53:49Z" away_points="2" clock_decimal="00:00" home_points="2" sequence="1758506029372" zone="offensive" event_type="shootoutshotsaved">
<description>Shootout attempt by Jonathan Drouin saved by Carson Bjarnason</description>
<attribution id="441766b9-0f24-11e2-8525-18a905767e44" name="Islanders" market="New York" team_goal="left" sr_id="sr:team:3703" reference="2"/>
<location coord_x="2076" coord_y="504" action_area="slot"/>
<details shot_type="wrist" distance="15"/>
<statistics>
<shot shootout="true" zone="offensive">
<team id="441766b9-0f24-11e2-8525-18a905767e44" name="Islanders" market="New York" sr_id="sr:team:3703" reference="2"/>
<player id="8fc7171d-e806-11e2-a133-f4ce4684ea4c" full_name="Jonathan Drouin" jersey_number="29" sr_id="sr:player:753686" reference="8477494"/>
</shot>
<shotagainst saved="true" shootout="true" zone="defensive">
<team id="44179d47-0f24-11e2-8525-18a905767e44" name="Flyers" market="Philadelphia" sr_id="sr:team:3699" reference="4"/>
<player id="e6294d59-a7cc-47bf-8536-3782eb04963d" full_name="Carson Bjarnason" jersey_number="64" sr_id="sr:player:2452955" reference="8484147" goals_against="0"/>
</shotagainst>
</statistics>
</event>
Earlier updatesOlder updates are listed in the Change Log Archive.
