Game Status Workflow
Intro
An NHL game progresses through several statuses over its lifecycle. Use the game status
field to determine the appropriate endpoint to query.
The status
is available in all Schedule and Game endpoints. To retrieve a game’s initial status along with schedule details, request the Schedule or Daily Schedule endpoints.
<game id="d8001de4-2249-4e1f-a90c-3003f2cee2f2" status="scheduled" coverage="full" scheduled="2025-10-07T21:00:00Z" sr_id="sr:match:62026772" reference="20001" home_team="4418464d-0f24-11e2-8525-18a905767e44" away_team="4416272f-0f24-11e2-8525-18a905767e44">
<venue id="7cc8e88f-9196-4dbc-aa6a-d6f1a0550673" name="Amerant Bank Arena" capacity="19250" address="1 Panther Parkway" city="Sunrise" state="FL" zip="33323" country="USA" time_zone="US/Eastern" sr_id="sr:venue:6004">
<location lat="26.15847" lng="-80.32555"/>
</venue>
<time_zones venue="US/Eastern" home="US/Eastern" away="US/Central"/>
<home id="4418464d-0f24-11e2-8525-18a905767e44" name="Florida Panthers" alias="FLA" sr_id="sr:team:3687" reference="13">
</home>
<away id="4416272f-0f24-11e2-8525-18a905767e44" name="Chicago Blackhawks" alias="CHI" sr_id="sr:team:3681" reference="16">
</away>
"games": [
{
"id": "d8001de4-2249-4e1f-a90c-3003f2cee2f2",
"status": "scheduled",
"coverage": "full",
"scheduled": "2025-10-07T21:00:00Z",
"sr_id": "sr:match:62026772",
"reference": "20001",
"time_zones": {
"venue": "US/Eastern",
"home": "US/Eastern",
"away": "US/Central"
},
"venue": {
"id": "7cc8e88f-9196-4dbc-aa6a-d6f1a0550673",
"name": "Amerant Bank Arena",
"capacity": 19250,
"address": "1 Panther Parkway",
"city": "Sunrise",
"state": "FL",
"zip": "33323",
"country": "USA",
"time_zone": "US/Eastern",
"sr_id": "sr:venue:6004",
"location": {
"lat": "26.15847",
"lng": "-80.32555"
}
},
"broadcasts": [
{
"network": "ESPN",
"type": "TV",
"locale": "National",
"channel": "206"
}
],
"home": {
"id": "4418464d-0f24-11e2-8525-18a905767e44",
"name": "Florida Panthers",
"alias": "FLA",
"sr_id": "sr:team:3687",
"reference": "13"
},
"away": {
"id": "4416272f-0f24-11e2-8525-18a905767e44",
"name": "Chicago Blackhawks",
"alias": "CHI",
"sr_id": "sr:team:3681",
"reference": "16"
}
},
Coverage Levels
We provide two different levels of detail to ensure maximum coverage. We combine coverage levels with the correct feeds to ensure you are getting the most comprehensive data offering in the most efficient manner possible.
Full – We provide live play-by-play coverage for the entire game. We provide updated scores and time remaining as well as team- and player-level data in near real time. Full coverage is available for all regular and postseason games as well as those preseason games available live via a broadcast.
Boxscore – We provide scores and time remaining, in a timely manner, as the game progresses. In-game updates are always subject to availability of sources. Boxscore coverage is available for any preseason game that is not in an NHL venue, as those games are not covered by NHL statisticians.
Preseason Coverage Note:Preseason games played outside NHL venues feature boxscore coverage, as they are not covered by NHL statisticians. Use the Game Boxscore endpoint for these games.
API data latency varies compared to regular season games. Preseason games often serve as a testing ground, resulting in changes and adjustments to data collection methods. As a result, data updates may not be as timely or consistent as the regular season.
Game Status Definitions
scheduled
- The game is scheduled to occur.created
- The game has been created and we have begun logging information for the game.inprogress
– The game is in progress.complete
– The game is over, but stat validation is not complete.closed
– The game is over and the stats have been validated.cancelled
– The game has been cancelled. No makeup game will be played as a result.delayed
– The start of the game is currently delayed or the game has gone from in progress to delayed for some reason.postponed
– The game has been postponed, to be made up at another day and time. Once the makeup game is announced, a new game and ID will be created and scheduled on the announced makeup date. You should request the scheduled feed(s) regularly to identify the re-scheduled makeup game(s).time-tbd
– The game has been scheduled, but a time has yet to be announced.if-necessary
– The game will be scheduled if it is required.unnecessary
– The series game was scheduled to occur, but will not take place due to one team clinching the series early.
Game Workflows
See the below diagrams for common game status flows, with context around each update.
Standard Game
Below is the flow for a typical NHL game from scheduled
to closed
.

Time-TBD
Once a game reaches scheduled
status it follows the Standard Game flow.
Note: Although this example is shown using the NBA API, the response structure and use of time-tbd
are the same in the NHL API.
Time-TBD Samples
<series id="0f81bb4d-1d0c-4a3b-82de-507534154095" title="NBA Finals - TBD vs TBD" round="4" start_date="2024-06-06" status="scheduled">
<games>
<game id="342f103b-0fd7-47ac-a84d-1391e3605e96" status="time-tbd" title="Game 1" coverage="full" scheduled="2024-06-06T17:00:00+00:00" neutral_site="false" track_on_court="true" home_team="907dc4e5-6957-4d19-b7d4-b1b7003b91e6" away_team="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
<time_zones/>
<home name="Team TBD" alias="TBD" id="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
</home>
<away name="Team TBD" alias="TBD" id="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
</away>
</game>
<game id="71d8d5fc-6836-43c1-85a0-61a828296a06" status="time-tbd" title="Game 2" coverage="full" scheduled="2024-06-09T17:00:00+00:00" neutral_site="false" track_on_court="true" home_team="907dc4e5-6957-4d19-b7d4-b1b7003b91e6" away_team="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
<time_zones/>
<home name="Team TBD" alias="TBD" id="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
</home>
<away name="Team TBD" alias="TBD" id="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
</away>
</game>
<game id="50b170b9-37e2-47d0-b517-e56ebb960cba" status="time-tbd" title="Game 3" coverage="full" scheduled="2024-06-12T17:00:00+00:00" neutral_site="false" track_on_court="true" home_team="907dc4e5-6957-4d19-b7d4-b1b7003b91e6" away_team="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
<time_zones/>
<home name="Team TBD" alias="TBD" id="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
</home>
<away name="Team TBD" alias="TBD" id="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
</away>
</game>
<game id="8e94445c-c223-4a49-a759-0b651e440b95" status="time-tbd" title="Game 4" coverage="full" scheduled="2024-06-14T17:00:00+00:00" neutral_site="false" track_on_court="true" home_team="907dc4e5-6957-4d19-b7d4-b1b7003b91e6" away_team="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
<time_zones/>
<home name="Team TBD" alias="TBD" id="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
</home>
<away name="Team TBD" alias="TBD" id="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
</away>
</game>
<game id="aaa3ddb3-dd1b-459e-a686-d2bfc4408881" status="if-necessary" title="Game 5 (if necessary)" coverage="full" scheduled="2024-06-17T17:00:00+00:00" neutral_site="false" track_on_court="true" home_team="907dc4e5-6957-4d19-b7d4-b1b7003b91e6" away_team="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
<time_zones/>
<home name="Team TBD" alias="TBD" id="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
</home>
<away name="Team TBD" alias="TBD" id="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
</away>
</game>
<game id="7c16f1ec-6629-4675-aaaa-2a31835862a6" status="if-necessary" title="Game 6 (if necessary)" coverage="full" scheduled="2024-06-20T17:00:00+00:00" neutral_site="false" track_on_court="true" home_team="907dc4e5-6957-4d19-b7d4-b1b7003b91e6" away_team="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
<time_zones/>
<home name="Team TBD" alias="TBD" id="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
</home>
<away name="Team TBD" alias="TBD" id="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
</away>
</game>
<game id="09129676-2320-4151-976d-713ea785d97b" status="if-necessary" title="Game 7 (if necessary)" coverage="full" scheduled="2024-06-23T17:00:00+00:00" neutral_site="false" track_on_court="true" home_team="907dc4e5-6957-4d19-b7d4-b1b7003b91e6" away_team="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
<time_zones/>
<home name="Team TBD" alias="TBD" id="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
</home>
<away name="Team TBD" alias="TBD" id="907dc4e5-6957-4d19-b7d4-b1b7003b91e6">
</away>
</game>
</games>
</series>
"series": [
{
"id": "0f81bb4d-1d0c-4a3b-82de-507534154095",
"title": "NBA Finals - TBD vs TBD",
"round": 4,
"start_date": "2024-06-06",
"status": "scheduled",
"participants": [],
"games": [
{
"id": "342f103b-0fd7-47ac-a84d-1391e3605e96",
"status": "time-tbd",
"title": "Game 1",
"coverage": "full",
"scheduled": "2024-06-06T17:00:00+00:00",
"neutral_site": false,
"track_on_court": true,
"home": {
"name": "Team TBD",
"alias": "TBD",
"id": "907dc4e5-6957-4d19-b7d4-b1b7003b91e6"
},
"away": {
"name": "Team TBD",
"alias": "TBD",
"id": "907dc4e5-6957-4d19-b7d4-b1b7003b91e6"
}
},
{
"id": "71d8d5fc-6836-43c1-85a0-61a828296a06",
"status": "time-tbd",
"title": "Game 2",
"coverage": "full",
"scheduled": "2024-06-09T17:00:00+00:00",
"neutral_site": false,
"track_on_court": true,
"home": {
"name": "Team TBD",
"alias": "TBD",
"id": "907dc4e5-6957-4d19-b7d4-b1b7003b91e6"
},
"away": {
"name": "Team TBD",
"alias": "TBD",
"id": "907dc4e5-6957-4d19-b7d4-b1b7003b91e6"
}
},
{
"id": "50b170b9-37e2-47d0-b517-e56ebb960cba",
"status": "time-tbd",
"title": "Game 3",
"coverage": "full",
"scheduled": "2024-06-12T17:00:00+00:00",
"neutral_site": false,
"track_on_court": true,
"home": {
"name": "Team TBD",
"alias": "TBD",
"id": "907dc4e5-6957-4d19-b7d4-b1b7003b91e6"
},
"away": {
"name": "Team TBD",
"alias": "TBD",
"id": "907dc4e5-6957-4d19-b7d4-b1b7003b91e6"
}
},
{
"id": "8e94445c-c223-4a49-a759-0b651e440b95",
"status": "time-tbd",
"title": "Game 4",
"coverage": "full",
"scheduled": "2024-06-14T17:00:00+00:00",
"neutral_site": false,
"track_on_court": true,
"home": {
"name": "Team TBD",
"alias": "TBD",
"id": "907dc4e5-6957-4d19-b7d4-b1b7003b91e6"
},
"away": {
"name": "Team TBD",
"alias": "TBD",
"id": "907dc4e5-6957-4d19-b7d4-b1b7003b91e6"
}
},
{
"id": "aaa3ddb3-dd1b-459e-a686-d2bfc4408881",
"status": "if-necessary",
"title": "Game 5 (if necessary)",
"coverage": "full",
"scheduled": "2024-06-17T17:00:00+00:00",
"neutral_site": false,
"track_on_court": true,
"home": {
"name": "Team TBD",
"alias": "TBD",
"id": "907dc4e5-6957-4d19-b7d4-b1b7003b91e6"
},
"away": {
"name": "Team TBD",
"alias": "TBD",
"id": "907dc4e5-6957-4d19-b7d4-b1b7003b91e6"
}
},
{
"id": "7c16f1ec-6629-4675-aaaa-2a31835862a6",
"status": "if-necessary",
"title": "Game 6 (if necessary)",
"coverage": "full",
"scheduled": "2024-06-20T17:00:00+00:00",
"neutral_site": false,
"track_on_court": true,
"home": {
"name": "Team TBD",
"alias": "TBD",
"id": "907dc4e5-6957-4d19-b7d4-b1b7003b91e6"
},
"away": {
"name": "Team TBD",
"alias": "TBD",
"id": "907dc4e5-6957-4d19-b7d4-b1b7003b91e6"
}
},
{
"id": "09129676-2320-4151-976d-713ea785d97b",
"status": "if-necessary",
"title": "Game 7 (if necessary)",
"coverage": "full",
"scheduled": "2024-06-23T17:00:00+00:00",
"neutral_site": false,
"track_on_court": true,
"home": {
"name": "Team TBD",
"alias": "TBD",
"id": "907dc4e5-6957-4d19-b7d4-b1b7003b91e6"
},
"away": {
"name": "Team TBD",
"alias": "TBD",
"id": "907dc4e5-6957-4d19-b7d4-b1b7003b91e6"
}
}
]
},
Below is the flow of a time-tbd
game.

Postponed
A postponed game will remain in the postponed
status. See game 0c8e63c4-f9b4-4249-be2f-461bbdb0f6b9
as an example.
Once a new game is created in scheduled status, it follows the Standard Game flow. Below is the flow of a postponed
game.

Suspended
Once a suspended game moves back to inprogress
it follows the Standard Game flow.
Below is the flow of a suspended
game.

Cancelled
A cancelled game will remain in the cancelled
status. See game 837f6085-dc9d-4e40-9bf6-d3854dcddf0b
as an example.
Below is the flow of a cancelled game.

Overtime and Shootout
While not represented as a status
in the NHL API, NHL games can extend beyond regulation time. If the score is tied after three periods, the game proceeds to overtime, and if still tied, to a shootout.
<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>
"scoring": [
{
"number": 1,
"sequence": 1,
"points": 0,
"type": "period"
},
{
"number": 2,
"sequence": 2,
"points": 1,
"type": "period"
},
{
"number": 3,
"sequence": 3,
"points": 1,
"type": "period"
},
{
"number": 1,
"sequence": 4,
"points": 0,
"type": "overtime"
},
{
"number": 1,
"sequence": 5,
"points": 1,
"type": "shootout"
}
Game State Samples
Click the links below for sample data of Game feeds by game state.
SimulationsUse our Simulations to view each of these game states and test your integration.
Data Entry Workflow
See a daily breakdown of data updates for the NHL API.
Updated 35 minutes ago