NHL v5

Frequently Asked Questions
API API Version XSD Schema
National Hockey League v5 Download
Note: Authentication is required for all API calls.
## NHL API Map To best utilize the NHL API, you will need several parameters to create your API calls. The map below illustrates how you can obtain the parameters you need. >

Examples:

>To find a players assists for a given game: >
  1. Call the schedule or daily schedule and find the Game Id for the chosen game
  2. Call the Game Boxscore using the Game Id
  3. Find the assists statistics and locate the player full_name
>The number of the players's assists is displayed. >
    >To find the coach's name for a given team: >
    1. Call the season or series schedule and find id for the coach's team
    2. Call the Team Profile using the Team ID
    3. Find the coach element and locate the full_name attribute
    >The coach's full name is displayed. The primary feeds require only a date or season to call the endpoints. Those feeds provide Game, Team, or Player Ids which can be used to generate the game, team, and player feeds. All of the other feeds require no variables.
    Note: Series Ids are only listed in the Series Schedule feed. Use the Series Schedule to get the Ids required to access the Series Faceoffs and Series Statistics.
    ## 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. ## NHL API v5 Simulations Our NHL simulations give you the opportunity to test your code against a simulation of live data before the preseason starts or any time! Our simulation system replays select completed games allowing you to view our API feeds as if they were happening live. Simulations run every day according to the below schedule. Data is reset for each day's simulations at 12:00pm UTC.
    Quick Access
    Start Time (UTC) Game Game ID
    1:00pm Calgary at Ottawa 823a317f-8bbe-4e26-8c75-2a05138f3d70
    1:00pm Edmonton at Vancouver 66a5f479-0011-4ead-a51d-33a93e0062f7
    1:00pm Montreal at Winnipeg 8d591315-f3c8-4925-a3f1-d5a23ac8ba55
    5:00pm Dallas at Tampa Bay 90008b6a-3600-45e6-a3c3-21cca49e5d9d
    5:00pm Pittsburgh at New York e4ba2be3-6cdc-4434-9194-5694e82c7ef9
    9:00pm St. Louis at San Jose 86bf6496-4a5d-456d-8e63-2cd41bd0373b​
    9:00pm Minnesota at Vegas c7e64152-06e2-44cc-872f-678fb64714ca
    9:00pm Colorado at Arizona d364d4ec-892d-48d0-b44d-40a2e711b174​
    9:00pm Vegas at Anaheim dd1f6ad9-733a-4a28-b4a8-955f1fc04cc2
    To retrieve the game IDs, team IDs, and other associated information for each game listed above, you can use the following URL with the syntax noted below. If you have an existing NHL API key, simply replace the access_level (trial or production) in the URL of a feed with simulation. https://api.sportradar.us/nhl/simulation/`{version}`/`{language_code}`/games/2020/SIM/schedule.`{format}`?api_key=`{your_api_key}`
    Note: Use SIM as the nhl_season and 2020 as the season_year for each applicable NHL simulation request.
    | Parameter | Description | | --------- | ----------- | | `version` | Version number of the API you are accessing (Current Version: v5). | | `language_code` | 2 letter code for supported languages: en (English), es (Spanish), fr (French), ru (Russian), and zh (simplified Chinese). | | `nhl_season` | SIM | | `season_year` | 2020 | | `format` | xml or json. | | `your_api_key` | Your API key. |

    Feeds Available: Game Analytics, Game Boxscore, Game Faceoffs, Game Play-By-Play, Game Shot Zones, Game Summary, Game Time on Ice, League Leaders (Goaltending), League Leaders (Skaters), Schedule, Seasonal Analytics, Seasonal Faceoffs, Seasonal Shot Zones, Seasonal Statistics, Standings, Team Profile, Push Events, and Push Statistics.

    For syntax structure on each feed, please reference the below documentation. ## Daily Change Log Provides IDs and timestamps for teams, players, game statistics, schedules, and standings that have been modified on a given date. To receive the data updates, use these unique IDs to pull relevant API feeds.
    Update Frequency: As Necessary
    Content Type: XML or JSON
    Game Data Points: Id Reference Title
    League Data Points: Alias
    Id
    Name Season Id
    Player Data Points: Full Name Id Reference
    Team Data Points: Id
    Market
    Name Reference
    ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nhl/trial/v5/en/league/2015/09/21/changes.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/nhl/trial/v5/en/league/2015/09/21/changes.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.us/nhl/trial/v5/en/league/2015/09/21/changes.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Daily Change Log feed by replacing the parameters in the following URL: https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/league/`{year}`/`{month}`/`{day}`/changes.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production) or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v5). | | `language_code` | 2 letter code for supported languages: en (English), ru (Russian), and zh (simplified Chinese). | | `year` | Year in 4 digit format (YYYY). | | `month` | Month in 2 digit format (MM). | | `day` | Day in 2 digit format (DD). | | `format` | xml or json. | | `your_api_key` | Your API key. | To retrieve the XML Schema Definition (.XSD) for the Daily Change Log, replace the parameters in the following URL. https://feed.elasticstats.com/schema/hockey/changelog-v2.0.xsd Return to API map ## Daily Schedule Date, time, location, and other event details for every match-up taking place in the league defined day.
    Update Frequency: As Necessary
    Content Type: XML or JSON
    Game Data Points: Away Team Alias
    Away Team Id
    Away Team Name
    Away Team Points
    Away Team Seeding
    Broadcast Cable
    Broadcast Internet
    Broadcast Network
    Broadcast Radio
    Broadcast Satellite
    Coverage
    Home Team Alias
    Home Team Id
    Home Team Name
    Home Team Points
    Home Team Seeding
    Id
    Reference
    Scheduled Date and Time
    Status
    Title
    League Data Points: Alias Id Name
    Venue Data Points: Address
    Capacity
    City
    Country
    Description
    Id
    Name
    State
    Timezone
    Zip
    ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nhl/trial/v5/en/games/2015/09/21/schedule.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/nhl/trial/v5/en/games/2015/09/21/schedule.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.us/nhl/trial/v5/en/games/2015/09/21/schedule.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Daily Schedule feed by replacing the parameters in the following URL: https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/games/`{year}`/`{month}`/`{day}`/schedule.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production) or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v5). | | `language_code` | 2 letter code for supported languages: en (English), ru (Russian), and zh (simplified Chinese). | | `year` | Year in 4 digit format (YYYY). | | `month` | Month in 2 digit format (MM). | | `day` | Day in 2 digit format (DD). | | `format` | xml or json. | | `your_api_key` | Your API key. | To retrieve the XML Schema Definition (.XSD) for the Daily Schedule, replace the parameters in the following URL. https://feed.elasticstats.com/schema/hockey/schedule-v2.0.xsd Return to API map ## Daily Transfers Information for all transfers added or edited during the league-defined day.
    Update Frequency: As Necessary
    Content Type: XML or JSON
    League Data Points: Alias Id Name
    Player Data Points: First Name
    Full Name
    Id
    Jersey Number
    Last Name
    Position
    Primary Position
    Reference
    Transfers Description
    Transfers Effective Date
    Transfers End Date
    Transfers Id
    Transfers New Team Id
    Transfers New Team Market
    Transfers New Team Name
    Transfers Notes
    Transfers Old Team Id
    Transfers Old Team Market
    Transfers Old Team Name
    Transfers Start Date
    Transfers Update Date
    ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nhl/trial/v5/en/league/2015/09/21/transfers.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/nhl/trial/v5/en/league/2015/09/21/transfers.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.us/nhl/trial/v5/en/league/2015/09/21/transfers.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Daily Transfers feed by replacing the parameters in the following URL: https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/league/`{year}`/`{month}`/`{day}`/transfers.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production) or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v5). | | `language_code` | 2 letter code for supported languages: en (English), ru (Russian), and zh (simplified Chinese). | | `year` | Year in 4 digit format (YYYY). | | `month` | Month in 2 digit format (MM). | | `day` | Day in 2 digit format (DD). | | `format` | xml or json. | | `your_api_key` | Your API key. | To retrieve the XML Schema Definition (.XSD) for the Daily Transfers, replace the parameters in the following URL. https://feed.elasticstats.com/schema/hockey/transfers-v2.0.xsd Return to API map ## Game Boxscore Top-level team scores by quarter and full statistics for team leaders in assists, goals, and points.
    Update Frequency: As Necessary
    Content Type: XML or JSON
    Boxscore Data Points: Actual End Time
    Actual Start Time
    Attendance
    Away Team Alias
    Away Team Flag
    Away Team Game Score
    Away Team Id
    Away Team Market
    Away Team Name
    Away Team Overtime Points
    Away Team Period Score
    Away Team Reference
    Away Team Shootout Score
    Away Team Strength
    Duration (in game time)
    Clock
    Game Clock
    Game Official Assignment
    Game Official Experience
    Game Offical First Name
    Game Official Full Name
    Game Official Id
    Game Official Last Name
    Game Official Number
    Period
    Home Team Alias
    Home Team Flag
    Home Team Game Score
    Home Team Id
    Home Team Market
    Home Team Name
    Home Team Overtime Points
    Home Team Period Score
    Home Team Reference
    Home Team Shootout Points
    Home Team Strength
    Overtime Number
    Overtime Sequence
    Period id
    Period Number
    Period Sequence
    Period Type
    Shootout Number
    Shootout Sequence
    Team Leader In Assists Dominant Hand
    Team Leader In Assists First Name
    Team Leader In Assists Full Name
    Team Leader In Assists Id
    Team Leader In Assists Jersey Number
    Team Leader In Assists Last Name
    Team Leader In Assists Position
    Team Leader In Assists Primary Position
    Team Leader In Assists Reference
    Team Leader In Goals Dominant Hand
    Team Leader In Goals First Name
    Team Leader In Goals Full Name
    Team Leader In Goals Id
    Team Leader In Goals Jersey Number
    Team Leader In Goals Last Name
    Team Leader In Goals Position
    Team Leader In Goals Primary Position
    Team Leaders In Goals Reference
    Team Leader In Points Dominant Hand
    Team Leader In Points First Name
    Team Leader In Points Full Name
    Team Leader In Points Id
    Team Leader In Points Jersey Number
    Team Leader In Points Last Name
    Team Leader In Points Position
    Team Leader In Points Primary Position
    Team Leader In Points Reference
    Wall Clock
    Game Data Points: Away Team Id
    Away Team Reference
    Coverage
    Entry Mode
    Home Team Id
    Home Team Reference
    Id
    Reference
    Scheduled Date And Time
    Status
    Title
    Player Game Statistics Data Points: Assists
    Average Time on Ice
    Blocked Attempts
    Blocked Shots
    Empty Net Goals
    Even Strength Assists
    Even Strength Faceoff Win Pct
    Even Strength Faceoffs
    Even Strength Faceoffs Lost
    Even Strength Faceoffs Won
    Even Strength Goals
    Even Strength Missed Shots
    Even Strength Shots on Goal
    Even Strength Time on Ice
    Faceoff Winning Percentage
    Faceoffs
    Faceoffs Lost
    Faceoffs Won
    Game Winning Goal Flag
    Giveaways
    Goals
    Hits
    Missed Shots
    Overtime Assists
    Overtime Goals
    Overtime Score
    Overtime Time on Ice
    Penalties
    Penalties Major
    Penalties Minor
    Penalties Misconduct
    Penalty Goals
    Penalty Minutes
    Penalty Missed Shots
    Penalty Shots on Goal
    Plus/Minus
    Points
    Power Play Assists
    Power Play Faceoff Win Pct
    Power Play Faceoffs
    Power Play Faceoffs Lost
    Power Play Faceoffs Won
    Power Play Goal
    Power Play Missed Shots
    Power Play Shots on Goal
    Power Play Time on Ice
    Shifts
    Shooting Percentage
    Shootout Goals
    Shootout Missed Shots
    Shootout Shots on Goal
    Short Handed Assists
    Short Handed Faceoff Win Pct
    Short Handed Faceoffs
    Short Handed Faceoffs Lost
    Short Handed Faceoffs Won
    Short Handed Goals
    Short Handed Missed Shots
    Short Handed Shots on Goal
    Short Handed Time on Ice
    Shots on Goal
    Takeaways
    Total Time on Ice
    Player Period Statistics Data Points: Assists
    Blocked Attempts
    Blocked Shots
    Even Strength Assists
    Even Strength Goals
    Even Strength Missed Shots
    Even Strength Shots on Goal
    Faceoff Winning Percentage
    Faceoffs
    Faceoffs Lost
    Faceoffs Won
    Giveaways
    Goals
    Hits
    Missed Shots
    Penalties
    Penalty Goals
    Penalty Minutes
    Penalty Missed Shots
    Penalty Shots on Goal
    Points
    Power Play Assists
    Power Play Goals
    Power Play Missed Shots
    Power Play Shots on Goal
    Shifts
    Shooting Percentage
    Short Handed Assists
    Short Handed Goals
    Short Handed Missed Shots
    Short Handed Shots on Goal
    Shots on Goal
    Takeaways
    Player Data Points: Dominant Hand
    First Name
    Full Name
    Id
    Jersey Number
    Last Name
    Position
    Primary Position
    Reference
    Stars Of The Game Data Points: Player Full Name
    Player Id
    Player Jersey Number
    Player Position
    Player Reference
    Sequence
    Team Id
    Team Market
    Team Name
    ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nhl/trial/v5/en/games/f4b120a2-649c-4854-b519-b84414eb5e43/boxscore.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/nhl/trial/v5/en/games/f4b120a2-649c-4854-b519-b84414eb5e43/boxscore.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.us/nhl/trial/v5/en/games/f4b120a2-649c-4854-b519-b84414eb5e43/boxscore.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Game Boxscore feed by replacing the parameters in the following URL: https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/games/`{game_id}`/boxscore.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production), Trial (trial), or Simulation (simulation). | | `version` | Version number of the API you are accessing (Current Version: v5). | | `language_code` | 2 letter code for supported languages: en (English), ru (Russian), and zh (simplified Chinese). | | `game_id` | ID for a given game. | | `format` | xml or json. | | `your_api_key` | Your API key. | To retrieve the XML Schema Definition (.XSD) for the Game Boxscore, replace the parameters in the following URL. https://feed.elasticstats.com/schema/hockey/game-v4.0.xsd Return to API map ## Game Faceoffs Detailed faceoff information for teams and players, including period, zone, and strength breakdowns, for a given game.
    Update Frequency: As Necessary
    Content Type: XML or JSON
    Boxscore Data Points: Actual End Time
    Actual Start Time
    Attendance
    Away Team Game Score
    Away Team Id
    Away Team Market
    Away Team Name
    Away Team Reference
    Duration (in game time)
    Clock
    Period
    Home Team Game Score
    Home Team Id
    Home Team Market
    Home Team Name
    Home Team Reference
    Period Id
    Period Number
    Period Sequence
    Period Type
    Player Game Faceoff Data Points: 3v3 Faceoff Winning Pct
    3v3 Faceoffs
    3v3 Faceoffs Lost
    3v3 Faceoffs Won
    3v4 Faceoff Winning Pct
    3v4 Faceoffs
    3v4 Faceoffs Lost
    3v4 Faceoffs Won
    3v5 Faceoff Winning Pct
    3v5 Faceoffs
    3v5 Faceoffs Lost
    3v5 Faceoffs Won
    4v3 Faceoff Winning Pct
    4v3 Faceoffs
    4v3 Faceoffs Lost
    4v3 Faceoffs Won
    4v4 Faceoff Winning Pct
    4v4 Faceoffs
    4v4 Faceoffs Lost
    4v4 Faceoffs Won
    4v5 Faceoff Winning Pct
    4v5 Faceoffs
    4v5 Faceoffs Lost
    4v5 Faceoffs Won
    5v3 Faceoff Winning Pct
    5v3 Faceoffs
    5v3 Faceoffs Lost
    5v3 Faceoffs Won
    5v4 Faceoff Winning Pct
    5v4 Faceoffs
    5v4 Faceoffs Lost
    5v4 Faceoffs Won
    5v5 Faceoff Winning Pct
    5v5 Faceoffs
    5v5 Faceoffs Lost
    5v5 Faceoffs Won
    Defensive Zone Faceoff Winning Pct
    Defensive Zone Faceoffs
    Defensive Zone Faceoffs Lost
    Defensive Zone Faceoffs Won
    Even Strength Faceoff Winning Pct
    Even Strength Faceoffs
    Even Strength Faceoffs Lost
    Even Strength Faceoffs Won
    Even Strength Type
    Faceoff Winning Percentage
    Faceoffs
    Faceoffs Lost
    Faceoffs Won
    Neutral Zone Faceoff Winning Pct
    Neutral Zone Faceoffs
    Neutral Zone Faceoffs Lost
    Neutral Zone Faceoffs Won
    Offensive Zone Faceoff Winning Pct
    Offensive Zone Faceoffs
    Offensive Zone Faceoffs Lost
    Offensive Zone Faceoffs Won
    Power Play Faceoff Winning Pct
    Power Play Faceoffs
    Power Play Faceoffs Lost
    Power Play Faceoffs Won
    Power Play Type
    Short Handed Faceoff Winning Pct
    Short Handed Faceoffs
    Short Handed Faceoffs Lost
    Short Handed Faceoffs Won
    Short Handed Type
    Team Game Faceoff Data Points: Even Strength Faceoff Winning Pct
    Even Strength Faceoffs
    Even Strength Faceoffs Lost
    Even Strength Faceoffs Won
    Faceoff Winning Percentage
    Faceoffs
    Faceoffs Lost
    Faceoffs Won
    Power Play Faceoff Winning Pct
    Power Play Faceoffs
    Power Play Faceoffs Lost
    Power Play Faceoffs Won
    Short Handed Faceoff Winning Pct
    Short Handed Faceoffs
    Short Handed Faceoffs Lost
    Short Handed Faceoffs Won
    Player Period Faceoff Data Points: Defensive Zone Faceoff Winning Pct
    Defensive Zone Faceoffs
    Defensive Zone Faceoffs Lost
    Defensive Zone Faceoffs Won
    Faceoff Winning Percentage
    Faceoffs
    Faceoffs Lost
    Faceoffs Won
    Neutral Zone Faceoff Winning Pct
    Neutral Zone Faceoffs
    Neutral Zone Faceoffs Lost
    Neutral Zone Faceoffs Won
    Offensive Zone Faceoff Winning Pct
    Offensive Zone Faceoffs
    Offensive Zone Faceoffs Lost
    Offensive Zone Faceoffs Won
    Game Data Points: Away Team Id
    Coverage
    Entry Mode
    Home Team Id
    Id
    Reference
    Scheduled Time And Date
    Status
    Title
    Player Data Points: Full Name
    Id
    Jersey Number Position
    Reference
    Venue Data Points: Address
    Capacity
    City
    Country
    Description
    Id
    Name
    State
    Timezone
    Zip
    ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nhl/trial/v5/en/games/139cbe99-4c04-438e-bd9a-a7abe928a502/faceoffs.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/nhl/trial/v5/en/games/139cbe99-4c04-438e-bd9a-a7abe928a502/faceoffs.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.us/nhl/trial/v5/en/games/139cbe99-4c04-438e-bd9a-a7abe928a502/faceoffs.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Game Faceoffs feed by replacing the parameters in the following URL: https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/games/`{game_id}`/faceoffs.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production), Trial (trial), or Simulation (simulation). | | `version` | Version number of the API you are accessing (Current Version: v5). | | `language_code` | 2 letter code for supported languages: en (English), ru (Russian), and zh (simplified Chinese). | | `game_id` | ID for a given game. | | `format` | xml or json. | | `your_api_key` | Your API key. | To retrieve the XML Schema Definition (.XSD) for the Game Faceoffs, replace the parameters in the following URL. https://feed.elasticstats.com/schema/hockey/faceoffs-v3.0.xsd Return to API map ## Game Play-By-Play Detailed, real-time information on every team possession and game event.
    Update Frequency: As Necessary
    Content Type: XML or JSON
    Boxscore Data Points: Actual End Time
    Actual Start Time
    Attendance
    Duration (in game time)
    Clock
    Period
    Game Data Points: Away Team Id
    Away Team Reference
    Coverage
    Entry Mode
    Home Team Id
    Home Team Reference
    Id
    Reference
    Scheduled Date And Time
    Status
    Title
    Play-By-Play Data Points: Away Team Alias
    Away Team Game Score
    Away Team Id
    Away Team Market
    Away Team Name
    Away Team Period Score
    Away Team Reference
    Away Team Strength
    Event Attribution Team Goal
    Event Attribution Team Id
    Event Attribution Team Market
    Event Attribution Team Name
    Event Clock
    Event Description
    Event Details Goal Zone
    Event Details Penalty Code
    Event Details Penalty Duration
    Event Details Penalty Type
    Event Details Reason
    Event Details Shot Distance
    Event Details Shot Type
    Event Details Stoppage Type
    Event Id
    Event Location X Coordinate
    Event Location Y Coordinate
    Event Participants Player Full Name
    Event Participants Player Id
    Event Participants Player Jersey Number
    Event Participants Team Id
    Event Participants Team Market
    Event Participants Team Name
    Event Type
    Event Zone
    Home Team Alias
    Home Team Game Score
    Home Team Id
    Home Team Market
    Home Team Name
    Home Team Period Score
    Home Team Reference
    Home Team Strength
    Official Flag
    Period Id
    Period Number
    Period Sequence
    Updated Timestamp
    Wall Clock
    Play Details Data Points: Assist Strength
    Assist Zone
    Attempt Blocked Strength
    Attempt Blocked Zone
    Block Strength
    Block Zone
    Faceoffs Strength
    Faceoffs Win Flag
    Faceoffs Zone
    Giveaway Strength
    Giveaway Zone
    Hits Hittee Strength
    Hits Hittee Zone
    Hits Hitter Strength
    Hits Hitter Zone
    Missed Shot Penalty Flag
    Missed Shot Shootout Flag
    Missed Shot Strength
    Missed Shot Zone
    Penalty Minutes
    Penalty Severity
    Penalty Strength
    Penalty Drawn Minutes
    Penalty Drawn Severity
    Penalty Drawn Strength
    Penalty Served Minutes
    Penalty Served Severity
    Penalty Served Strength
    Shot Awarded Flag
    Shot Goal Flag
    Shot Penalty Flag
    Shot Shootout Flag
    Shot Strength
    Shot Zone
    Shot Against Awarded Flag
    Shot Against Goal Flag
    Shot Against Penalty Flag
    Shot Against Saved Flag
    Shot Against Shootout Flag
    Shot Against Strength
    Shot Against Zone
    Takeaway Strength
    Takeaway Zone
    ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nhl/trial/v5/en/games/f4b120a2-649c-4854-b519-b84414eb5e43/pbp.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/nhl/trial/v5/en/games/f4b120a2-649c-4854-b519-b84414eb5e43/pbp.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.us/nhl/trial/v5/en/games/f4b120a2-649c-4854-b519-b84414eb5e43/pbp.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Play-By-Play feed by replacing the parameters in the following URL: https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/games/`{game_id}`/pbp.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production), Trial (trial), or Simulation (simulation). | | `version` | Version number of the API you are accessing (Current Version: v5). | | `language_code` | 2 letter code for supported languages: en (English), ru (Russian), and zh (simplified Chinese). | | `game_id` | ID for a given game. | | `format` | xml or json. | | `your_api_key` | Your API key. | To retrieve the XML Schema Definition (.XSD) for Game Play-By-Play, replace the parameters in the following URL. https://feed.elasticstats.com/schema/hockey/pbp-v3.0.xsd Return to API map ## Game Summary Top-level boxscore information with detailed team and player levels game stats.
    Update Frequency: As Necessary
    Content Type: XML or JSON
    Boxscore Data Points: Actual End Time
    Actual Start Time
    Attendance
    Away Team Alias
    Away Team Flag
    Away Team Game Score
    Away Team Id
    Away Team Market
    Away Team Name
    Away Team Overtime Points
    Away Team Period Score
    Away Team Reference
    Away Team Shootout Points
    Away Team Strength
    Duration (in game time)
    Clock
    Game Officials Assignment
    Game Officials Experience
    Game Officials First Name
    Game Officials Full Name
    Game Officials Id
    Game Officials Last Name
    Game Officials Number
    Game Officials Reference
    Period
    Home Team Alias
    Home Team Flag
    Home Team Game Score
    Home Team Id
    Home Team Market
    Home Team Name
    Home Team Overtime Points
    Home Team Period Score
    Home Team Reference
    Home Team Shootout Points
    Home Team Strength
    Lineups Played
    Lineups Scratched
    Lineups Starter
    Overtime Number
    Overtime Sequence
    Period Id
    Period Number
    Period Sequence
    Period Type
    Shootout Number
    Shootout Sequence
    Game Data Points: Away Team Id
    Away Team Reference
    Coverage
    Entry Mode
    Home Team Id
    Home Team Reference
    Id
    Reference
    Scheduled Date And Time
    Status
    Title
    Player Game Statistics Data Points: Assists
    Average Time on Ice
    Blocked Attempts
    Blocked Shots
    Empty Net Goals
    Even Strength Assists
    Even Strength Faceoff Win Pct
    Even Strength Faceoffs
    Even Strength Faceoffs Lost
    Even Strength Faceoffs Won
    Even Strength Goals
    Even Strength Missed Shots
    Even Strength Shots on Goal
    Even Strength Time on Ice
    Faceoff Winning Percentage
    Faceoffs
    Faceoffs Lost
    Faceoffs Won
    Game Winning Goal Flag
    Giveaways
    Goals
    Hits
    Missed Shots
    Overtime Assists
    Overtime Goals
    Overtime Shots
    Overtime Time on Ice
    Penalties
    Penalties Major
    Penalties Minor
    Penalties Misconduct
    Penalty Goals
    Penalty Minutes
    Penalty Missed Shots
    Penalty Shots on Goal
    Plus/Minus
    Points
    Power Play Assists
    Power Play Faceoff Win Pct
    Power Play Faceoffs
    Power Play Faceoffs Lost
    Power Play Faceoffs Won
    Power Play Goals
    Power Play Missed Shots
    Power Play Shots on Goal
    Power Play Time on Ice
    Shifts
    Shooting Percentage
    Shootout Goals
    Shootout Missed Shots
    Shootout Shots on Goal
    Short Handed Assists
    Short Handed Faceoff Win Pct
    Short Handed Faceoffs
    Short Handed Faceoffs Lost
    Short Handed Faceoffs Won
    Short Handed Goals
    Short Handed Missed Shots
    Short Handed Shots on Goal
    Short Handed Time on Ice
    Shots on Goal
    Takeaways
    Total Time on Ice
    Player Goaltending Game Statistics Data Points: Credit
    Even Strength Goals Against
    Even Strength Save Percentage
    Even Strength Saves
    Even Strength Shots Against
    Goals Against
    Outcome
    Penalty Goals Against
    Penalty Save Percentage
    Penalty Saves
    Penalty Shots Against
    Power Play Goals Against
    Power Play Save Percentage
    Power Play Saves
    Power Play Shots Against
    Save Percentage
    Saves
    Shootout Goals Against
    Shootout Save Percentage
    Shootout Saves
    Shootout Shots Against
    Short Handed Goals Against
    Short Handed Save Percentage
    Short Handed Saves
    Short Handed Shots Against
    Shots Against
    Shutout
    Team Game Statistics Data Points: 3v3 Goals
    3v3 Shots on Goal
    3v4 Goals
    3v4 Shots on Goal
    3v5 Goals
    3v5 Shots on Goal
    4v3 Goals
    4v3 Opportunities
    4v3 Shots on Goal
    4v3 Time
    4v4 Goals
    4v4 Shots on Goal
    4v5 Goals
    4v5 Shots on Goal
    5v3 Goals
    5v3 Opportunities
    5v3 Shots on Goal
    5v3 Time
    5v4 Goals
    5v4 Opportunities
    5v4 Shots on Goal
    5v4 Time
    5v5 Goals
    5v5 Shots on Goal
    Assists
    Blocked Attempts
    Blocked Shots
    Empty Net Goals
    Even Strength Assists
    Even Strength Faceoff Winning Percentage
    Even Strength Faceoffs
    Even Strength Faceoffs Lost
    Even Strength Faceoffs Won
    Even Strength Goals
    Even Strength Missed Shots
    Even Strength Shots on Goal
    Even Strength Type
    Faceoff Winning Percentage
    Faceoffs
    Faceoffs Lost
    Faceoffs Won
    Game Winning Goal Flag
    Giveaways
    Goals
    Hits
    Missed Shots
    Overtime Assists
    Overtime Goals
    Overtime Shots
    Overtime Time on Ice
    Penalties
    Penalties Major
    Penalties Minor
    Penalties Misconduct
    Penalty Goals
    Penalty Minutes
    Penalty Missed Shots
    Penalty Shots on Goal
    Plus/Minus
    Points
    Power Plays
    Power Play Assists
    Power Play Faceoff Winning Percentage
    Power Play Faceoffs
    Power Play Faceoffs Lost
    Power Play Faceoffs Won
    Power Play Goals
    Power Play Missed Shots
    Power Play Opportunities
    Power Play Shots on Goal
    Power Play Type
    Shooting Percentage
    Shootout Goals
    Shootout Missed Shots
    Shootout Shots on Goal
    Short Handed Assists
    Short Handed Faceoff Winning Percentage
    Short Handed Faceoffs
    Short Handed Faceoffs Lost
    Short Handed Faceoffs Won
    Short Handed Goals
    Short Handed Missed Shots
    Short Handed Shots on Goal
    Short Handed Type
    Shots on Goal
    Takeaways
    Team Penalties
    Team Penalty Minutes
    Team Goaltending Statistics Data Points: Credit
    Empty Net Even Strength Goals Against
    Empty Net Goals Against
    Empty Net Power Play Goals Against
    Empty Net Short Handed Goals Against
    Empty Net Shots Against
    Even Strength Goals Against
    Even Strength Save Percentage
    Even Strength Saves
    Even Strength Shots Against
    Goals Against
    Penalty Goals Against
    Penalty Save Percentage
    Penalty Saves
    Penalty Shots Against
    Power Play Goals Against
    Power Play Save Percentage
    Power Play Saves
    Power Play Shots Against
    Save Percentage
    Saves
    Shootout Goals Against
    Shootout Save Percentage
    Shootout Saves
    Shootout Shots Against
    Short Handed Goals Against
    Short Handed Save Percentage
    Short Handed Saves
    Short Handed Shots Against
    Shots Against
    Shutout
    Total Goals Against
    Total Shots Against
    Total Time on Ice
    Player Period Statistics Data Points: Assists
    Blocked Attempts
    Blocked Shots
    Even Strength Assists
    Even Strength Goals
    Even Strength Missed Shots
    Even Strength Shots on Goal
    Faceoff Winning Percentage
    Faceoffs
    Faceoffs Lost
    Faceoffs Won
    Giveaways
    Goals
    Hits
    Missed Shots
    Penalties
    Penalty Goals
    Penalty Minutes
    Penalty Missed Shots
    Penalty Shots on Goal
    Points
    Power Play Assists
    Power Play Goals
    Power Play Missed Shots
    Power Play Shots on Goal
    Shifts
    Shooting Percentage
    Short Handed Assists
    Short Handed Goals
    Short Handed Missed Shots
    Short Handed Shots on Goal
    Shots on Goal
    Takeaways
    Player Goaltending Period Data Points: Even Strength Goals Against
    Even Strength Save Percentage
    Even Strength Saves
    Even Strength Shots Against
    Goals Against
    Penalty Goals Against
    Penalty Save Percentage
    Penalty Saves
    Penalty Shots Against
    Power Play Goals Against
    Power Play Save Percentage
    Power Play Saves
    Power Play Shots Against
    Save Percentage
    Saves
    Short Handed Goals Against
    Short Handed Save Percentage
    Short Handed Saves
    Short Handed Shots Against
    Shots Against
    Player Data Points: Captain Flag
    Dominant Hand
    First Name
    Full Name
    Id
    Injuries Comment
    Injuries Description
    Injuries Id
    Injuries Start Date
    Injuries Status
    Injuries Update Date
    Jersey Number
    Last Name
    Position
    Primary Position
    Reference
    Venue Data Points: Address
    Capacity
    City
    Country
    Description
    Id
    Name
    State
    Timezone
    Zip
    ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nhl/trial/v5/en/games/f4b120a2-649c-4854-b519-b84414eb5e43/summary.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/nhl/trial/v5/en/games/f4b120a2-649c-4854-b519-b84414eb5e43/summary.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.us/nhl/trial/v5/en/games/f4b120a2-649c-4854-b519-b84414eb5e43/summary.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Game Summary feed by replacing the parameters in the following URL: https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/games/`{game_id}`/summary.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production), Trial (trial), or Simulation (simulation). | | `version` | Version number of the API you are accessing (Current Version: v5). | | `language_code` | 2 letter code for supported languages: en (English), ru (Russian), and zh (simplified Chinese). | | `game_id` | ID for a given game. | | `format` | xml or json. | | `your_api_key` | Your API key. | To retrieve the XML Schema Definition (.XSD) for the Game Summary, replace the parameters in the following URL. https://feed.elasticstats.com/schema/hockey/game-v4.0.xsd Return to API map ## Game Time On Ice Time on ice totals for every player for a given game, including detailed shift information.
    Update Frequency: As Necessary
    Content Type: XML or JSON
    Boxscore Data Points: Actual End Time
    Actual Start Time
    Attendance
    Away Team Game Score
    Away Team Id
    Away Team Market
    Away Team Name
    Away Team Reference
    Duration (in game time)
    Clock
    Period
    Home Team Game Score
    Home Team Id
    Home Team Market
    Home Team Name
    Home Team Reference
    Period Id
    Period Number
    Period Sequence
    Period Type
    Game Data Points: Away Team Id
    Away Team Reference
    Coverage
    Entry Mode
    Home Team Id
    Home Team Reference
    Id
    Reference
    Scheduled Date And Time
    Status
    Title
    Player Data Points: Full Name
    Id
    Jersey Number Position
    Reference
    Player Time On Ice Game Data Points: 3v4 Time on Ice
    3v5 Time on Ice
    4v3 Time on Ice
    4v5 Time on Ice
    5v3 Time on Ice
    5v4 Time on Ice
    Average Time on Ice
    Even Strength Time on Ice
    Power Play Time on Ice
    Power Play Type
    Shifts
    Short Handed Time on Ice
    Short Handed Type
    Total Time on Ice
    Player Time On Ice Period Data Points: Average Time On Ice
    Even Strength Time On Ice
    Power Play Time On Ice
    Shifts
    Shifts Duration
    Shifts End Time
    Shifts Number
    Shifts Start Time
    Short Handed Time On Ice
    Total Time On Ice
    Venue Data Points: Address
    Capacity
    City
    Country
    Description
    Id
    Name
    State
    Timezone
    Zip
    ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nhl/trial/v5/en/games/df8ac1e6-c278-4160-9dc8-d59bf8d8ca2c/time_on_ice.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/nhl/trial/v5/en/games/df8ac1e6-c278-4160-9dc8-d59bf8d8ca2c/time_on_ice.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.us/nhl/trial/v5/en/games/df8ac1e6-c278-4160-9dc8-d59bf8d8ca2c/time_on_ice.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Game Time On Ice feed by replacing the parameters in the following URL: https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/games/`{game_id}`/time_on_ice.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production), Trial (trial), or Simulation (simulation). | | `version` | Version number of the API you are accessing (Current Version: v5). | | `language_code` | 2 letter code for supported languages: en (English), ru (Russian), and zh (simplified Chinese). | | `game_id` | ID for a given game. | | `format` | xml or json. | | `your_api_key` | Your API key. | To retrieve the XML Schema Definition (.XSD) for Game Time On Ice, replace the parameters in the following URL. https://feed.elasticstats.com/schema/hockey/time-on-ice-v3.0.xsd Return to API map ## Injuries Information concerning all active player injuries for all teams within the league.
    Update Frequency: As Necessary
    Content Type: XML or JSON
    League Data Points: Alias Id Name
    Player Data Points: First Name
    Full Name
    Id
    Injuries Comment
    Injuries Description
    Injuries Id
    Injuries Start Date
    Injuries Status
    Injuries Update Date
    Jersey Number
    Last Name
    Position
    Primary Position
    Reference
    Team Data Points: Id
    Market
    Name Reference
    ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nhl/trial/v5/en/league/injuries.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/nhl/trial/v5/en/league/injuries.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.us/nhl/trial/v5/en/league/injuries.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Injuries feed by replacing the parameters in the following URL: https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/league/injuries.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production) or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v5). | | `language_code` | 2 letter code for supported languages: en (English), ru (Russian), and zh (simplified Chinese). | | `format` | xml or json. | | `your_api_key` | Your API key. | To retrieve the XML Schema Definition (.XSD) for Injuries, replace the parameters in the following URL. https://feed.elasticstats.com/schema/hockey/injuries-v2.0.xsd Return to API map ## League Hierarchy Provides top-level information for each team, including conference and division distinction, and venue information.
    Update Frequency: As Necessary
    Content Type: XML or JSON
    League Data Points: Alias
    Conference Alias
    Conference Id
    Conference Name
    Division Alias
    Division Id
    Division Name
    Id
    Name
    Team Data Points: Alias
    Id
    Market
    Name
    Reference
    Venue Data Points: Address
    Capacity
    City
    Country
    Description
    Id
    Name
    State
    Timezone
    Zip
    ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nhl/trial/v5/en/league/hierarchy.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/nhl/trial/v5/en/league/hierarchy.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.us/nhl/trial/v5/en/league/hierarchy.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the League Hierarchy feed by replacing the parameters in the following URL: https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/league/hierarchy.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production) or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v5). | | `language_code` | 2 letter code for supported languages: en (English), ru (Russian), and zh (simplified Chinese). | | `format` | xml or json. | | `your_api_key` | Your API key. | To retrieve the XML Schema Definition (.XSD) for League Hierarchy, replace the parameters in the following URL. https://feed.elasticstats.com/schema/hockey/nhl/hierarchy-v2.0.xsd Return to API map ## League Leaders - Goaltending NHL leader information for various goaltending categories including full player seasonal statistics for each player in each category.
    Update Frequency: As Necessary
    Content Type: XML or JSON
    League Data Points: Season Id Season Type Season Year
    Player Goaltending League Leader Data Points: Category Name
    Category Type
    Games Played
    Goals Against
    Goals Against per Game
    Losses
    Overtime Losses
    Player Rank
    Power Play Goals Against
    Power Play Save Percentage
    Power Play Saves
    Power Play Shots Against
    Save Percentage
    Saves
    Short Handed Goals Against
    Short Handed Save Percentage
    Short Handed Saves
    Short Handed Shots Against
    Shots Against
    Shutouts
    Stat Category
    Tied Flag
    Wins
    Player Data Points: First Name
    Full Name
    Id
    Jersey Number
    Last Name
    Position
    Primary Position
    Reference
    Player Goaltending Seasonal Statistics Data Points: Even Strength Goals Against
    Even Strength Save Percentage
    Even Strength Saves
    Even Strength Shots Against
    Goals Against
    Goals Against Average
    Goals Against per Game
    Losses
    Overtime Losses
    Penalty Goals Against
    Penalty Save Percentage
    Penalty Saves
    Penalty Shots Against
    Power Play Goals Against
    Power Play Save Percentage
    Power Play Saves
    Power Play Shots Against
    Save Percentage
    Saves
    Shootout Goals Against
    Shootout Save Percentage
    Shootout Saves
    Shootout Shots Against
    Short Handed Goals Against
    Short Handed Save Percentage
    Short Handed Saves
    Short Handed Shots Against
    Shots Against
    Shots Against per Game
    Shutouts
    Wins
    Team Data Points: Id Market Name
    Reference
    ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nhl/trial/v5/en/seasons/2015/REG/leaders/goaltending.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/nhl/trial/v5/en/seasons/2015/REG/leaders/goaltending.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.us/nhl/trial/v5/en/seasons/2015/REG/leaders/goaltending.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the League Leaders - Goaltending feed by replacing the parameters in the following URL: https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/seasons/`{season_year}`/`{nhl_season}`/leaders/goaltending.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production), Trial (trial), or Simulation (simulation). | | `version` | Version number of the API you are accessing (Current Version: v5). | | `language_code` | 2 letter code for supported languages: en (English), ru (Russian), and zh (simplified Chinese). | | `season_year` | Year in 4 digit format (YYYY). | | `nhl_season` | Preseason (PRE), Regular Season (REG), or Postseason (PST). | | `format` | xml or json. | | `your_api_key` | Your API key. | To retrieve the XML Schema Definition (.XSD) for League Leaders Goaltending, replace the parameters in the following URL. https://feed.elasticstats.com/schema/hockey/statistics-v4.0.xsd Return to API map ## League Leaders - Skaters NHL leader information for various skater categories including full player seasonal statistics for each player in each category.
    Update Frequency: As Necessary
    Content Type: XML or JSON
    League Data Points: Season Id Season Type Season Year
    Player Skater League Leader Data Points: Assists
    Category Name
    Category Type
    Faceoffs Won
    Game Winning Goals
    Games Played
    Goals
    Goals per Game
    Player Rank
    Plus/Minus
    Points
    Points per Game
    Power Play Assists
    Power Play Goals
    Power Play Points
    Power Play Shots on Goal
    Shootout Goals
    Short Handed Assists
    Short Handed Goals
    Short Handed Points
    Short Handed Shots on Goal
    Shots on Goal
    Stat Category
    Tied Flag
    Player Data Points: First Name
    Full Name
    Id
    Jersey Number
    Last Name
    Position
    Primary Position
    Reference
    Player Skater Seasonal Statistics Data Points: Assists
    Assists per Game
    Blocked Attempts
    Blocked Attempts per Game
    Blocked Shots
    Blocked Shots per Game
    Even Strength Assists
    Even Strength Faceoff Win Pct
    Even Strength Faceoff Winning Percentage
    Even Strength Faceoffs
    Even Strength Faceoffs Lost
    Even Strength Faceoffs Won
    Even Strength Goals
    Even Strength Missed Shots
    Even Strength Shots on Goal
    Faceoff Winning Percentage
    Faceoffs
    Faceoffs Lost
    Faceoffs Won
    Game Winning Goals
    Games Played
    Games Scratched
    Games Started
    Giveaways
    Giveaways per Game
    Goals
    Goals per Game
    Hits
    Hits per Game
    Missed Shots
    Missed Shots per Game
    Overtime Goals
    Penalties
    Penalties per Game
    Penalty Goals
    Penalty Minutes
    Penalty Minutes per Game
    Penalty Missed Shots
    Penalty Shots on Goal
    Plus/Minus
    Points
    Points per Game
    Power Play Assists
    Power Play Faceoff Win Pct
    Power Play Faceoff Winning Percentage
    Power Play Faceoffs
    Power Play Faceoffs Lost
    Power Play Faceoffs Won
    Power Play Goals
    Power Play Missed Shots
    Power Play Points
    Power Play Shots on Goal
    Shifts
    Shifts per Game
    Shooting Percentage
    Shootout Goals
    Shootout Missed Shots
    Shootout Shots on Goal
    Short Handed Assists
    Short Handed Faceoff Win Pct
    Short Handed Faceoffs
    Short Handed Faceoffs Lost
    Short Handed Faceoffs Won
    Short Handed Goals
    Short Handed Missed Shots
    Short Handed Shots on Goal
    Shots on Goal
    Shots on Goal per Game
    Takeaways
    Takeaways per Game
    Total Time on Ice
    Total Time on Ice per Game
    Team Data Points: Id Market Name
    Reference
    ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nhl/trial/v5/en/seasons/2015/REG/leaders/offense.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/nhl/trial/v5/en/seasons/2015/REG/leaders/offense.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.us/nhl/trial/v5/en/seasons/2015/REG/leaders/offense.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the League Leaders - Skaters feed by replacing the parameters in the following URL: https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/seasons/`{season_year}`/`{nhl_season}`/leaders/offense.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production), Trial (trial), or Simulation (simulation). | | `version` | Version number of the API you are accessing (Current Version: v5). | | `language_code` | 2 letter code for supported languages: en (English), ru (Russian), and zh (simplified Chinese). | | `season_year` | Year in 4 digit format (YYYY). | | `nhl_season` | Preseason (PRE), Regular Season (REG), or Postseason (PST). | | `format` | xml or json. | | `your_api_key` | Your API key. | To retrieve the XML Schema Definition (.XSD) for League Leaders Skaters, replace the parameters in the following URL. https://feed.elasticstats.com/schema/hockey/statistics-v4.0.xsd Return to API map ## League Leaders - Daily NHL daily league leader information for various skater and goaltending categories including points, goals, and plus/minus.
    Update Frequency: As Necessary
    Content Type: XML or JSON
    League Data Points: Season Id Season Type Season Year
    Player League Leader Data Points: Assists
    Category Type
    Game Winning Goals
    Games Played
    Goals
    Hits
    Leaders Date
    Penalties Minutes
    Plus/Minus
    Points
    Power Play Goals
    Rank
    Shorthanded Goals
    Shots
    Player Data Points: Full Name Id Jersey Number
    Reference
    Team Data Points: Id Market Name
    Reference
    ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nhl/trial/v5/en/seasons/2016/REG/2016/10/28/leaders.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/nhl/trial/v5/en/seasons/2016/REG/2016/10/28/leaders.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.us/nhl/trial/v5/en/seasons/2016/REG/2016/10/28/leaders.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the League Leaders - Daily feed by replacing the parameters in the following URL: https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/seasons/`{season_year}`/`{nhl_season}`/`{year}`/`{month}`/`{day}`/leaders.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production) or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v5). | | `language_code` | 2 letter code for supported languages: en (English), ru (Russian), and zh (simplified Chinese). | | `season_year` | Year in 4 digit format (YYYY). | | `nhl_season` | Preseason (PRE), Regular Season (REG), or Postseason (PST). | | `year` | Year in 4 digit format (YYYY). | | `month` | Month in 2 digit format (MM). | | `day` | Day in 2 digit format (DD). | | `format` | xml or json. | | `your_api_key` | Your API key. | To retrieve the XML Schema Definition (.XSD) for League Leaders daily, replace the parameters in the following URL. https://feed.elasticstats.com/schema/hockey/leaders-v3.0.xsd Return to API map ## League Leaders - Seasonal NHL seasonal league leader information for various skater and goaltending categories including points, goals, and plus/minus.
    Update Frequency: As Necessary
    Content Type: XML or JSON
    League Data Points: Season Id Season Type Season Year
    Player League Leader Data Points: Assists
    Category Type
    Game Winning Goals
    Games Played
    Goals
    Hits
    Leaders Date
    Penalties Minutes
    Plus/Minus
    Points
    Power Play Goals
    Rank
    Shorthanded Goals
    Shots
    Player Data Points: Full Name Id Jersey Number
    Reference
    Team Data Points: Id Market Name
    Reference
    ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nhl/trial/v5/en/seasons/2016/REG/leaders.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/nhl/trial/v5/en/seasons/2016/REG/leaders.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.us/nhl/trial/v5/en/seasons/2016/REG/leaders.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the League Leaders - Seasonal feed by replacing the parameters in the following URL: https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/seasons/`{season_year}`/`{nhl_season}`/leaders.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production) or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v5). | | `language_code` | 2 letter code for supported languages: en (English), ru (Russian), and zh (simplified Chinese). | | `season_year` | Year in 4 digit format (YYYY). | | `nhl_season` | Preseason (PRE), Regular Season (REG), or Postseason (PST). | | `format` | xml or json. | | `your_api_key` | Your API key. | To retrieve the XML Schema Definition (.XSD) for League Leaders seasonal, replace the parameters in the following URL. https://feed.elasticstats.com/schema/hockey/leaders-v3.0.xsd Return to API map ## Player Profile Provides player biographical information, draft information, and seasonal statistics.
    Update Frequency: As Necessary
    Content Type: XML or JSON
    League Data Points: Alias
    Id
    Name
    Season Id
    Season Type
    Season Year
    Player Data Points: Abbreviated name
    Birth Date
    Birth Place
    College
    Dominant Hand
    Draft Pick
    Draft Round
    Draft Team
    Draft Year
    Experience
    First Name
    Full Name
    Height (in)
    Id
    Jersey Number
    Last Name
    Position
    Primary Position
    Reference
    Status
    Update Date
    Weight (lbs)
    Player Seasonal Statistics Data Points: Assists
    Assists per Game
    Blocked Attempts
    Blocked Attempts per Game
    Blocked Shots
    Blocked Shots per Game
    Empty Net Goals
    Even Strength Assists
    Even Strength Faceoff Win Pct
    Even Strength Faceoff Winning Percentage
    Even Strength Faceoffs
    Even Strength Faceoffs Lost
    Even Strength Faceoffs Won
    Even Strength Goals
    Even Strength Missed Shots
    Even Strength Shots on Goal
    Faceoff Winning Percentage
    Faceoffs
    Faceoffs Lost
    Faceoffs Won
    Game Winning Goals
    Games Played
    Games Scratched
    Games Started
    Giveaways
    Giveaways per Game
    Goals
    Goals per Game
    Hits
    Hits per Game
    Missed Shots
    Missed Shots per Game
    Overtime Assists
    Overtime Goals
    Overtime Shots
    Penalties
    Penalties Major
    Penalties Minor
    Penalties Misconduct
    Penalties per Game
    Penalty Goals
    Penalty Minutes
    Penalty Minutes per Game
    Penalty Missed Shots
    Penalty Shots on Goal
    Plus/Minus
    Points
    Points per Game
    Power Play Assists
    Power Play Faceoff Win Pct
    Power Play Faceoff Winning Percentage
    Power Play Faceoffs
    Power Play Faceoffs Lost
    Power Play Faceoffs Won
    Power Play Goals
    Power Play Missed Shots
    Power Play Points
    Power Play Shots on Goal
    Power Plays
    Shifts
    Shifts per Game
    Shooting Percentage
    Shootout Goals
    Shootout Missed Shots
    Shootout Shots on Goal
    Short Handed Assists
    Short Handed Faceoff Win Pct
    Short Handed Faceoffs
    Short Handed Faceoffs Lost
    Short Handed Faceoffs Won
    Short Handed Goals
    Short Handed Missed Shots
    Short Handed Shots on Goal
    Shots on Goal
    Shots on Goal per Game
    Takeaways
    Takeaways per Game
    Total Even Strength
    Total Even Strength per Game
    Total Overtime
    Total Overtime per Game
    Total Powerplay
    Total Powerplay per Game
    Total Short Handed per Game
    Total Time on Ice
    Total Time on Ice per Game
    Player Seasonal Goaltending Statistics Data Points: Even Strength Goals Against
    Even Strength Save Percentage
    Even Strength Saves
    Even Strength Shots Against
    Goals Against
    Goals Against Average
    Goals Against per Game
    Losses
    Overtime Losses
    Penalty Goals Against
    Penalty Save Percentage
    Penalty Saves
    Penalty Shots Against
    Power Play Goals Against
    Power Play Save Percentage
    Power Play Saves
    Power Play Shots Against
    Save Percentage
    Saves
    Shootout Goals Against
    Shootout Save Percentage
    Shootout Saves
    Shootout Shots Against
    Short Handed Goals Against
    Short Handed Save Percentage
    Short Handed Saves
    Short Handed Shots Against
    Shots Against
    Shots Against per Game
    Shutouts
    Wins
    Team Data Points: Alias
    Id
    Market Name
    Reference
    ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nhl/trial/v5/en/players/42a966db-0f24-11e2-8525-18a905767e44/profile.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/nhl/trial/v5/en/players/42a966db-0f24-11e2-8525-18a905767e44/profile.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.us/nhl/trial/v5/en/players/42a966db-0f24-11e2-8525-18a905767e44/profile.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Player Profile feed by replacing the parameters in the following URL: https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/players/`{player_id}`/profile.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production) or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v5). | | `language_code` | 2 letter code for supported languages: en (English), ru (Russian), and zh (simplified Chinese). | | `player_id` | ID for a given player. | | `format` | xml or json. | | `your_api_key` | Your API key. | To retrieve the XML Schema Definition (.XSD) for the Player Profile, replace the parameters in the following URL. https://feed.elasticstats.com/schema/hockey/profile-v3.0.xsd Return to API map ## Rankings Conference and division rank for each team, including playoff clinching status.
    Update Frequency: As Necessary
    Content Type: XML or JSON
    League Data Points: Alias
    Conference Alias
    Conference Id
    Conference Name
    Division Alias
    Division Id
    Division Name
    Id
    Name
    Season Id
    Season Type
    Season Year
    Standings Data Points: Conference Rank Division Rank Playoff Status
    Team Data Points: Id Market Name
    Reference
    ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nhl/trial/v5/en/seasons/2015/REG/rankings.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/nhl/trial/v5/en/seasons/2015/REG/rankings.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.us/nhl/trial/v5/en/seasons/2015/REG/rankings.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Rankings feed by replacing the parameters in the following URL: https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/seasons/`{season_year}`/`{nhl_season}`/rankings.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production) or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v5). | | `language_code` | 2 letter code for supported languages: en (English), ru (Russian), and zh (simplified Chinese). | | `season_year` | Year in 4 digit format (YYYY). | | `nhl_season` | Regular Season (REG). | | `format` | xml or json. | | `your_api_key` | Your API key. | To retrieve the XML Schema Definition (.XSD) for Rankings, replace the parameters in the following URL. https://feed.elasticstats.com/schema/hockey/nhl/rankings-v2.0.xsd Return to API map ## Schedule Date, time, location, and other event details for every match-up taking place in the full league season.
    Update Frequency: As Necessary
    Content Type: XML or JSON
    Game Data Points: Away Team Alias
    Away Team Id
    Away Team Name
    Away Team Points
    Away Team Reference
    Away Team Seeding
    Broadcast Cable
    Broadcast Internet
    Broadcast Network
    Broadcast Radio
    Broadcast Satellite
    Coverage
    Home Team Alias
    Home Team Id
    Home Team Name
    Home Team Points
    Home Team Reference
    Home Team Seeding
    Id
    Reference
    Scheduled Date and Time
    Status
    Title
    League Data Points: Alias
    Id
    Name
    Season Id
    Season Type
    Season Year
    Venue Data Points: Address
    Capacity
    City
    Country
    Description
    Id
    Name
    State
    Timezone
    Zip
    ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nhl/trial/v5/en/games/2016/REG/schedule.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/nhl/trial/v5/en/games/2016/REG/schedule.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.us/nhl/trial/v5/en/games/2016/REG/schedule.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Schedule feed by replacing the parameters in the following URL: https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/games/`{season_year}`/`{nhl_season}`/schedule.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production), Trial (trial), or Simulation (simulation). | | `version` | Version number of the API you are accessing (Current Version: v5). | | `language_code` | 2 letter code for supported languages: en (English), ru (Russian), and zh (simplified Chinese). | | `season_year` | Year in 4 digit format (YYYY). | | `nhl_season` | Preseason (PRE), Regular Season (REG), or Postseason (PST). | | `format` | xml or json. | | `your_api_key` | Your API key. | To retrieve the XML Schema Definition (.XSD) for the Schedule, replace the parameters in the following URL. https://feed.elasticstats.com/schema/hockey/schedule-v2.0.xsd Return to API map ## Seasonal Faceoffs Detailed faceoff information for teams and players, including period, zone, and strength breakdowns, for a given team and season.
    Update Frequency: As Necessary
    Content Type: XML or JSON
    Season Opponent Faceoff Data Points: Even Strength Faceoff Winning Pct
    Even Strength Faceoffs
    Even Strength Faceoffs Lost
    Even Strength Faceoffs Won
    Faceoff Winning Percentage
    Faceoffs
    Faceoffs Lost
    Faceoffs Won
    Power Play Faceoff Winning Pct
    Power Play Faceoffs
    Power Play Faceoffs Lost
    Power Play Faceoffs Won
    Short Handed Faceoff Winning Pct
    Short Handed Faceoffs
    Short Handed Faceoffs Lost
    Short Handed Faceoffs Won
    Season Player Faceoff Data Points: 3v3 Faceoff Winning Pct
    3v3 Faceoffs
    3v3 Faceoffs Lost
    3v3 Faceoffs Won
    3v4 Faceoff Winning Pct
    3v4 Faceoffs
    3v4 Faceoffs Lost
    3v4 Faceoffs Won
    3v5 Faceoff Winning Pct
    3v5 Faceoffs
    3v5 Faceoffs Lost
    3v5 Faceoffs Won
    4v3 Faceoff Winning Pct
    4v3 Faceoffs
    4v3 Faceoffs Lost
    4v3 Faceoffs Won
    4v4 Faceoff Winning Pct
    4v4 Faceoffs
    4v4 Faceoffs Lost
    4v4 Faceoffs Won
    4v5 Faceoff Winning Pct
    4v5 Faceoffs
    4v5 Faceoffs Lost
    4v5 Faceoffs Won
    5v3 Faceoff Winning Pct
    5v3 Faceoffs
    5v3 Faceoffs Lost
    5v3 Faceoffs Won
    5v4 Faceoff Winning Pct
    5v4 Faceoffs
    5v4 Faceoffs Lost
    5v4 Faceoffs Won
    5v5 Faceoff Winning Pct
    5v5 Faceoffs
    5v5 Faceoffs Lost
    5v5 Faceoffs Won
    Defensive Zone Faceoff Winning Pct
    Defensive Zone Faceoffs
    Defensive Zone Faceoffs Lost
    Defensive Zone Faceoffs Won
    Even Strength Faceoff Winning Pct
    Even Strength Faceoffs
    Even Strength Faceoffs Lost
    Even Strength Faceoffs Won
    Even Strength Type
    Faceoff Winning Percentage
    Faceoffs
    Faceoffs Lost
    Faceoffs Won
    Neutral Zone Faceoff Winning Pct
    Neutral Zone Faceoffs
    Neutral Zone Faceoffs Lost
    Neutral Zone Faceoffs Won
    Offensive Zone Faceoff Winning Pct
    Offensive Zone Faceoffs
    Offensive Zone Faceoffs Lost
    Offensive Zone Faceoffs Won
    Power Play Faceoff Winning Pct
    Power Play Faceoffs
    Power Play Faceoffs Lost
    Power Play Faceoffs Won
    Power Play Type
    Short Handed Faceoff Winning Pct
    Short Handed Faceoffs
    Short Handed Faceoffs Lost
    Short Handed Faceoffs Won
    Short Handed Type
    Season Team Faceoff Data Points: Even Strength Faceoff Winning Pct
    Even Strength Faceoffs
    Even Strength Faceoffs Lost
    Even Strength Faceoffs Won
    Faceoff Winning Percentage
    Faceoffs
    Faceoffs Lost
    Faceoffs Won
    Power Play Faceoff Winning Pct
    Power Play Faceoffs
    Power Play Faceoffs Lost
    Power Play Faceoffs Won
    Short Handed Faceoff Winning Pct
    Short Handed Faceoffs
    Short Handed Faceoffs Lost
    Short Handed Faceoffs Won
    League Data Points: Season Id Season Type Season Year
    Player Data Points: First Name
    Full Name
    Id
    Jersey Number
    Last Name
    Position
    Primary Position
    Reference
    Team Data Points: Id Market Name
    Reference
    ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nhl/trial/v5/en/seasons/2013/REG/teams/44151f7a-0f24-11e2-8525-18a905767e44/faceoffs.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/nhl/trial/v5/en/seasons/2013/REG/teams/44151f7a-0f24-11e2-8525-18a905767e44/faceoffs.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.us/nhl/trial/v5/en/seasons/2013/REG/teams/44151f7a-0f24-11e2-8525-18a905767e44/faceoffs.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Seasonal Faceoffs feed by replacing the parameters in the following URL: https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/seasons/`{season_year}`/`{nhl_season}`/teams/`{team_id}`/faceoffs.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production), Trial (trial), or Simulation (simulation). | | `version` | Version number of the API you are accessing (Current Version: v5). | | `language_code` | 2 letter code for supported languages: en (English), ru (Russian), and zh (simplified Chinese). | | `season_year` | Year in 4 digit format (YYYY). | | `nhl_season` | Regular Season (REG), or Postseason (PST). | | `team_id` | ID of a given team. | | `format` | xml or json. | | `your_api_key` | Your API key. | To retrieve the XML Schema Definition (.XSD) for the Seasonal Faceoffs, replace the parameters in the following URL. https://feed.elasticstats.com/schema/hockey/faceoffs-v3.0.xsd Return to API map ## Seasonal Statistics (Season To Date) Detailed team and player statistics for a given team and season.
    Update Frequency: As Necessary
    Content Type: XML or JSON
    League Data Points: Season Id Season Type Season Year
    Player Data Points: First Name
    Full Name
    Id
    Jersey Number
    Last Name
    Position
    Primary Position
    Reference
    Opponent Seasonal Statistics Data Points: 3v3 Goals
    3v3 Shots on Goal
    3v4 Goals
    3v4 Shots on Goal
    3v5 Goals
    3v5 Shots on Goal
    4v3 Goals
    4v3 Opportunities
    4v3 Shots on Goal
    4v4 Goals
    4v4 Shots on Goal
    4v5 Goals
    4v5 Shots on Goal
    5v3 Goals
    5v3 Opportunities
    5v3 Shots on Goal
    5v4 Goals
    5v4 Opportunities
    5v4 Shots on Goal
    5v5 Goals
    5v5 Shots on Goal
    Assists
    Assists per Game
    Blocked Attempts
    Blocked Attempts per Game
    Blocked Shots
    Blocked Shots per Game
    Empty Net Goals
    Even Strength Assists
    Even Strength Faceoff Winning Percentage
    Even Strength Faceoffs
    Even Strength Faceoffs Lost
    Even Strength Faceoffs Won
    Even Strength Goals
    Even Strength Missed Shots
    Even Strength Shots on Goal
    Even Strength Type
    Faceoff Winning Percentage
    Faceoffs
    Faceoffs Lost
    Faceoffs Won
    Game Winning Goals
    Games Played
    Giveaways
    Giveaways per Game
    Goals
    Goals per Game
    Hits
    Hits per Game
    Missed Shots
    Missed Shots per Game
    Overtime Assists
    Overtime Goals
    Overtime Shots
    Penalties
    Penalties Major
    Penalties Minor
    Penalties Misconduct
    Penalties per Game
    Penalty Goals
    Penalty Minutes
    Penalty Minutes per Game
    Penalty Missed Shots
    Penalty Shots on Goal
    Plus/Minus
    Points
    Points per Game
    Power Play Assists
    Power Play Faceoff Winning Percentage
    Power Play Faceoffs
    Power Play Faceoffs Lost
    Power Play Faceoffs Won
    Power Play Goals
    Power Play Missed Shots
    Power Play Opportunities
    Power Play Shots on Goal
    Power Play Type
    Power Plays
    Shooting Percentage
    Shootout Goals
    Shootout Missed Shots
    Shootout Shots on Goal
    Short Handed Assists
    Short Handed Faceoff Winning Percentage
    Short Handed Faceoffs
    Short Handed Faceoffs Lost
    Short Handed Faceoffs Won
    Short Handed Goals
    Short Handed Missed Shots
    Short Handed Shots on Goal
    Short Handed Type
    Shots on Goal
    Shots on Goal per Game
    Takeaways
    Takeaways per Game
    Team Penalties
    Team Penalties per Game
    Team Penalty Minutes
    Team Penalty Minutes per Game
    Opponent Goaltending Seasonal Statistics Data Points: Empty Net Even Strength Goals Against
    Empty Net Goals Against
    Empty Net Power Play Goals Against
    Empty Net Short Handed Goals Against
    Empty Net Shots Against
    Even Strength Goals Against
    Even Strength Save Percentage
    Even Strength Saves
    Even Strength Shots Against
    Goals Against
    Goals Against per Game
    Losses
    Overtime Losses
    Penalty Goals Against
    Penalty Save Percentage
    Penalty Saves
    Penalty Shots Against
    Power Play Goals Against
    Power Play Save Percentage
    Power Play Saves
    Power Play Shots Against
    Save Percentage
    Saves
    Shootout Goals Against
    Shootout Save Percentage
    Shootout Saves
    Shootout Shots Against
    Short Handed Goals Against
    Short Handed Save Percentage
    Short Handed Saves
    Short Handed Shots Against
    Shots Against
    Shots Against per Game
    Shutouts
    Total Goals Against
    Total Shots Against
    Wins
    Player Seasonal Statistics Data Points: Assists
    Assists per Game
    Blocked Attempts
    Blocked Attempts per Game
    Blocked Shots
    Blocked Shots per Game
    Empty Net Goals
    Even Strength Assists
    Even Strength Faceoff Win Pct
    Even Strength Faceoff Winning Percentage
    Even Strength Faceoffs
    Even Strength Faceoffs Lost
    Even Strength Faceoffs Won
    Even Strength Goals
    Even Strength Missed Shots
    Even Strength Shots on Goal
    Faceoff Winning Percentage
    Faceoffs
    Faceoffs Lost
    Faceoffs Won
    Game Winning Goals
    Games Played
    Games Scratched
    Games Started
    Giveaways
    Giveaways per Game
    Goals
    Goals per Game
    Hits
    Hits per Game
    Missed Shots
    Missed Shots per Game
    Overtime Assists
    Overtime Goals
    Overtime Shots
    Penalties
    Penalties Major
    Penalties Minor
    Penalties Misconduct
    Penalties per Game
    Penalty Goals
    Penalty Minutes
    Penalty Minutes per Game
    Penalty Missed Shots
    Penalty Shots on Goal
    Plus/Minus
    Points
    Points per Game
    Power Play Assists
    Power Play Faceoff Win Pct
    Power Play Faceoff Winning Percentage
    Power Play Faceoffs
    Power Play Faceoffs Lost
    Power Play Faceoffs Won
    Power Play Goals
    Power Play Missed Shots
    Power Play Points
    Power Play Shots on Goal
    Power Plays
    Shifts
    Shifts per Game
    Shooting Percentage
    Shootout Goals
    Shootout Missed Shots
    Shootout Shots on Goal
    Short Handed Assists
    Short Handed Faceoff Win Pct
    Short Handed Faceoffs
    Short Handed Faceoffs Lost
    Short Handed Faceoffs Won
    Short Handed Goals
    Short Handed Missed Shots
    Short Handed Shots on Goal
    Shots on Goal
    Shots on Goal per Game
    Takeaways
    Takeaways per Game
    Total Even Strength
    Total Even Strength per Game
    Total Overtime
    Total Overtime per Game
    Total Power Play
    Total Power Play per Game
    Total Short Handed
    Total Short Handed per Game
    Total Time on Ice
    Total Time on Ice per Game
    Player Goaltending Seasonal Statistics Data Points: Even Strength Goals Against
    Even Strength Save Percentage
    Even Strength Saves
    Even Strength Shots Against
    Goals Against
    Goals Against Average
    Goals Against per Game
    Losses
    Overtime Losses
    Penalty Goals Against
    Penalty Save Percentage
    Penalty Saves
    Penalty Shots Against
    Power Play Goals Against
    Power Play Save Percentage
    Power Play Saves
    Power Play Shots Against
    Save Percentage
    Saves
    Shootout Goals Against
    Shootout Save Percentage
    Shootout Saves
    Shootout Shots Against
    Short Handed Goals Against
    Short Handed Save Percentage
    Short Handed Saves
    Short Handed Shots Against
    Shots Against
    Shots Against per Game
    Shutouts
    Wins
    Team Season Statistics Data Points: 3v3 Goals
    3v3 Shots on Goal
    3v4 Goals
    3v4 Shots on Goal
    3v5 Goals
    3v5 Shots on Goal
    4v3 Goals
    4v3 Opportunities
    4v3 Shots on Goal
    4v4 Goals
    4v4 Shots on Goal
    4v5 Goals
    4v5 Shots on Goal
    5v3 Goals
    5v3 Opportunities
    5v3 Shots on Goal
    5v4 Goals
    5v4 Opportunities
    5v4 Shots on Goal
    5v5 Goals
    5v5 Shots on Goal
    Assists
    Assists per Game
    Blocked Attempts
    Blocked Attempts per Game
    Blocked Shots
    Blocked Shots per Game
    Empty Net Goals
    Even Strength Assists
    Even Strength Faceoff Winning Percentage
    Even Strength Faceoffs
    Even Strength Faceoffs Lost
    Even Strength Faceoffs Won
    Even Strength Goals
    Even Strength Missed Shots
    Even Strength Shots on Goal
    Even Strength Type
    Faceoff Winning Percentage
    Faceoffs
    Faceoffs Lost
    Faceoffs Won
    Game Winning Goals
    Games Played
    Giveaways
    Giveaways per Game
    Goals
    Goals per Game
    Hits
    Hits per Game
    Missed Shots
    Missed Shots per Game
    Overtime Assists
    Overtime Goals
    Overtime Shots
    Penalties
    Penalties Major
    Penalties Minor
    Penalties Misconduct
    Penalties per Game
    Penalty Goals
    Penalty Minutes
    Penalty Minutes per Game
    Penalty Missed Shots
    Penalty Shots on Goal
    Plus/Minus
    Points
    Points per Game
    Power Play Assists
    Power Play Faceoff Winning Percentage
    Power Play Faceoffs
    Power Play Faceoffs Lost
    Power Play Faceoffs Won
    Power Play Goals
    Power Play Missed Shots
    Power Play Opportunities
    Power Play Shots on Goal
    Power Play Type
    Power Plays
    Shooting Percentage
    Shootout Goals
    Shootout Missed Shots
    Shootout Shots on Goal
    Short Handed Assists
    Short Handed Faceoff Winning Percentage
    Short Handed Faceoffs
    Short Handed Faceoffs Lost
    Short Handed Faceoffs Won
    Short Handed Goals
    Short Handed Missed Shots
    Short Handed Shots on Goal
    Short Handed Type
    Shots on Goal
    Shots on Goal per Game
    Takeaways
    Takeaways per Game
    Team Penalties
    Team Penalties per Game
    Team Penalty Minutes
    Team Penalty Minutes per Game
    Team Goaltending Seasonal Statistics Data Points: Empty Net Even Strength Goals Against
    Empty Net Goals Against
    Empty Net Power Play Goals Against
    Empty Net Short Handed Goals Against
    Empty Net Shots Against
    Even Strength Goals Against
    Even Strength Save Percentage
    Even Strength Saves
    Even Strength Shots Against
    Goals Against
    Goals Against per Game
    Losses
    Overtime Losses
    Penalty Goals Against
    Penalty Save Percentage
    Penalty Saves
    Penalty Shots Against
    Power Play Goals Against
    Power Play Save Percentage
    Power Play Saves
    Power Play Shots Against
    Save Percentage
    Saves
    Shootout Goals Against
    Shootout Save Percentage
    Shootout Saves
    Shootout Shots Against
    Short Handed Goals Against
    Short Handed Save Percentage
    Short Handed Saves
    Short Handed Shots Against
    Shots Against
    Shots Against per Game
    Shutouts
    Total Goals Against
    Total Shots Against
    Total Time on Ice
    Wins
    Team Data Points: Id Market Name
    Reference
    ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nhl/trial/v5/en/seasons/2015/REG/teams/4416091c-0f24-11e2-8525-18a905767e44/statistics.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/nhl/trial/v5/en/seasons/2015/REG/teams/4416091c-0f24-11e2-8525-18a905767e44/statistics.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.us/nhl/trial/v5/en/seasons/2015/REG/teams/4416091c-0f24-11e2-8525-18a905767e44/statistics.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Season Statistics feed by replacing the parameters in the following URL: https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/seasons/`{season_year}`/`{nhl_season}`/teams/`{team_id}`/statistics.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production), Trial (trial), or Simulation (simulation). | | `version` | Version number of the API you are accessing (Current Version: v5). | | `language_code` | 2 letter code for supported languages: en (English), ru (Russian), and zh (simplified Chinese). | | `season_year` | Year in 4 digit format (YYYY). | | `nhl_season` | Regular Season (REG), or Postseason (PST). | | `team_id` | ID for a given team. | | `format` | xml or json. | | `your_api_key` | Your API key. | To retrieve the XML Schema Definition (.XSD) for Seasonal Statistics, replace the parameters in the following URL. https://feed.elasticstats.com/schema/hockey/statistics-v4.0.xsd Return to API map ## Series Faceoffs Detailed faceoff information for teams and players for a given series, including period, zone, and strength breakdowns.
    Update Frequency: As Necessary
    Content Type: XML or JSON
    Series Opponent Faceoff Data Points: Even Strength Faceoff Winning Pct
    Even Strength Faceoffs
    Even Strength Faceoffs Lost
    Even Strength Faceoffs Won
    Faceoff Winning Percentage
    Faceoffs
    Faceoffs Lost
    Faceoffs Won
    Power Play Faceoff Winning Pct
    Power Play Faceoffs
    Power Play Faceoffs Lost
    Power Play Faceoffs Won
    Short Handed Faceoff Winning Pct
    Short Handed Faceoffs
    Short Handed Faceoffs Lost
    Short Handed Faceoffs Won
    Series Player Faceoff Data Points: 3v3 Faceoff Winning Pct
    3v3 Faceoffs
    3v3 Faceoffs Lost
    3v3 Faceoffs Won
    3v4 Faceoff Winning Pct
    3v4 Faceoffs
    3v4 Faceoffs Lost
    3v4 Faceoffs Won
    3v5 Faceoff Winning Pct
    3v5 Faceoffs
    3v5 Faceoffs Lost
    3v5 Faceoffs Won
    4v3 Faceoff Winning Pct
    4v3 Faceoffs
    4v3 Faceoffs Lost
    4v3 Faceoffs Won
    4v4 Faceoff Winning Pct
    4v4 Faceoffs
    4v4 Faceoffs Lost
    4v4 Faceoffs Won
    4v5 Faceoff Winning Pct
    4v5 Faceoffs
    4v5 Faceoffs Lost
    4v5 Faceoffs Won
    5v3 Faceoff Winning Pct
    5v3 Faceoffs
    5v3 Faceoffs Lost
    5v3 Faceoffs Won
    5v4 Faceoff Winning Pct
    5v4 Faceoffs
    5v4 Faceoffs Lost
    5v4 Faceoffs Won
    5v5 Faceoff Winning Pct
    5v5 Faceoffs
    5v5 Faceoffs Lost
    5v5 Faceoffs Won
    Defensive Zone Faceoff Winning Pct
    Defensive Zone Faceoffs
    Defensive Zone Faceoffs Lost
    Defensive Zone Faceoffs Won
    Even Strength Faceoff Winning Pct
    Even Strength Faceoffs
    Even Strength Faceoffs Lost
    Even Strength Faceoffs Won
    Even Strength Type
    Faceoff Winning Percentage
    Faceoffs
    Faceoffs Lost
    Faceoffs Won
    Neutral Zone Faceoff Winning Pct
    Neutral Zone Faceoffs
    Neutral Zone Faceoffs Lost
    Neutral Zone Faceoffs Won
    Offensive Zone Faceoff Winning Pct
    Offensive Zone Faceoffs
    Offensive Zone Faceoffs Lost
    Offensive Zone Faceoffs Won
    Power Play Faceoff Winning Pct
    Power Play Faceoffs
    Power Play Faceoffs Lost
    Power Play Faceoffs Won
    Power Play Type
    Short Handed Faceoff Winning Pct
    Short Handed Faceoffs
    Short Handed Faceoffs Lost
    Short Handed Faceoffs Won
    Short Handed Type
    Series Team Faceoff Data Points: Even Strength Faceoff Winning Pct
    Even Strength Faceoffs
    Even Strength Faceoffs Lost
    Even Strength Faceoffs Won
    Faceoff Winning Percentage
    Faceoffs
    Faceoffs Lost
    Faceoffs Won
    Power Play Faceoff Winning Pct
    Power Play Faceoffs
    Power Play Faceoffs Lost
    Power Play Faceoffs Won
    Short Handed Faceoff Winning Pct
    Short Handed Faceoffs
    Short Handed Faceoffs Lost
    Short Handed Faceoffs Won
    Player Data Points: First Name
    Full Name
    Id
    Jersey Number
    Last Name
    Position
    Primary Position
    Reference
    Series Data Points: Id Status Title
    Team Data Points: Id Market Name
    Reference
    ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nhl/trial/v5/en/series/06edf786-07a9-4ff2-a9af-138ec916cce6/teams/441781b9-0f24-11e2-8525-18a905767e44/faceoffs.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/nhl/trial/v5/en/series/06edf786-07a9-4ff2-a9af-138ec916cce6/teams/441781b9-0f24-11e2-8525-18a905767e44/faceoffs.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.us/nhl/trial/v5/en/series/06edf786-07a9-4ff2-a9af-138ec916cce6/teams/441781b9-0f24-11e2-8525-18a905767e44/faceoffs.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Series Faceoffs feed by replacing the parameters in the following URL: https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/series/`{series_id}`/teams/`{team_id}`/faceoffs.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production) or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v5). | | `language_code` | 2 letter code for supported languages: en (English), ru (Russian), and zh (simplified Chinese). | | `series_id` | ID of a given series. | | `team_id` | ID of a given team. | | `format` | xml or json. | | `your_api_key` | Your API key. | To retrieve the XML Schema Definition (.XSD) for the Series Faceoffs, replace the parameters in the following URL. https://feed.elasticstats.com/schema/hockey/faceoffs-v3.0.xsd Return to API map ## Series Schedule Playoff participant information and the date, time, location, and other event details for every match-up taking place for the entire playoffs.
    Update Frequency: As Necessary
    Content Type: XML or JSON
    Game Data Points: Away Team Alias
    Away Team Id
    Away Team Name
    Away Team Points
    Away Team Reference
    Away Team Seeding
    Broadcast Cable
    Broadcast Internet
    Broadcast Network
    Broadcast Radio
    Broadcast Satellite
    Coverage
    Home Team Alias
    Home Team Id
    Home Team Name
    Home Team Points
    Home Team Reference
    Home Team Seeding
    Id
    Reference
    Scheduled Date and Time
    Status
    Title
    League Data Points: Alias
    Id
    Name
    Season Id
    Season Type
    Season Year
    Series Data Points: Id
    Participant Name
    Participant Record
    Participant Seed
    Round
    Source Game Id
    Source Game Title
    Source Outcome
    Source Round
    Start Date
    Status
    Title
    Team Data Points: Alias
    Id
    Market Name
    Reference
    Venue Data Points: Address
    Capacity
    City
    Country
    Description
    Id
    Name
    State
    Timezone
    Zip
    ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nhl/trial/v5/en/series/2015/PST/schedule.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/nhl/trial/v5/en/series/2015/PST/schedule.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.us/nhl/trial/v5/en/series/2015/PST/schedule.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Series Schedule feed by replacing the parameters in the following URL: https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/series/`{season_year}`/`{nhl_season}`/schedule.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production) or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v5). | | `language_code` | 2 letter code for supported languages: en (English), ru (Russian), and zh (simplified Chinese). | | `season_year` | Year in 4 digit format (YYYY). | | `nhl_season` | Postseason (PST). | | `format` | xml or json. | | `your_api_key` | Your API key. | To retrieve the XML Schema Definition (.XSD) for the Series Schedule, replace the parameters in the following URL. https://feed.elasticstats.com/schema/hockey/schedule-v2.0.xsd Return to API map ## Series Statistics Detailed team and player statistics for the defined series.
    Update Frequency: As Necessary
    Content Type: XML or JSON
    Player Data Points: First Name
    Full Name
    Id
    Jersey Number
    Last Name
    Position
    Primary Position
    Reference
    Series Data Points: Id Status Title
    Opponent Series Statistics Data Points: 3v3 Goals
    3v3 Shots on Goal
    3v4 Goals
    3v4 Shots on Goal
    3v5 Goals
    3v5 Shots on Goal
    4v3 Goals
    4v3 Opportunities
    4v3 Shots on Goal
    4v4 Goals
    4v4 Shots on Goal
    4v5 Goals
    4v5 Shots on Goal
    5v3 Goals
    5v3 Opportunities
    5v3 Shots on Goal
    5v4 Goals
    5v4 Opportunities
    5v4 Shots on Goal
    5v5 Goals
    5v5 Shots on Goal
    Assists
    Assists per Game
    Blocked Attempts
    Blocked Attempts per Game
    Blocked Shots
    Blocked Shots per Game
    Empty Net Goals
    Even Strength Assists
    Even Strength Faceoff Winning Percentage
    Even Strength Faceoffs
    Even Strength Faceoffs Lost
    Even Strength Faceoffs Won
    Even Strength Goals
    Even Strength Missed Shots
    Even Strength Shots on Goal
    Even Strength Type
    Faceoff Winning Percentage
    Faceoffs
    Faceoffs Lost
    Faceoffs Won
    Game Winning Goals
    Games Played
    Giveaways
    Giveaways per Game
    Goals
    Goals per Game
    Hits
    Hits per Game
    Missed Shots
    Missed Shots per Game
    Overtime Assists
    Overtime Goals
    Overtime Shots
    Penalties
    Penalties Major
    Penalties Minor
    Penalties Misconduct
    Penalties per Game
    Penalty Goals
    Penalty Minutes
    Penalty Minutes per Game
    Penalty Missed Shots
    Penalty Shots on Goal
    Plus/Minus
    Points
    Points per Game
    Power Play Assists
    Power Play Faceoff Winning Percentage
    Power Play Faceoffs
    Power Play Faceoffs Lost
    Power Play Faceoffs Won
    Power Play Goals
    Power Play Missed Shots
    Power Play Opportunities
    Power Play Shots on Goal
    Power Play Type
    Power Plays
    Shooting Percentage
    Shootout Goals
    Shootout Missed Shots
    Shootout Shots on Goal
    Short Handed Assists
    Short Handed Faceoff Winning Percentage
    Short Handed Faceoffs
    Short Handed Faceoffs Lost
    Short Handed Faceoffs Won
    Short Handed Goals
    Short Handed Missed Shots
    Short Handed Shots on Goal
    Short Handed Type
    Shots on Goal
    Shots on Goal per Game
    Takeaways
    Takeaways per Game
    Team Penalties
    Team Penalties per Game
    Team Penalty Minutes
    Team Penalty Minutes per Game
    Opponent Goaltending Series Statistics Data Points: Empty Net Even Strength Goals Against
    Empty Net Goals Against
    Empty Net Power Play Goals Against
    Empty Net Short Handed Goals Against
    Empty Net Shots Against
    Even Strength Goals Against
    Even Strength Save Percentage
    Even Strength Saves
    Even Strength Shots Against
    Goals Against
    Goals Against per Game
    Losses
    Overtime Losses
    Penalty Goals Against
    Penalty Save Percentage
    Penalty Saves
    Penalty Shots Against
    Power Play Goals Against
    Power Play Save Percentage
    Power Play Saves
    Power Play Shots Against
    Save Percentage
    Saves
    Shootout Goals Against
    Shootout Save Percentage
    Shootout Saves
    Shootout Shots Against
    Short Handed Goals Against
    Short Handed Save Percentage
    Short Handed Saves
    Short Handed Shots Against
    Shots Against
    Shots Against per Game
    Shutouts
    Total Goals Against
    Total Shots Against
    Total Time on Ice
    Wins
    Player Series Statistics Data Points: Assists
    Assists per Game
    Blocked Attempts
    Blocked Attempts per Game
    Blocked Shots
    Blocked Shots per Game
    Empty Net Goals
    Even Strength Assists
    Even Strength Faceoff Winning Percentage
    Even Strength Faceoffs
    Even Strength Faceoffs Lost
    Even Strength Faceoffs Won
    Even Strength Goals
    Even Strength Missed Shots
    Even Strength Shots on Goal
    Faceoff Winning Percentage
    Faceoffs
    Faceoffs Lost
    Faceoffs Won
    Game Winning Goals
    Games Played
    Games Scratched
    Games Started
    Giveaways
    Giveaways per Game
    Goals
    Goals per Game
    Hits
    Hits per Game
    Missed Shots
    Missed Shots per Game
    Overtime Assists
    Overtime Goals
    Overtime Shots
    Penalties
    Penalties Major
    Penalties Minor
    Penalties Misconduct
    Penalties per Game
    Penalty Goals
    Penalty Minutes
    Penalty Minutes per Game
    Penalty Missed Shots
    Penalty Shots on Goal
    Plus/Minus
    Points
    Points per Game
    Power Play Assists
    Power Play Faceoff Winning Percentage
    Power Play Faceoffs
    Power Play Faceoffs Lost
    Power Play Faceoffs Won
    Power Play Goals
    Power Play Missed Shots
    Power Play Shots on Goal
    Power Plays
    Shifts
    Shifts per Game
    Shooting Percentage
    Shootout Goals
    Shootout Missed Shots
    Shootout Shots on Goal
    Short Handed Assists
    Short Handed Faceoff Winning Percentage
    Short Handed Faceoffs
    Short Handed Faceoffs Lost
    Short Handed Faceoffs Won
    Short Handed Goals
    Short Handed Missed Shots
    Short Handed Shots on Goal
    Shots on Goal
    Shots on Goal per Game
    Takeaways
    Takeaways per Game
    Total Time on Ice
    Total Time on Ice per Game
    Player Goaltending Series Statistics Data Points: Even Strength Goals Against
    Even Strength Save Percentage
    Even Strength Saves
    Even Strength Shots Against
    Goals Against
    Goals Against Average
    Goals Against per Game
    Losses
    Overtime Losses
    Penalty Goals Against
    Penalty Save Percentage
    Penalty Saves
    Penalty Shots Against
    Power Play Goals Against
    Power Play Save Percentage
    Power Play Saves
    Power Play Shots Against
    Save Percentage
    Saves
    Shootout Goals Against
    Shootout Save Percentage
    Shootout Saves
    Shootout Shots Against
    Short Handed Goals Against
    Short Handed Save Percentage
    Short Handed Saves
    Short Handed Shots Against
    Shots Against
    Shots Against per Game
    Shutouts
    Wins
    Team Series Statistics Data Points: 3v3 Goals
    3v3 Shots on Goal
    3v4 Goals
    3v4 Shots on Goal
    3v5 Goals
    3v5 Shots on Goal
    4v3 Goals
    4v3 Opportunities
    4v3 Shots on Goal
    4v4 Goals
    4v4 Shots on Goal
    4v5 Goals
    4v5 Shots on Goal
    5v3 Goals
    5v3 Opportunities
    5v3 Shots on Goal
    5v4 Goals
    5v4 Opportunities
    5v4 Shots on Goal
    5v5 Goals
    5v5 Shots on Goal
    Assists
    Assists per Game
    Blocked Attempts
    Blocked Attempts per Game
    Blocked Shots
    Blocked Shots per Game
    Empty Net Goals
    Even Strength Assists
    Even Strength Faceoff Winning Percentage
    Even Strength Faceoffs
    Even Strength Faceoffs Lost
    Even Strength Faceoffs Won
    Even Strength Goals
    Even Strength Missed Shots
    Even Strength Shots on Goal
    Even Strength Type
    Faceoff Winning Percentage
    Faceoffs
    Faceoffs Lost
    Faceoffs Won
    Game Winning Goals
    Games Played
    Giveaways
    Giveaways per Game
    Goals
    Goals per Game
    Hits
    Hits per Game
    Missed Shots
    Missed Shots per Game
    Overtime Assists
    Overtime Goals
    Overtime Shots
    Penalties
    Penalties Major
    Penalties Minor
    Penalties Misconduct
    Penalties per Game
    Penalty Goals
    Penalty Minutes
    Penalty Minutes per Game
    Penalty Missed Shots
    Penalty Shots on Goal
    Plus/Minus
    Points
    Points per Game
    Power Play Assists
    Power Play Faceoff Winning Percentage
    Power Play Faceoffs
    Power Play Faceoffs Lost
    Power Play Faceoffs Won
    Power Play Goals
    Power Play Missed Shots
    Power Play Opportunities
    Power Play Shots on Goal
    Power Play Type
    Power Plays
    Shooting Percentage
    Shootout Goals
    Shootout Missed Shots
    Shootout Shots on Goal
    Short Handed Assists
    Short Handed Faceoff Winning Percentage
    Short Handed Faceoffs
    Short Handed Faceoffs Lost
    Short Handed Faceoffs Won
    Short Handed Goals
    Short Handed Missed Shots
    Short Handed Shots on Goal
    Short Handed Type
    Shots on Goal
    Shots on Goal per Game
    Takeaways
    Takeaways per Game
    Team Penalties
    Team Penalties per Game
    Team Penalty Minutes
    Team Penalty Minutes per Game
    Team Goaltending Series Statistics Data Points: Empty Net Even Strength Goals Against
    Empty Net Goals Against
    Empty Net Power Play Goals Against
    Empty Net Short Handed Goals Against
    Empty Net Shots Against
    Even Strength Goals Against
    Even Strength Save Percentage
    Even Strength Saves
    Even Strength Shots Against
    Goals Against
    Goals Against per Game
    Losses
    Overtime Losses
    Penalty Goals Against
    Penalty Save Percentage
    Penalty Saves
    Penalty Shots Against
    Power Play Goals Against
    Power Play Save Percentage
    Power Play Saves
    Power Play Shots Against
    Save Percentage
    Saves
    Shootout Goals Against
    Shootout Save Percentage
    Shootout Saves
    Shootout Shots Against
    Short Handed Goals Against
    Short Handed Save Percentage
    Short Handed Saves
    Short Handed Shots Against
    Shots Against
    Shots Against per Game
    Shutouts
    Total Goals Against
    Total Shots Against
    Total Time on Ice
    Wins
    Team Data Points: Id Market Name
    Reference
    ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nhl/trial/v5/en/seasons/2015/REG/teams/4416091c-0f24-11e2-8525-18a905767e44/statistics.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/nhl/trial/v5/en/seasons/2015/REG/teams/4416091c-0f24-11e2-8525-18a905767e44/statistics.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.us/nhl/trial/v5/en/seasons/2015/REG/teams/4416091c-0f24-11e2-8525-18a905767e44/statistics.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Series Statistics feed by replacing the parameters in the following URL: https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/series/`{series_id}`/teams/`{team_id}`/statistics.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production) or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v5). | | `language_code` | 2 letter code for supported languages: en (English), ru (Russian), and zh (simplified Chinese). | | `series_id` | ID of a given series. | | `team_id` | ID of a given team. | | `format` | xml or json. | | `your_api_key` | Your API key. | To retrieve the XML Schema Definition (.XSD) for Series Statistics, replace the parameters in the following URL. https://feed.elasticstats.com/schema/hockey/statistics-v4.0.xsd Return to API map ## Standings Detailed team records across various views including, overall, conference, and division.
    Update Frequency: As Necessary
    Content Type: XML or JSON
    League Data Points: Alias
    Conference Alias
    Conference Id
    Conference Name
    Division Alias
    Division Id
    Division Name
    Id
    Name
    Season Id
    Season Type
    Season Year
    Standings Data Points: Conference Losses
    Conference Overtime Losses
    Conference Winning Percentage
    Conference Wins
    Division Losses
    Division Overtime Losses
    Division Winning Percentage
    Division Wins
    Games Played
    Goal Differential
    Goals Against
    Goals For
    Home Losses
    Home Overtime Losses
    Home Winning Percentage
    Home Wins
    Last 10 Games Losses
    Last 10 Games Overtime Losses
    Last 10 Games Winning Percentage
    Last 10 Games Wins
    Last 10 Home Games Losses
    Last 10 Home Games Overtime Losses
    Last 10 Home Games Winning Percentage
    Last 10 Home Games Wins
    Last 10 Road Games Losses
    Last 10 Road Games Overtime Losses
    Last 10 Road Games Winning Percentage
    Last 10 Road Games Wins
    Losses
    Overtime Losses
    Penalty Killing Percentage
    Points
    Power Play Goals
    Power Play Goals Against
    Power Play Opportunities
    Power Play Percentage
    Power Plays Against
    Regulation Wins
    Road Losses
    Road Overtime Losses
    Road Winning Percentage
    Road Wins
    Shootout Losses
    Shootout Wins
    Streak
    Versus Atlantic Division Losses
    Versus Atlantic Division Overtime Losses
    Versus Atlantic Division Winning Percentage
    Versus Atlantic Division Wins
    Versus Central Division Losses
    Versus Central Division Overtime Losses
    Versus Central Division Winning Percentage
    Versus Central Division Wins
    Versus Metropolitan Division Losses
    Versus Metropolitan Division Overtime Losses
    Versus Metropolitan Division Winning Percentage
    Versus Metropolitan Division Wins
    Versus Pacific Division Losses
    Versus Pacific Division Overtime Losses
    Versus Pacific Division Winning Percentage
    Versus Pacific Division Wins
    Winning Percentage
    Wins
    Team Data Points: Id Market Name
    Reference
    ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nhl/trial/v5/en/seasons/2015/REG/standings.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/nhl/trial/v5/en/seasons/2015/REG/standings.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.us/nhl/trial/v5/en/seasons/2015/REG/standings.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Standings feed by replacing the parameters in the following URL: https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/seasons/`{season_year}`/`{nhl_season}`/standings.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production), Trial (trial), or Simulation (simulation). | | `version` | Version number of the API you are accessing (Current Version: v5). | | `language_code` | 2 letter code for supported languages: en (English), ru (Russian), and zh (simplified Chinese). | | `season_year` | Year in 4 digit format (YYYY). | | `nhl_season` | Preseason (PRE), Regular Season (REG), or Postseason (PST). | | `format` | xml or json. | | `your_api_key` | Your API key. | To retrieve the XML Schema Definition (.XSD) for Standings, replace the parameters in the following URL. https://feed.elasticstats.com/schema/hockey/nhl/standings-v3.0.xsd Return to API map ## Team Leaders - Daily NHL daily leader information for various skater and goaltending categories, including full player seasonal statistics for each player in each category.
    Update Frequency: As Necessary
    Content Type: XML or JSON
    League Data Points: Season Id Season Type Season Year
    Player League Leader Data Points: Assists
    Category Type
    Game Winning Goals
    Games Played
    Goals
    Goals Against Average
    Hits
    Leaders Date
    Losses
    Minutes
    Overtime Losses
    Penalties Minutes
    Plus/Minus
    Points
    Power Play Goals
    Rank
    Save Percentage
    Shorthanded Goals
    Shots
    Shots Against
    Wins
    Player Data Points: Full Name Id Jersey Number
    Reference
    Team Data Points: Id Market Name
    Reference
    ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nhl/trial/v5/en/seasons/2016/REG/2016/10/28/teams/441862de-0f24-11e2-8525-18a905767e44/leaders.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/nhl/trial/v5/en/seasons/2016/REG/2016/10/28/teams/441862de-0f24-11e2-8525-18a905767e44/leaders.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.us/nhl/trial/v5/en/seasons/2016/REG/2016/10/28/teams/441862de-0f24-11e2-8525-18a905767e44/leaders.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Team Leaders - Daily feed by replacing the parameters in the following URL: https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/seasons/`{season_year}`/`{nhl_season}`/`{year}`/`{month}`/`{day}`/teams/`{team_id}`/leaders.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production) or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v5). | | `language_code` | 2 letter code for supported languages: en (English), ru (Russian), and zh (simplified Chinese). | | `season_year` | Year in 4 digit format (YYYY). | | `nhl_season` | Regular Season (REG), or Postseason (PST). | | `year` | Year in 4 digit format (YYYY). | | `month` | Month in 2 digit format (MM). | | `day` | Day in 2 digit format (DD). | | `team_id` | ID of a given team. | | `format` | xml or json. | | `your_api_key` | Your API key. | To retrieve the XML Schema Definition (.XSD) for Team Leaders daily, replace the parameters in the following URL. https://feed.elasticstats.com/schema/hockey/leaders-v3.0.xsd Return to API map ## Team Leaders - Seasonal NHL seasonal leader information for various skater and goaltending categories, including full player seasonal statistics for each player in each category.
    Update Frequency: As Necessary
    Content Type: XML or JSON
    League Data Points: Season Id Season Type Season Year
    Player League Leader Data Points: Assists
    Category Type
    Game Winning Goals
    Games Played
    Goals
    Goals Against Average
    Hits
    Leaders Date
    Losses
    Minutes
    Overtime Losses
    Penalties Minutes
    Plus/Minus
    Points
    Power Play Goals
    Rank
    Save Percentage
    Shorthanded Goals
    Shots
    Shots Against
    Wins
    Player Data Points: Full Name Id Jersey Number
    Reference
    Team Data Points: Id Market Name
    Reference
    ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nhl/trial/v5/en/seasons/2016/REG/teams/441862de-0f24-11e2-8525-18a905767e44/leaders.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/nhl/trial/v5/en/seasons/2016/REG/teams/441862de-0f24-11e2-8525-18a905767e44/leaders.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.us/nhl/trial/v5/en/seasons/2016/REG/teams/441862de-0f24-11e2-8525-18a905767e44/leaders.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Team Leaders - Seasonal feed by replacing the parameters in the following URL: https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/seasons/`{season_year}`/`{nhl_season}`/teams/`{team_id}`/leaders.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production) or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v5). | | `language_code` | 2 letter code for supported languages: en (English), ru (Russian), and zh (simplified Chinese). | | `season_year` | Year in 4 digit format (YYYY). | | `nhl_season` | Regular Season (REG), or Postseason (PST). | | `team_id` | ID of a given team. | | `format` | xml or json. | | `your_api_key` | Your API key. | To retrieve the XML Schema Definition (.XSD) for Team Leaders seasonal, replace the parameters in the following URL. https://feed.elasticstats.com/schema/hockey/leaders-v3.0.xsd Return to API map ## Team Profile (Rosters) Provides top-level team information and a full roster of active players.
    Update Frequency: As Necessary
    Content Type: XML or JSON
    League Data Points: Alias
    Conference Alias
    Conference Id
    Conference Name
    Division Alias
    Division Id
    Division Name
    Id
    Name
    Player Data Points: Abbreviated name
    Birth Date
    Birth Place
    College
    Dominant Hand
    Draft Pick
    Draft Round
    Draft Team
    Draft Year
    Experience
    First Name
    Full Name
    Height (in)
    Id
    Injuries Comment
    Injuries Description
    Injuries Id
    Injuries Start Date
    Injuries Status
    Injuries Update Date
    Jersey Number
    Last Name
    Position
    Primary Position
    Reference
    Status
    Update Date
    Weight (lbs)
    Team Data Points: Alias
    Coach Experience
    Coach First Name
    Coach Full Name
    Coach Id
    Coach Last Name
    Coach Position
    Id
    Market
    Name
    Reference
    Year Founded
    Venue Data Points: Address
    Capacity
    City
    Country
    Description
    Id
    Name
    State
    Timezone
    Zip
    ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nhl/trial/v5/en/teams/4416091c-0f24-11e2-8525-18a905767e44/profile.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/nhl/trial/v5/en/teams/4416091c-0f24-11e2-8525-18a905767e44/profile.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.us/nhl/trial/v5/en/teams/4416091c-0f24-11e2-8525-18a905767e44/profile.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Team Profile feed by replacing the parameters in the following URL: https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/teams/`{team_id}`/profile.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production), Trial (trial), or Simulation (simulation). | | `version` | Version number of the API you are accessing (Current Version: v5). | | `language_code` | 2 letter code for supported languages: en (English), ru (Russian), and zh (simplified Chinese). | | `team_id` | ID for a given team. | | `format` | xml or json. | | `your_api_key` | Your API key. | To retrieve the XML Schema Definition (.XSD) for the Team Profile, replace the parameters in the following URL. https://feed.elasticstats.com/schema/hockey/team-v2.0.xsd Return to API map ## Push Feeds >To best utilize Push feeds, we have included code samples in Ruby, Java and Python which provide an example of a way you can consume the feeds. Using these samples will output the feeds content to STDOUT.
    For Java, we have also provided a Stream Client to assist your integration.

    Note: In the provided Java sample, replace "URL GOES HERE" with the desired Push feed URL. ```ruby require 'httpclient' module Sportradar module HTTP module Stream class Client attr_reader :url, :logger def initialize(url, publisher, logger) @url = url @logger = logger @publisher = publisher @client = ::HTTPClient.new(:agent_name => 'SportsData/1.0') end def start @thread ||= Thread.new do logger.debug "Starting loop" @client.get_content(url, :follow_redirect => true) do |chunk| @publisher.publish(::JSON.parse(chunk)) if @publisher end logger.debug "finished loop" end end def stop @thread.terminate if @thread end end end end end ``` ```java package com.sportradar.http.stream.client; import org.junit.After; import org.junit.Before; import org.junit.Test; public class StreamClientTest { private StreamClient client; private static String SERVICE_URL = ""; @Before public void setup() { client = new StreamClient(); } @After public void cleanup() { client.terminate(); } @Test public void testStream() throws Exception { Handler handler = new ConsoleHandler(); client.stream(SERVICE_URL, handler); System.out.println("Connecting...."); Thread.sleep(1 * 60 * 1000); System.out.println("Disconnecting...."); } } ``` Some of our APIs include Push feeds that allow you to get updates as soon as they are available. Push API feeds automatically send JSON payload to you via a push service, and can dramatically reduce the number of calls you need to make to our RESTful API feeds. The structure of the Push feeds are similar to the structure of the corresponding RESTful API feed (i.e. Push Clock, Push Events, and Push Statistics). The push service ensures reliable and efficient delivery of the most up to date information. Our Push services are based on a HTTP publish/subscribe model. When making a call to the Push APIs, you "subscribe" to various data feeds provided by our service; whenever new content is available on one of those feeds, the server pushes that information out to your client. When no new information is available on the feed, a heartbeat message is sent every 5 seconds to keep the connection active. If you want to filter the results of the feeds, there are several optional query string parameters that can be applied to the API call. If left unfiltered, than all data for the feed is displayed (i.e. all games, events, or statistics). For your applications to accept data from our Push feeds, ensure that your application can: * Can follow a HTTP redirect or use the location provided in the feeds header within one minute of your initial request. * Can accept HTTP data transfer encoded as chunked. Our Push service does not provide a "stateful session", there is no memory of what data has been sent previously. If you are disconnected from the Push session, you can use the RESTful API to catch up or recover from the disconnection. Syntax for using our Push feeds and examples of the JSON payloads can be found below. ## Push Clock Game clock feed with high level scoring and strength information, including the most recent game event. ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nhl/trial/stream/en/clock/subscribe?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import requests import json r = requests.get("https://api.sportradar.com/nhl/trial/stream/en/clock/subscribe", params = {'api_key': 'your_api_key'}, allow_redirects=False) redirect_url = r.headers['Location'] r = requests.get(redirect_url, stream=True) for line in r.iter_lines(): # filter out keep-alive new lines if line: decoded_line = line.decode('utf-8') print(json.loads(decoded_line)) ``` ```shell curl -L GET 'api.sportradar.us/nhl/trial/stream/en/clock/subscribe?api_key={your_api_key}' ``` > The above command returns json like this. Access the Push Clock feed by replacing the parameters in the following URL: https://api.sportradar.us/nhl/`{access_level}`/stream/`{language_code}`/clock/subscribe?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production) or Trial (trial). | | `language_code` | Optional code for supported languages: en (English) or translations (Any other language translations. See optional query string parameters for locale.) | | `your_api_key` | Your API key. | ### Optional Query String Parameters >Example including optional query string parameters: ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nhl/trial/stream/en/clock/subscribe?api_key={your_api_key}&status=inprogress&match=sd:match:4d1c4eb9-69d4-46fc-a42b-12be98227964") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import requests import json r = requests.get("https://api.sportradar.com/nhl/trial/stream/en/clock/subscribe", params = {'api_key': 'your_api_key', 'status': 'inprogress', 'match': 'sd:match:4d1c4eb9-69d4-46fc-a42b-12be98227964'}, allow_redirects=False) redirect_url = r.headers['Location'] r = requests.get(redirect_url, stream=True) for line in r.iter_lines(): # filter out keep-alive new lines if line: decoded_line = line.decode('utf-8') print(json.loads(decoded_line)) ``` ```shell curl -L GET 'api.sportradar.us/nhl/trial/stream/en/clock/subscribe?api_key={your_api_key}&status=inprogress&match=sd:match:4d1c4eb9-69d4-46fc-a42b-12be98227964' ``` In addition to the URL parameters listed above, you can filter the Clock information with one or more of the following optional query string parameters.
    Note: Optional query string parameters must be added after your API key with an ampersand (&). If you are filtering for more than one result, separate the results with a comma (,) and no spaces.
    Replace placeholders with the following query parameters: | Parameter | Description | | --------- | ----------- | | `locale` | Locale expressed as 2 letter code: locale={language_code}
    Example: locale:en | | `match` | Match id expressed as: sd:match:{match_id}.
    Example: match=sd:match:4d1c4eb9-69d4-46fc-a42b-12be98227964 | | `status` | Status type expressed as: inprogress or created.
    Example: status=inprogress | Return to API map ## Push Events Detailed, real-time information on every game event. ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nhl/trial/stream/en/events/subscribe?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import requests import json r = requests.get("https://api.sportradar.com/nhl/trial/stream/en/events/subscribe", params = {'api_key': 'your_api_key'}, allow_redirects=False) redirect_url = r.headers['Location'] r = requests.get(redirect_url, stream=True) for line in r.iter_lines(): # filter out keep-alive new lines if line: decoded_line = line.decode('utf-8') print(json.loads(decoded_line)) ``` ```shell curl -L GET 'api.sportradar.us/nhl/trial/stream/en/events/subscribe?api_key={your_api_key}' ``` > The above command returns json like this. Access the Push Events feed by replacing the parameters in the following URL: https://api.sportradar.us/nhl/`{access_level}`/stream/`{language_code}`/events/subscribe?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production), Trial (trial), or Simulation (simulation). | | `language_code` | Optional code for supported languages: en (English) or translations (Any other language translations. See optional query string parameters for locale.) | | `your_api_key` | Your API key. | ### Optional Query String Parameters >Example including optional query string parameters: ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nhl/trial/stream/en/events/subscribe?api_key={your_api_key}&status=inprogress&match=sd:match:4d1c4eb9-69d4-46fc-a42b-12be98227964") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import requests import json r = requests.get("https://api.sportradar.com/nhl/trial/stream/en/events/subscribe", params = {'api_key': 'your_api_key', 'status': 'inprogress', 'match': 'sd:match:4d1c4eb9-69d4-46fc-a42b-12be98227964'}, allow_redirects=False) redirect_url = r.headers['Location'] r = requests.get(redirect_url, stream=True) for line in r.iter_lines(): # filter out keep-alive new lines if line: decoded_line = line.decode('utf-8') print(json.loads(decoded_line)) ``` ```shell curl -L GET 'api.sportradar.us/nhl/trial/stream/en/events/subscribe?api_key={your_api_key}&status=inprogress&match=sd:match:4d1c4eb9-69d4-46fc-a42b-12be98227964' ``` In addition to the URL parameters listed above, you can filter the Events information with one or more of the following optional query string parameters.
    Note: Optional query string parameters must be added after your API key with an ampersand (&). If you are filtering for more than one result, separate the results with a comma (,) and no spaces.
    Replace placeholders with the following query parameters: | Parameter | Description | | --------- | ----------- | | `event_category` | Event category expressed as: {event_category}.
    Example: event_category=shot | | `event_type` | Event type expressed as: {event_type}.
    Example: event_type=stoppage | | `locale` | Locale expressed as 2 letter code: locale={language_code}
    Example: locale:en | | `match` | Match id expressed as: sd:match:{match_id}.
    Example: match=sd:match:4d1c4eb9-69d4-46fc-a42b-12be98227964 | | `status` | Status type expressed as: inprogress or created.
    Example: status=inprogress | | `strength` | Strength type expressed as: {strength}. Example: strength=even | | `team` | Team id expressed as: sd:team:{team_id}.
    Example: team=sd:team:4415b0a7-0f24-11e2-8525-18a905767e44 | | `zone` | Zone expressed as: {zone}. Example: zone=offensive | Return to API map ## Push Statistics Detailed, real-time game stats at the team and player level. ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nhl/trial/stream/en/statistics/subscribe?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import requests import json r = requests.get("https://api.sportradar.com/nhl/trial/stream/en/statistics/subscribe", params = {'api_key': 'your_api_key'}, allow_redirects=False) redirect_url = r.headers['Location'] r = requests.get(redirect_url, stream=True) for line in r.iter_lines(): # filter out keep-alive new lines if line: decoded_line = line.decode('utf-8') print(json.loads(decoded_line)) ``` ```shell curl -L GET 'api.sportradar.us/nhl/trial/stream/en/statistics/subscribe?api_key={your_api_key}' ``` > The above command returns json like this. Access the Push Statistics feed by replacing the parameters in the following URL: https://api.sportradar.us/nhl/`{access_level}`/stream/`{language_code}`/statistics/subscribe?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production), Trial (trial), or Simulation (simulation). | | `language_code` | en (English) | | `your_api_key` | Your API key. | ### Optional Query String Parameters >Example including optional query string parameters: ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nhl/trial/stream/en/statistics/subscribe?api_key={your_api_key}&status=inprogress&match=sd:match:4d1c4eb9-69d4-46fc-a42b-12be98227964") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import requests import json r = requests.get("https://api.sportradar.com/nhl/trial/stream/en/statistics/subscribe", params = {'api_key': 'your_api_key', 'status': 'inprogress', 'match': 'sd:match:4d1c4eb9-69d4-46fc-a42b-12be98227964'}, allow_redirects=False) redirect_url = r.headers['Location'] r = requests.get(redirect_url, stream=True) for line in r.iter_lines(): # filter out keep-alive new lines if line: decoded_line = line.decode('utf-8') print(json.loads(decoded_line)) ``` ```shell curl -L GET 'api.sportradar.us/nhl/trial/stream/en/statistics/subscribe?api_key={your_api_key}&status=inprogress&match=sd:match:4d1c4eb9-69d4-46fc-a42b-12be98227964' ``` In addition to the URL parameters listed above, you can filter the Statistics information with one or more of the following optional query string parameters.
    Note: Optional query string parameters must be added after your API key with an ampersand (&). If you are filtering for more than one result, separate the results with a comma (,) and no spaces.
    Replace placeholders with the following query parameters: | Parameter | Description | | --------- | ----------- | | `match` | Match id expressed as: sd:match:{match_id}.
    Example: match=sd:match:4d1c4eb9-69d4-46fc-a42b-12be98227964 | | `player` | Player id expressed as: sd:player:{player_id}.
    Example: player=sd:player:436a6c0e-0f24-11e2-8525-18a905767e44 | | `stats_type` | Stat type expressed as {stats_type}. Example: stats_type=player | | `status` | Status type expressed as: inprogress or created.
    Example: status=inprogress | | `strength` | Strength type expressed as: {strength}. Example: strength=even | | `team` | Team id expressed as: sd:team:{team_id}.
    Example: team=sd:team:4415b0a7-0f24-11e2-8525-18a905767e44 | Return to API map ## Frequently Asked Questions

    Q: What format are date fields presented in?

    A: When we present date only values we present these in the ISO 8601 standard format.
    ex: 2013-04-03
    We use these for attributes that have date and no time (such as birthdate). For more information: https://en.wikipedia.org/wiki/ISO_8601

    Q: What format are the date/time fields presented in?

    A: All of our Date/Time attributes are in UTC, presented in the ISO 8601 standard format.
    ex: 2013-04-03T18:15:00+00:00
    For more information: https://en.wikipedia.org/wiki/ISO_8601

    Q: What game statuses I can expect to see in the feeds and what are their definitions?

    A: Here is a list of the valid game statuses you can expect to see, and their 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.

    Q: What are the valid events types tracked in the play by play feed?

    A: Here is a list of the valid event types you can expect to see.

    • awardedgoal
    • awardedemptynetgoal
    • challenge
    • emptynetgoal
    • endperiod
    • endshootoutperiod
    • evenstrength
    • faceoff
    • gamesetup
    • giveaway
    • goal
    • goaliechange
    • hit
    • owngoal
    • penalty
    • penaltygoal
    • penaltyshotmissed
    • penaltyshotsaved
    • powerplay
    • shootoutgoal
    • shootoutshotmissed
    • shootoutshotsaved
    • shotmissed
    • shotsaved
    • startshootoutperiod
    • stoppage
    • substitutions
    • takeaway

    The following event types can be classified as stoppage, but will be classified in the event description:

    • teamtimeout
    • tvtimeout

    Q: What are the Series statuses I can expect to see in the feeds and their definitions?

    A: Here is a list of the valid series statuses you can expect to see, and their definitions.

    • scheduled - The series is scheduled to occur.
    • inprogress – The series is in progress.
    • closed – The series is over.

    Q: What are the player positions I can expect to see in the feeds?

    A: Here is a list of the valid player positions you can expect to see.

    • NA
    • D
    • F
    • F-D
    • G

    Q: What are the player primary positions I can expect to see in the feeds?

    A: Here is a list of the valid player primary positions you can expect to see.

    • NA
    • C
    • D
    • G
    • LW
    • RW

    Q: What are the player statuses I can expect to see in the feeds?

    A: Here is a list of the valid player statuses you can expect to see.

    • ACT – Active
    • DUP – Duplicate
    • FA – Free Agent
    • IR – Injured reserve
    • M-LEAGUE – Sent to minor league team
    • NWT – Not with team
    • RET – Retired
    • SUS – Suspended
    • UDP – Unsigned Draft Pick

    Q: What are the player injury statuses I can expect to see in the feeds?

    A: Here is a list of the valid player injury statuses you can expect to see.

    • Unknown
    • Day To Day
    • Out
    • Out For Season
    • Out Indefinitely

    Q: What are the valid playoff statuses and their definitions?

    A: Here is a list of the valid playoff statuses and their definitions:

    • conference – The team has the conference.
    • division – The team has clinched the division.
    • playoff_spot – The team has clinched a playoff berth.
    • presidents_trophy – Team has clinched the best record and home ice advantage.

    Q: Do you provide your feeds in any languages other than English?

    A: Currently, we provide our feeds in 3 languages: English, Russian, and Simplified Chinese. The codes are as follows:

    • English = eu
    • Russian = ru
    • Simplified Chinese = zh

    Please note, our translated feeds include translated teams, players, play by play descriptions. The feeds themselves are in English, but the content of the attributes has been translated.

    Q: What is the scale of the X/Y coordinates?

    A: The rink we use is 2400 by 1020. The scale is in inches. Here is a layout of the rink:

    0 X 2400
    Y
    1020

    Q: How is the on_ice data handled in the Game Play-by-Play feed?

    A: Most events contain on_ice team and player information. Though, this data is not guaranteed for every event within the Play-by-Play feed.

    Return to top

    Docs Navigation