Playoffs and Tournaments
Access NHL playoff, series, and tournament schedules to build brackets and track special events.
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 SeasonIt's important to note that the
season_year
parameter uses the starting year of the season; for example, to retrieve data for the 2024-25 NHL season, you would use2024
as the value for the season parameter.
Reference Update Frequencies and Data PointsTo make the best use of this guide:
- Check the update frequencies page for data refresh timings and recommended call intervals for each endpoint.
- Review the data points section of each referenced endpoint (e.g., Series Schedule) to see the full set of values that the endpoint can return.
Tournaments Covered in the NHL API
Tournament | Description |
---|---|
NHL Playoffs | The annual postseason tournament, structured as a series of best-of-seven matchups. Also known as the Stanley Cup Playoffs. |
NHL All-Star Event | Held every season (except in rare cases such as lockouts or Olympic breaks), typically in late January or early February, featuring league-selected stars and a skills competition. For details on tracking the NHL All-Star event, see the All-Star Game FAQ . |
4 Nations Face-Off | A special international tournament organized by the NHL and NHLPA with select national teams (e.g., Canada, USA, Sweden, Finland). This is not an annual event. For details on tracking the NHL 4 Nations Face-Off, see the 4 Nations Face-Off FAQ. |
Building an NHL Playoff Bracket
The NHL Playoffs are a best of seven elimination style tournament. Sixteen teams qualify, eight from each conference (Western and Eastern), based on regular season standings. Teams are seeded within their divisions, and each round requires four wins to advance. Each matchup is also called a series and winners progress through the First Round (round=1
), Semifinals Round (round=2
), Conference Finals (round=3
), and ultimately the Stanley Cup Final (round=4
).
-
Call the Series Schedule endpoint to access the playoff schedule organized by series, conference, division, and round.
curl --request GET \ --url https://api.sportradar.com/nhl/trial/v7/en/series/2024/PST/schedule.json \ --header 'accept: application/json' \ --header 'x-api-key: {Your_API_Key}
Note: Ensure to set
season_type = PST
in your response. Theseason_year
is always the year a season begins. For example, 2024 for the 2024-25 season. The initial playoff schedule (with TBD matchups) will be available shortly after the regular season schedule is releasedThe response returns the entire playoff structure with seeded teams and placeholders for participants and times for rounds undetermined (
tbd
,time-tbd
). This allows you to build out an entire bracket in advance, even before matchups are finalized.Stanley Cup Final - TBD vs TBD
<series id="88c47732-1109-43f8-8cb0-ec33cd8e4269" title="Stanley Cup Final - TBD vs TBD" status="scheduled" round="4" start_date="2025-06-04"> <games> <game id="ca1fadb5-22cb-4a8d-b5e5-3154740b8c9e" title="Game 1" status="time-tbd" coverage="full" scheduled="2025-06-05T00:00:00+00:00" home_team="062d9e85-6d5b-463b-91c6-2d1cd044a6cf" away_team="062d9e85-6d5b-463b-91c6-2d1cd044a6cf"> <time_zones/> <home name="Team TBD" alias="TBD" id="062d9e85-6d5b-463b-91c6-2d1cd044a6cf"/> <away name="Team TBD" alias="TBD" id="062d9e85-6d5b-463b-91c6-2d1cd044a6cf"/> </game> <game id="4e2dfc34-281f-48ea-967a-928fa1d41720" title="Game 2" status="time-tbd" coverage="full" scheduled="2025-06-07T00:00:00+00:00" home_team="062d9e85-6d5b-463b-91c6-2d1cd044a6cf" away_team="062d9e85-6d5b-463b-91c6-2d1cd044a6cf"> <time_zones/> <home name="Team TBD" alias="TBD" id="062d9e85-6d5b-463b-91c6-2d1cd044a6cf"/> <away name="Team TBD" alias="TBD" id="062d9e85-6d5b-463b-91c6-2d1cd044a6cf"/> </game> <game id="facf5734-57d1-4483-b747-98098924b5ec" title="Game 3" status="time-tbd" coverage="full" scheduled="2025-06-10T00:00:00+00:00" home_team="062d9e85-6d5b-463b-91c6-2d1cd044a6cf" away_team="062d9e85-6d5b-463b-91c6-2d1cd044a6cf"> <time_zones/> <home name="Team TBD" alias="TBD" id="062d9e85-6d5b-463b-91c6-2d1cd044a6cf"/> <away name="Team TBD" alias="TBD" id="062d9e85-6d5b-463b-91c6-2d1cd044a6cf"/> </game> <game id="53ae3fc3-dd3c-4749-8b28-dedc363e8b5a" title="Game 4" status="time-tbd" coverage="full" scheduled="2025-06-13T00:00:00+00:00" home_team="062d9e85-6d5b-463b-91c6-2d1cd044a6cf" away_team="062d9e85-6d5b-463b-91c6-2d1cd044a6cf"> <time_zones/> <home name="Team TBD" alias="TBD" id="062d9e85-6d5b-463b-91c6-2d1cd044a6cf"/> <away name="Team TBD" alias="TBD" id="062d9e85-6d5b-463b-91c6-2d1cd044a6cf"/> </game> <game id="c712b635-83d8-46c2-8863-14e56d499fcd" title="Game 5 (if necessary)" status="if-necessary" coverage="full" scheduled="2025-06-15T00:00:00+00:00" home_team="062d9e85-6d5b-463b-91c6-2d1cd044a6cf" away_team="062d9e85-6d5b-463b-91c6-2d1cd044a6cf"> <time_zones/> <home name="Team TBD" alias="TBD" id="062d9e85-6d5b-463b-91c6-2d1cd044a6cf"/> <away name="Team TBD" alias="TBD" id="062d9e85-6d5b-463b-91c6-2d1cd044a6cf"/> </game> <game id="80459358-e8c6-4cb2-a15c-a3fb62e0b088" title="Game 6 (if necessary)" status="if-necessary" coverage="full" scheduled="2025-06-18T00:00:00+00:00" home_team="062d9e85-6d5b-463b-91c6-2d1cd044a6cf" away_team="062d9e85-6d5b-463b-91c6-2d1cd044a6cf"> <time_zones/> <home name="Team TBD" alias="TBD" id="062d9e85-6d5b-463b-91c6-2d1cd044a6cf"/> <away name="Team TBD" alias="TBD" id="062d9e85-6d5b-463b-91c6-2d1cd044a6cf"/> </game> <game id="8551bc59-f13a-4e72-a626-d19ceb1dd315" title="Game 7 (if necessary)" status="if-necessary" coverage="full" scheduled="2025-06-21T00:00:00+00:00" home_team="062d9e85-6d5b-463b-91c6-2d1cd044a6cf" away_team="062d9e85-6d5b-463b-91c6-2d1cd044a6cf"> <time_zones/> <home name="Team TBD" alias="TBD" id="062d9e85-6d5b-463b-91c6-2d1cd044a6cf"/> <away name="Team TBD" alias="TBD" id="062d9e85-6d5b-463b-91c6-2d1cd044a6cf"/> </game> </games> </series>
{ "series": [ { "id": "88c47732-1109-43f8-8cb0-ec33cd8e4269", "title": "Stanley Cup Final - TBD vs TBD", "status": "scheduled", "round": "4", "start_date": "2025-06-04", "games": [ { "id": "ca1fadb5-22cb-4a8d-b5e5-3154740b8c9e", "title": "Game 1", "status": "time-tbd", "coverage": "full", "scheduled": "2025-06-05T00:00:00+00:00", "home_team": "062d9e85-6d5b-463b-91c6-2d1cd044a6cf", "away_team": "062d9e85-6d5b-463b-91c6-2d1cd044a6cf", "home": { "name": "Team TBD", "alias": "TBD", "id": "062d9e85-6d5b-463b-91c6-2d1cd044a6cf" }, "away": { "name": "Team TBD", "alias": "TBD", "id": "062d9e85-6d5b-463b-91c6-2d1cd044a6cf" } }, { "id": "4e2dfc34-281f-48ea-967a-928fa1d41720", "title": "Game 2", "status": "time-tbd", "coverage": "full", "scheduled": "2025-06-07T00:00:00+00:00", "home_team": "062d9e85-6d5b-463b-91c6-2d1cd044a6cf", "away_team": "062d9e85-6d5b-463b-91c6-2d1cd044a6cf", "home": { "name": "Team TBD", "alias": "TBD", "id": "062d9e85-6d5b-463b-91c6-2d1cd044a6cf" }, "away": { "name": "Team TBD", "alias": "TBD", "id": "062d9e85-6d5b-463b-91c6-2d1cd044a6cf" } }, { "id": "facf5734-57d1-4483-b747-98098924b5ec", "title": "Game 3", "status": "time-tbd", "coverage": "full", "scheduled": "2025-06-10T00:00:00+00:00", "home_team": "062d9e85-6d5b-463b-91c6-2d1cd044a6cf", "away_team": "062d9e85-6d5b-463b-91c6-2d1cd044a6cf", "home": { "name": "Team TBD", "alias": "TBD", "id": "062d9e85-6d5b-463b-91c6-2d1cd044a6cf" }, "away": { "name": "Team TBD", "alias": "TBD", "id": "062d9e85-6d5b-463b-91c6-2d1cd044a6cf" } }, { "id": "53ae3fc3-dd3c-4749-8b28-dedc363e8b5a", "title": "Game 4", "status": "time-tbd", "coverage": "full", "scheduled": "2025-06-13T00:00:00+00:00", "home_team": "062d9e85-6d5b-463b-91c6-2d1cd044a6cf", "away_team": "062d9e85-6d5b-463b-91c6-2d1cd044a6cf", "home": { "name": "Team TBD", "alias": "TBD", "id": "062d9e85-6d5b-463b-91c6-2d1cd044a6cf" }, "away": { "name": "Team TBD", "alias": "TBD", "id": "062d9e85-6d5b-463b-91c6-2d1cd044a6cf" } }, { "id": "c712b635-83d8-46c2-8863-14e56d499fcd", "title": "Game 5 (if necessary)", "status": "if-necessary", "coverage": "full", "scheduled": "2025-06-15T00:00:00+00:00", "home_team": "062d9e85-6d5b-463b-91c6-2d1cd044a6cf", "away_team": "062d9e85-6d5b-463b-91c6-2d1cd044a6cf", "home": { "name": "Team TBD", "alias": "TBD", "id": "062d9e85-6d5b-463b-91c6-2d1cd044a6cf" }, "away": { "name": "Team TBD", "alias": "TBD", "id": "062d9e85-6d5b-463b-91c6-2d1cd044a6cf" } }, { "id": "80459358-e8c6-4cb2-a15c-a3fb62e0b088", "title": "Game 6 (if necessary)", "status": "if-necessary", "coverage": "full", "scheduled": "2025-06-18T00:00:00+00:00", "home_team": "062d9e85-6d5b-463b-91c6-2d1cd044a6cf", "away_team": "062d9e85-6d5b-463b-91c6-2d1cd044a6cf", "home": { "name": "Team TBD", "alias": "TBD", "id": "062d9e85-6d5b-463b-91c6-2d1cd044a6cf" }, "away": { "name": "Team TBD", "alias": "TBD", "id": "062d9e85-6d5b-463b-91c6-2d1cd044a6cf" } }, { "id": "8551bc59-f13a-4e72-a626-d19ceb1dd315", "title": "Game 7 (if necessary)", "status": "if-necessary", "coverage": "full", "scheduled": "2025-06-21T00:00:00+00:00", "home_team": "062d9e85-6d5b-463b-91c6-2d1cd044a6cf", "away_team": "062d9e85-6d5b-463b-91c6-2d1cd044a6cf", "home": { "name": "Team TBD", "alias": "TBD", "id": "062d9e85-6d5b-463b-91c6-2d1cd044a6cf" }, "away": { "name": "Team TBD", "alias": "TBD", "id": "062d9e85-6d5b-463b-91c6-2d1cd044a6cf" } } ] } ] }
As teams advance through earlier rounds, the
tbd
placeholders are automatically replaced with real team data. Similarly, once exact game times are confirmed,time-tbd
statuses are updated to scheduled start times. Schedule information, including games and matchups, is updated in real time as changes occur.Series Snippet - Game 1
<series id="03060dd2-ee5b-43b7-b2a2-26c5a3879377" title="Western Conference - Semifinals - DAL vs WPG" status="closed" round="2" start_date="2025-05-07"> <participant name="Stars" seed="3" record="4"> <team id="44157522-0f24-11e2-8525-18a905767e44" name="Stars" market="Dallas" alias="DAL" sr_id="sr:team:3684" reference="25"/> <source id="38f95ece-a753-47d6-add9-71ee41f457a8" title="Western Conference - First Round - COL vs DAL" round="1" outcome="win"/> <division id="94dee71b-a480-4c09-b890-274520a1567f" name="Central" alias="CENTRAL" seed="C2"/> </participant> <participant name="Jets" seed="1" record="2"> <team id="44180e55-0f24-11e2-8525-18a905767e44" name="Jets" market="Winnipeg" alias="WPG" sr_id="sr:team:3676" reference="52"/> <source id="0fca7d27-8804-4ae6-b58b-af3e3afbcdbe" title="Western Conference - First Round - STL vs WPG" round="1" outcome="win"/> <division id="94dee71b-a480-4c09-b890-274520a1567f" name="Central" alias="CENTRAL" seed="C1"/> </participant> <games> <game id="33f5ebbe-b6be-4c36-a589-0de2068db979" title="Game 1" status="closed" coverage="full" scheduled="2025-05-08T01:30:00+00:00" home_points="2" away_points="3" sr_id="sr:match:59907334" reference="30231" home_team="44180e55-0f24-11e2-8525-18a905767e44" away_team="44157522-0f24-11e2-8525-18a905767e44"> <venue id="900327b2-73d0-4e44-a138-fbf4fcbb058f" name="Canada Life Centre" capacity="15321" address="300 Portage Avenue" city="Winnipeg" state="MB" zip="R3C 5S4" country="CAN" time_zone="US/Central" sr_id="sr:venue:6012"> <location lat="49.89279" lng="-97.14345"/> </venue> <time_zones venue="US/Central" home="US/Central" away="US/Central"/> <home id="44180e55-0f24-11e2-8525-18a905767e44" name="Winnipeg Jets" alias="WPG" seed="1" sr_id="sr:team:3676" reference="52"> </home> <away id="44157522-0f24-11e2-8525-18a905767e44" name="Dallas Stars" alias="DAL" seed="3" sr_id="sr:team:3684" reference="25"> </away> <broadcasts> <broadcast network="ESPN" type="TV" locale="National" channel="206"/> <broadcast network="TVAS" type="TV" locale="International"/> <broadcast network="CBC" type="TV" locale="International"/> <broadcast network="SportsNet" type="TV" locale="International"/> </broadcasts> </game>
{ "league": { "id": "fd560107-a85b-4388-ab0d-655ad022aff7", "name": "NHL", "alias": "NHL" }, "season": { "id": "89d406e7-9d45-4e55-bdb3-5bf2a95b26d4", "year": 2024, "type": "PST" }, "series": [ { "id": "03060dd2-ee5b-43b7-b2a2-26c5a3879377", "title": "Western Conference - Semifinals - DAL vs WPG", "status": "closed", "round": 2, "start_date": "2025-05-07", "participants": [ { "name": "Stars", "seed": 3, "record": 4, "team": { "id": "44157522-0f24-11e2-8525-18a905767e44", "name": "Stars", "market": "Dallas", "alias": "DAL", "sr_id": "sr:team:3684", "reference": "25" }, "source": { "id": "38f95ece-a753-47d6-add9-71ee41f457a8", "title": "Western Conference - First Round - COL vs DAL", "round": 1, "outcome": "win" }, "division": { "id": "94dee71b-a480-4c09-b890-274520a1567f", "name": "Central", "alias": "CENTRAL", "seed": "C2" } }, { "name": "Jets", "seed": 1, "record": 2, "team": { "id": "44180e55-0f24-11e2-8525-18a905767e44", "name": "Jets", "market": "Winnipeg", "alias": "WPG", "sr_id": "sr:team:3676", "reference": "52" }, "source": { "id": "0fca7d27-8804-4ae6-b58b-af3e3afbcdbe", "title": "Western Conference - First Round - STL vs WPG", "round": 1, "outcome": "win" }, "division": { "id": "94dee71b-a480-4c09-b890-274520a1567f", "name": "Central", "alias": "CENTRAL", "seed": "C1" } } ], "games": [ { "id": "33f5ebbe-b6be-4c36-a589-0de2068db979", "title": "Game 1", "status": "closed", "coverage": "full", "scheduled": "2025-05-08T01:30:00+00:00", "home_points": 2, "away_points": 3, "sr_id": "sr:match:59907334", "reference": "30231", "time_zones": { "venue": "US/Central", "home": "US/Central", "away": "US/Central" }, "venue": { "id": "900327b2-73d0-4e44-a138-fbf4fcbb058f", "name": "Canada Life Centre", "capacity": 15321, "address": "300 Portage Avenue", "city": "Winnipeg", "state": "MB", "zip": "R3C 5S4", "country": "CAN", "time_zone": "US/Central", "sr_id": "sr:venue:6012", "location": { "lat": "49.89279", "lng": "-97.14345" } }, "broadcasts": [ { "network": "ESPN", "type": "TV", "locale": "National", "channel": "206" }, { "network": "TVAS", "type": "TV", "locale": "International" }, { "network": "CBC", "type": "TV", "locale": "International" }, { "network": "SportsNet", "type": "TV", "locale": "International" } ], "home": { "id": "44180e55-0f24-11e2-8525-18a905767e44", "name": "Winnipeg Jets", "alias": "WPG", "seed": 1, "sr_id": "sr:team:3676", "reference": "52" }, "away": { "id": "44157522-0f24-11e2-8525-18a905767e44", "name": "Dallas Stars", "alias": "DAL", "seed": 3, "sr_id": "sr:team:3684", "reference": "25" } },
-
Parse the response to map each
series
object into your bracket layout, ordering series byround
, then by conference/division seeding. -
Refresh your bracket throughout the playoffs by continuing to poll the Series Schedule endpoint at at the recommended pull frequency. This ensures your bracket reflects the latest results, advancing winners and filling in TBD matchups as they are determined.
List of Valid Series Statuses
scheduled
- The series is scheduled to occur.inprogress
โ The series is in progress.closed
โ The series is over.
Bracket Example
This bracket is an example of how data from the Series Schedule endpoint can be visualized. Each matchup is represented by a series
object, which includes the participating teams, their seed
, and the number of wins recorded in the record
field. Series winners advance automatically into the next round (round=1
through round=4
) until the champion is determined.

Going Beyond the Bracket
Once youโve built the playoff bracket using the Series Schedule endpoint, you can enhance the experience by layering in additional insights with series-specific feeds. These endpoints let you go deeper than just wins and losses, providing detailed context on team and player performance throughout each round.
-
Series Faceoffs โ Returns granular face-off information for a given
series.id
. Data includes breakdowns by period, zone (offensive, defensive, neutral), and game strength (even, power play, shorthanded). This is useful for highlighting team tendencies or individual player effectiveness in face-off situations. -
Series Statistics โ Provides comprehensive team and player statistics scoped to a specific
series.id
. This feed can power features like comparing team shot totals across a series, tracking goalie save percentages, or spotlighting top scorers within a playoff matchup.
Combining these feeds with the base bracket data enables you to move beyond simple win tracking and deliver richer series insights, performance dashboards, or matchup previews for your users.
Tracking Live Data
You can track live data such as scores and game status by polling each game.id
associated with an active series.id
. Focus on games where status = "created"
or status = "inprogress"
- Use the
game.id
from the Series Schedule response to call a game-level endpoint (e.g., Game Summary). - Store the
series.id
alongside thegame.id
so you can map games back to their playoff series. - Merge the game-level response (e.g.,
home_points
,away_points
) into your series dataset by matchingseries.id
. This allows you to render live data within the bracket or series view. - Monitor the Daily Change Log feed to capture any official corrections or revisions (e.g., stat adjustments or updated game status) after games close (
status = "closed"
).
For additional details on tracking live data, see the Live Game Tracking integration scenario.
Updated 6 days ago