Integration GuidesDocs
Coverage MatrixDocumentationChange LogLog InContact Us
Integration Guides

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 Season

It'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 use 2024 as the value for the season parameter.

๐Ÿ”

Reference Update Frequencies and Data Points

To 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).

  1. 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. The season_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 released

    The 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"
              }
            },
  2. Parse the response to map each series object into your bracket layout, ordering series by round, then by conference/division seeding.

  3. 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"

  1. Use the game.id from the Series Schedule response to call a game-level endpoint (e.g., Game Summary).
  2. Store the series.id alongside the game.id so you can map games back to their playoff series.
  3. Merge the game-level response (e.g., home_points, away_points) into your series dataset by matching series.id. This allows you to render live data within the bracket or series view.
  4. 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.