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:
>
Call the schedule or daily schedule and find the Game Id for the chosen game
Call the Game Boxscore using the Game Id
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:
>
Call the season or series schedule and find id for the coach's team
Call the Team Profile using the Team ID
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.
## NHL API v7 Simulations
The live 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. Below are the details regarding the simulations for our NHL API v7
Simulations run every day at the following times (UTC):
11:00 am - Data is reset for the day’s simulations. 12:00 pm - Vancouver at Colorado, Chicago at Los Angeles, Minnesota at St. Louis 4:00 pm – Dallas at St. Louis, Calgary at New York 8:00 pm – Dallas at Detroit, Nashville at Colorado, Minnesota at Vancouver, Florida at Chicago
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:
http://api.sportradar.us/nhl/simulation/`{version}`/`{language_code}`/games/`{year}`/`{month}`/`{day}`/schedule.`{format}`?api_key=`{your_api_key}`
| Parameter | Description |
| --------- | ----------- |
| `version` | Version number of the API you are accessing (Current Version: v7). |
| `language_code` | 2 letter code for supported languages: en (English), es (Spanish), fr (French), ru (Russian), and zh (simplified Chinese). |
| `year` | Current year in 4 digit format (YYYY). |
| `month` | Current month in 2 digit format (MM). |
| `day` | Current day in 2 digit format (DD). |
| `format` | xml or json. |
| `your_api_key` | Your API key. |
Note: If the simulation URL requires a nhl_season, you must use the season type of SIM.
Most relevant pull-based feeds are available for simulation. Simulations of push delivery are available for all feeds.
If you have an existing API key, simply replace the access_level (trial or production) in the URL of a feed with simulation.
## Daily Change Log
Information on any changes made to teams, players, game statistics, and standings.
Update Frequency:
As Necessary
Content Type:
XML or JSON
Game Data Points:
Id Reference
Title
SR Id
League Data Points:
Alias Id
Name
Season Id
Player Data Points:
Full Name Id
Reference
SR Id
Team Data Points:
Id Market
Name Reference
SR Id
```ruby
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://api.sportradar.us/nhl/trial/v7/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/v7/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/v7/en/league/2015/09/21/changes.xml?api_key={your_api_key}"
```
> The above command returns xml structured like this.
This endpoint retrieves the Daily Change Log.
https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/league/`{year}`/`{month}`/`{day}`/changes.`{format}`?api_key=`{your_api_key}`
Replace placeholders with the following query parameters:
| 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: v7). |
| `language_code` | 2 letter code for supported languages: en (English), es (Spanish), fr (French), 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 use the following URL.
http://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 Rotation Number Away Team Seeding Away Team SR Id 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 Rotation Number
Home Team Seeding SR Id Id Reference Scheduled Date and Time SR Id Status Title
League Data Points:
Alias
Id
Name
Venue Data Points:
Address Capacity City Country
Description Id Name SR Id
State Timezone Zip
```ruby
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://api.sportradar.us/nhl/trial/v7/en/games/2017/09/26/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/v7/en/games/2017/09/26/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/v7/en/games/2017/09/26/schedule.xml?api_key={your_api_key}"
```
> The above command returns xml structured like this.
To access the Daily Schedule feed, replace 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}`
Replace placeholders with the following query parameters:
| 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: v7). |
| `language_code` | 2 letter code for supported languages: en (English), es (Spanish), fr (French), 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 use the following URL.
http://feed.elasticstats.com/schema/hockey/schedule-v6.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:
Dominant Hand First Name Full Name High School Id Jersey Number Last Name Name Suffix Position Primary Position Reference
SR Id Transfers Description Transfers Effective Date Transfers End Date Transfers Id Transfers New Team Id Transfers New Team Market Transfers New Team Name Transfers New Team Reference Transfers New Team SR Id
Transfers Notes Transfers Old Team Id Transfers Old Team Market Transfers Old Team Name Transfers Old Team Reference Transfers Old Team SR Id Transfers Start Date Transfers Transaction Code Transfers Transaction Type Transfers Update Date
```ruby
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://api.sportradar.us/nhl/trial/v7/en/league/2017/10/03/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/v7/en/league/2017/10/03/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/v7/en/league/2017/10/03/transfers.xml?api_key={your_api_key}"
```
> The above command returns xml structured like this.
This endpoint retrieves the Daily Transfers.
https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/league/`{year}`/`{month}`/`{day}`/transfers.`{format}`?api_key=`{your_api_key}`
Replace placeholders with the following query parameters:
| 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: v7). |
| `language_code` | 2 letter code for supported languages: en (English), es (Spanish), fr (French), 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 use the following URL.
http://feed.elasticstats.com/schema/hockey/transfers-v7.0.xsd
Return to API map
## Depth Charts
Detailed team depth charts including player position 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
Player Data Points:
Abbreviated name Birth Date Birth Place College Dominant Hand Experience
Full Name Id Jersey Number Position Position Description Position Id
Position Name Primary Position Reference SR Id Status
Team Data Points:
Alias Coach Experience Coach First Name Coach Full Name Coach Id
Coach Last Name Coach Position Id Market
Name Reference SR Id Year Founded
Venue Data Points:
Address Capacity City Country
Description Id Name SR Id
State Timezone Zip
```ruby
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://api.sportradar.us/nhl/trial/v7/en/teams/4416091c-0f24-11e2-8525-18a905767e44/depth_chart.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/v7/en/teams/4416091c-0f24-11e2-8525-18a905767e44/depth_chart.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/v7/en/teams/4416091c-0f24-11e2-8525-18a905767e44/depth_chart.xml?api_key={your_api_key}"
```
> The above command returns xml structured like this.
This endpoint retrieves a team's Depth Chart.
https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/teams/`{team_id}`/depth_chart.`{format}`?api_key=`{your_api_key}`
Replace placeholders with the following query parameters:
| 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: v7). |
| `language_code` | 2 letter code for supported languages: en (English), es (Spanish), fr (French), 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 Depth Charts use the following URL.
http://feed.elasticstats.com/schema/hockey/team-depth-chart-v6.0.xsd
Return to API map
## Game Analytics
Provides corsi, fenwick, and on-ice shot analytics for a game.
Update Frequency:
As Necessary
Content Type:
XML or JSON
Boxscore Data Points:
Actual End Time Actual Start Time Attendance Away Team Flag Away Team Game Score Away Team Id Away Team Market Away Team Name
Away Team Reference Away Team SR Id Away Team Strength Duration (in game time) Clock Period Home Team Flag
Home Team Game Score Home Team Id Home Team Market Home Team Name Home Team Reference Home Team SR Id Home Team Strength
Game Data Points:
Away Team Id Coverage Entry Mode Home Team Id
Id Reference Scheduled Date And Time
SR Id Status Title
Player Game Analytics Data Points:
Average Shot Distance Corsi Against Corsi For Corsi Percentage Corsi Total Fenwick Against Fenwick For Fenwick Percentage
Fenwick Total On Ice Shots Against On Ice Shots Differential On Ice Shots For On Ice Shots Percentage Shot Type Shot Type Goals Shot Type Percentage
Shot Type Shots Starts by Zone - Defensive Starts by Zone - Defensive Percentage Starts by Zone - Neutral Starts by Zone - Neutral Percentage Starts by Zone - Offensive Starts by Zone - Offensive Percentage
Team Game Analytics Data Points:
Average Shot Distance Corsi Against Corsi For Corsi Percentage Corsi Total Fenwick Against
Fenwick For Fenwick Percentage Fenwick Total On Ice Shots Against On Ice Shots Differential On Ice Shots For
On Ice Shots Percentage PDO Shot Type Shot Type Goals Shot Type Percentage Shot Type Shots
Player Data Points:
Full Name Id
Jersey Number Position
Reference SR Id
Team Data Points:
Id Market
Name Reference
SR Id
Venue Data Points:
Address Capacity City Country
Description Id Name SR Id
State Timezone Zip
```ruby
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://api.sportradar.us/nhl/trial/v7/en/games/f4b120a2-649c-4854-b519-b84414eb5e43/analytics.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/v7/en/games/f4b120a2-649c-4854-b519-b84414eb5e43/analytics.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/v7/en/games/f4b120a2-649c-4854-b519-b84414eb5e43/analytics.xml?api_key={your_api_key}"
```
> The above command returns xml structured like this.
This endpoint retrieves Game Analytics.
https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/games/`{game_id}`/analytics.`{format}`?api_key=`{your_api_key}`
Replace placeholders with the following query parameters:
| 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: v7). |
| `language_code` | 2 letter code for supported languages: en (English), es (Spanish), fr (French), 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 Analytics use the following URL.
http://feed.elasticstats.com/schema/hockey/analytics-v6.0.xsd
Return to API map
## Game Boxscore
Top-level team scores by quarter along with full statistics for each teams 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 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 SR Id Away Team Strength Duration (in game time) Clock Game Clock Game Clock Running Flag 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 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 SR Id 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 Assists SR Id 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 Leaders In Goals SR Id 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 Team Leader In Points SR Id Wall Clock
Game Data Points:
Away Team Id Coverage Entry Mode Home Team Id
Id Reference Scheduled Date And Time
SR Id 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 SR Id
Stars Of The Game Data Points:
Player Full Name Player Id Player Jersey Number Player Position
Player Reference Player SR Id Sequence Team Id
Team Market Team Name Team Reference Team SR Id
```ruby
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://api.sportradar.us/nhl/trial/v7/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/v7/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/v7/en/games/f4b120a2-649c-4854-b519-b84414eb5e43/boxscore.xml?api_key={your_api_key}"
```
> The above command returns xml structured like this.
This endpoint retrieves the Game Boxscore information for a specific game.
https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/games/`{game_id}`/boxscore.`{format}`?api_key=`{your_api_key}`
Replace placeholders with the following query parameters:
| 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: v7). |
| `language_code` | 2 letter code for supported languages: en (English), es (Spanish), fr (French), 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 use the following URL.
http://feed.elasticstats.com/schema/hockey/game-v6.0.xsd
Return to API map
## Game Faceoffs
Detailed face-off 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 Away Team SR Id Duration (in game time) Clock Period Home Team Game Score Home Team Id
Home Team Market Home Team Name Home Team Reference Home Team SR Id 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
SR Id Status Title
Player Data Points:
Full Name Id
Jersey Number Position
Reference SR Id
Venue Data Points:
Address Capacity City Country
Description Id Name SR Id
State Timezone Zip
```ruby
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://api.sportradar.us/nhl/trial/v7/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/v7/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/v7/en/games/139cbe99-4c04-438e-bd9a-a7abe928a502/faceoffs.xml?api_key={your_api_key}"
```
> The above command returns xml structured like this.
This endpoint retrieves the Game Faceoffs.
https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/games/`{game_id}`/faceoffs.`{format}`?api_key=`{your_api_key}`
Replace placeholders with the following query parameters:
| 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: v7). |
| `language_code` | 2 letter code for supported languages: en (English), es (Spanish), fr (French), 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 use the following URL.
http://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
Period Id Period Number Period Sequence
Game Data Points:
Away Team Id Away Team Reference Away Team SR Id Coverage Entry Mode
Home Team Id Home Team Reference Home Team SR Id Id Reference
Scheduled Date And Time SR Id Status Title
Play-By-Play Data Points:
Away Team Game Score Away Team Id Away Team Market Away Team Name Away Team Period Score Away Team Reference Away Team SR Id Away Team Strength Event Attribution Team Goal Event Attribution Team Id Event Attribution Team Market Event Attribution Team Name Event Attribution Team Reference Event Attribution Team SR Id 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 Action Area Event Location X Coordinate Event Location Y Coordinate Event Participants Player Full Name Event Participants Player Id Event Participants Player Jersey Number Event Participants Player Reference Event Participants Player SR Id Event Participants Team Id Event Participants Team Market Event Participants Team Name Event Participants Team Reference Event Participants Team SR Id
Event Type Event Zone Home Team Game Score Home Team Id Home Team Market Home Team Name Home Team Period Score Home Team Reference Home Team SR Id Home Team Strength Official Flag On Ice Players On Ice Team 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
Player Data Points:
Full Name Id
Jersey Number Reference
SR Id
Team Data Points:
Id Market
Name Reference
SR Id
```ruby
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://api.sportradar.us/nhl/trial/v7/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/v7/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/v7/en/games/f4b120a2-649c-4854-b519-b84414eb5e43/pbp.xml?api_key={your_api_key}"
```
> The above command returns xml structured like this.
This endpoint retrieves the Play-By-Play for a game.
https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/games/`{game_id}`/pbp.`{format}`?api_key=`{your_api_key}`
Replace placeholders with the following query parameters:
| 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: v7). |
| `language_code` | 2 letter code for supported languages: en (English), es (Spanish), fr (French), 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 use the following URL.
http://feed.elasticstats.com/schema/hockey/pbp-v3.0.xsd
Return to API map
## Game Shot Zones
Provides goals, shots, saves, shooting percentage, shots faced, total shots attempts, and other game statistics for players in each zone.
Update Frequency:
As Necessary
Content Type:
XML or JSON
Boxscore Data Points:
Actual End Time Actual Start Time Attendance 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 SR Id 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 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 SR Id Home Team Strength Lineups Played Lineups Scratched Lineups Starter Overtime Number Overtime Sequence Period Number Period Sequence Shootout Number Shootout Sequence
Game Data Points:
Away Team Id Coverage Entry Mode Home Team Id
Id Reference Scheduled Date And Time
SR Id Status Title
Player Danger Zone Data Points:
Blocked Attempts Goals Goals Against Missed Shots
Name Saves Saves Percentage Shooting Percentage
Shot Attempts Shots Shots Against
Player Shot Zone Data Points:
Blocked Attempts Blocked Attempts per Game Goals Goals Against Goals Against per Game Goals per Game
Missed Shots Missed Shots per Game Name Saves Saves per Game Saves Percentage
Shooting Percentage Shot Attempts Shots Shots Against Shots Against per Game Shots per Game
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 Name Suffix Position Primary Position Reference SR Id
Team Data Points:
Id Market
Name Reference
SR Id
Venue Data Points:
Address Capacity City Country
Description Id Name SR Id
State Timezone Zip
```ruby
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://api.sportradar.us/nhl/trial/v7/en/games/f4b120a2-649c-4854-b519-b84414eb5e43/shot_zones.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/v7/en/games/f4b120a2-649c-4854-b519-b84414eb5e43/shot_zones.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/v7/en/games/f4b120a2-649c-4854-b519-b84414eb5e43/shot_zones.xml?api_key={your_api_key}"
```
> The above command returns xml structured like this.
This endpoint retrieves Game Shot Zones.
https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/games/`{game_id}`/shot_zones.`{format}`?api_key=`{your_api_key}`
Replace placeholders with the following query parameters:
| 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: v7). |
| `language_code` | 2 letter code for supported languages: en (English), es (Spanish), fr (French), 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 Shot Zones use the following URL.
http://feed.elasticstats.com/schema/hockey/game-v6.0.xsd
Return to API map
## Game Summary
Top-level boxscore information along with detailed game stats at the team and player levels.
Update Frequency:
As Necessary
Content Type:
XML or JSON
Boxscore Data Points:
Actual End Time Actual Start Time Attendance 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 SR Id 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 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 SR Id 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 Coverage Entry Mode Home Team Id
Id Reference Scheduled Date And Time
SR Id 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 Name Suffix Position Primary Position Reference SR Id
Venue Data Points:
Address Capacity City Country
Description Id Name SR Id
State Timezone Zip
```ruby
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://api.sportradar.us/nhl/trial/v7/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/v7/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/v7/en/games/f4b120a2-649c-4854-b519-b84414eb5e43/summary.xml?api_key={your_api_key}"
```
> The above command returns xml structured like this.
This endpoint retrieves a Game Summary.
https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/games/`{game_id}`/summary.`{format}`?api_key=`{your_api_key}`
Replace placeholders with the following query parameters:
| 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: v7). |
| `language_code` | 2 letter code for supported languages: en (English), es (Spanish), fr (French), 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 use the following URL.
http://feed.elasticstats.com/schema/hockey/game-v6.0.xsd
Return to API map
## Game Time On Ice
Detailed face-off information for teams and players, including shift information, 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 Away Team SR Id Duration (in game time) Clock Period Home Team Game Score Home Team Id
Home Team Market Home Team Name Home Team Reference Home Team SR Id Period Id Period Number Period Sequence Period Type
Game Data Points:
Away Team Id Coverage Entry Mode Home Team Id
Id Reference Scheduled Date And Time
SR Id Status Title
Player Data Points:
Full Name Id
Jersey Number Position
Reference SR Id
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 SR Id
State Timezone Zip
```ruby
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://api.sportradar.us/nhl/trial/v7/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/v7/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/v7/en/games/df8ac1e6-c278-4160-9dc8-d59bf8d8ca2c/time_on_ice.xml?api_key={your_api_key}"
```
> The above command returns xml structured like this.
This endpoint retrieves the Time on Ice for a game.
https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/games/`{game_id}`/time_on_ice.`{format}`?api_key=`{your_api_key}`
Replace placeholders with the following query parameters:
| 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: v7). |
| `language_code` | 2 letter code for supported languages: en (English), es (Spanish), fr (French), 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 use the following URL.
http://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:
Dominant Hand First Name Full Name High School Id Injuries Comment
Injuries Description Injuries Id Injuries Start Date Injuries Status Injuries Update Date Jersey Number
Last Name Name Suffix Position Primary Position Reference SR Id
Team Data Points:
Id Market
Name Reference
SR Id
```ruby
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://api.sportradar.us/nhl/trial/v7/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/v7/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/v7/en/league/injuries.xml?api_key={your_api_key}"
```
> The above command returns xml structured like this.
This endpoint retrieves player Injuries.
https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/league/injuries.`{format}`?api_key=`{your_api_key}`
Replace placeholders with the following query parameters:
| 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: v7). |
| `language_code` | 2 letter code for supported languages: en (English), es (Spanish), fr (French), 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 use the following URL.
http://feed.elasticstats.com/schema/hockey/injuries-v2.0.xsd
Return to API map
## League Hierarchy
League, conference, division, team identification, and association 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 SR Id
Venue Data Points:
Address Capacity City Country
Description Id Name SR Id
State Timezone Zip
```ruby
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://api.sportradar.us/nhl/trial/v7/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/v7/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/v7/en/league/hierarchy.xml?api_key={your_api_key}"
```
> The above command returns xml structured like this.
This endpoint retrieves the League Hierarchy.
https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/league/hierarchy.`{format}`?api_key=`{your_api_key}`
Replace placeholders with the following query parameters:
| 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: v7). |
| `language_code` | 2 letter code for supported languages: en (English), es (Spanish), fr (French), 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 use the following URL.
http://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 Name Suffix Position
Primary Position Reference SR Id
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
SR Id
```ruby
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://api.sportradar.us/nhl/trial/v7/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/v7/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/v7/en/seasons/2015/REG/leaders/goaltending.xml?api_key={your_api_key}"
```
> The above command returns xml structured like this.
This endpoint retrieves the League Leaders for goaltending.
https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/seasons/`{season_year}`/`{nhl_season}`/leaders/goaltending.`{format}`?api_key=`{your_api_key}`
Replace placeholders with the following query parameters:
| 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: v7). |
| `language_code` | 2 letter code for supported languages: en (English), es (Spanish), fr (French), 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 use the following URL.
http://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 Name Suffix Position
Primary Position Reference SR Id
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
SR Id
```ruby
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://api.sportradar.us/nhl/trial/v7/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/v7/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/v7/en/seasons/2015/REG/leaders/offense.xml?api_key={your_api_key}"
```
> The above command returns xml structured like this.
This endpoint retrieves the League Leaders for offense.
https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/seasons/`{season_year}`/`{nhl_season}`/leaders/offense.`{format}`?api_key=`{your_api_key}`
Replace placeholders with the following query parameters:
| 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: v7). |
| `language_code` | 2 letter code for supported languages: en (English), es (Spanish), fr (French), 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 use the following URL.
http://feed.elasticstats.com/schema/hockey/statistics-v4.0.xsd
Return to API map
## League Leaders - Daily
NHL daily 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 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
SR Id
Team Data Points:
Id Market
Name Reference
SR Id
```ruby
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://api.sportradar.us/nhl/trial/v7/en/seasons/2017/REG/2017/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/v7/en/seasons/2017/REG/2017/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/v7/en/seasons/2017/REG/2017/10/28/leaders.xml?api_key={your_api_key}"
```
> The above command returns xml structured like this.
This endpoint retrieves the League Leaders daily.
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}`
Replace placeholders with the following query parameters:
| 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: v7). |
| `language_code` | 2 letter code for supported languages: en (English), es (Spanish), fr (French), 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 use the following URL.
http://feed.elasticstats.com/schema/hockey/leaders-v3.0.xsd
Return to API map
## League Leaders - Seasonal
NHL seasonal 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 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
SR Id
Team Data Points:
Id Market
Name Reference
SR Id
```ruby
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://api.sportradar.us/nhl/trial/v7/en/seasons/2017/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/v7/en/seasons/2017/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/v7/en/seasons/2017/REG/leaders.xml?api_key={your_api_key}"
```
> The above command returns xml structured like this.
This endpoint retrieves the League Leaders for a season.
https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/seasons/`{season_year}`/`{nhl_season}`/leaders.`{format}`?api_key=`{your_api_key}`
Replace placeholders with the following query parameters:
| 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: v7). |
| `language_code` | 2 letter code for supported languages: en (English), es (Spanish), fr (French), 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 use the following URL.
http://feed.elasticstats.com/schema/hockey/leaders-v3.0.xsd
Return to API map
## Player Profile
Detailed player information including a current look at the players statistics for the current season.
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 High School Jersey Number Last Name
Name Suffix Position Primary Position Reference Rookie Year SR Id 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
SR Id
```ruby
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://api.sportradar.us/nhl/trial/v7/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/v7/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/v7/en/players/42a966db-0f24-11e2-8525-18a905767e44/profile.xml?api_key={your_api_key}"
```
> The above command returns xml structured like this.
This endpoint retrieves a Player Profile.
https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/players/`{player_id}`/profile.`{format}`?api_key=`{your_api_key}`
Replace placeholders with the following query parameters:
| 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: v7). |
| `language_code` | 2 letter code for supported languages: en (English), es (Spanish), fr (French), 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 use the following URL.
http://feed.elasticstats.com/schema/hockey/profile-v7.0.xsd
Return to API map
## Rankings
Conference and division rank for each team, including post season 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
Rank Wildcard
Team Data Points:
Id Market
Name Reference
SR Id
```ruby
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://api.sportradar.us/nhl/trial/v7/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/v7/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/v7/en/seasons/2015/REG/rankings.xml?api_key={your_api_key}"
```
> The above command returns xml structured like this.
This endpoint retrieves the current Rankings.
https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/seasons/`{season_year}`/`{nhl_season}`/rankings.`{format}`?api_key=`{your_api_key}`
Replace placeholders with the following query parameters:
| 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: v7). |
| `language_code` | 2 letter code for supported languages: en (English), es (Spanish), fr (French), 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 use the following URL.
http://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 Rotation Number Away Team Seeding Away Team SR Id 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 Rotation Number Home Team Seeding Home Team SR Id Id Reference Scheduled Date and Time SR Id Status Title
League Data Points:
Alias Id
Name Season Id
Season Type Season Year
Venue Data Points:
Address Capacity City Country
Description Id Name SR Id
State Timezone Zip
```ruby
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://api.sportradar.us/nhl/trial/v7/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/v7/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/v7/en/games/2016/REG/schedule.xml?api_key={your_api_key}"
```
> The above command returns xml structured like this.
This endpoint retrieves the Schedule.
https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/games/`{season_year}`/`{nhl_season}`/schedule.`{format}`?api_key=`{your_api_key}`
Replace placeholders with the following query parameters:
| 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: v7). |
| `language_code` | 2 letter code for supported languages: en (English), es (Spanish), fr (French), 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 use the following URL.
http://feed.elasticstats.com/schema/hockey/schedule-v6.0.xsd
Return to API map
## Seasonal Analytics
Provides corsi, fenwick, and on ice shots analytics for a player during a given 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 Name Suffix Position
Primary Position Reference SR Id
Opponent Seasonal Analytics Data Points:
Average Shot Distance per Game Backhand Shot Goals per Game Backhand Shot Shots per Game Corsi Against per Game Corsi For per Game Corsi Percentage Corsi Total Fenwick Against per Game Fenwick For per Game
Fenwick Percentage Fenwick Total Games Played Total On Ice Shots Against per Game On Ice Shots Differential On Ice Shots For per Game On Ice Shots Percentage PDO Slap Shot Goals per Game
Slap Shot Shots per Game Snap Shot Goals per Game Snap Shot Shots per Game Tip Shot Goals per Game Tip Shot Shots per Game Wrap Around Shot Goals per Game Wrap Around Shot Shots per Game Wrist Shot Goals per Game Wrist Shot Shots per Game
Player Seasonal Analytics Data Points:
Backhand Shot Goals per Game Backhand Shot Shots per Game Corsi Percentage Corsi Total Defensive Zone Starts per Game Fenwick Percentage Fenwick Total Games Played Total
Neutral Zone Starts per Game Offensive Zone Starts per Game On Ice Shots Differential On Ice Shots Percentage Slap Shot Goals per Game Slap Shot Shots per Game Snap Shot Goals per Game
Snap Shot Shots per Game Tip Shot Goals per Game Tip Shot Shots per Game Wrap Around Shot Goals per Game Wrap Around Shot Shots per Game Wrist Shot Goals per Game Wrist Shot Shots per Game
Team Season Analytics Data Points:
Average Shot Distance per Game Backhand Shot Goals per Game Backhand Shot Shots per Game Corsi Against per Game Corsi For per Game Corsi Percentage Corsi Total Fenwick Against per Game Fenwick For per Game
Fenwick Percentage Fenwick Total Games Played Total On Ice Shots Against per Game On Ice Shots Differential On Ice Shots For per Game On Ice Shots Percentage PDO Slap Shot Goals per Game
Slap Shot Shots per Game Snap Shot Goals per Game Snap Shot Shots per Game Tip Shot Goals per Game Tip Shot Shots per Game Wrap Around Shot Goals per Game Wrap Around Shot Shots per Game Wrist Shot Goals per Game Wrist Shot Shots per Game
Team Data Points:
Id Market
Name Reference
SR Id
```ruby
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://api.sportradar.us/nhl/trial/v7/en/seasons/2015/REG/teams/4416091c-0f24-11e2-8525-18a905767e44/analytics.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/v7/en/seasons/2015/REG/teams/4416091c-0f24-11e2-8525-18a905767e44/analytics.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/v7/en/seasons/2015/REG/teams/4416091c-0f24-11e2-8525-18a905767e44/analytics.xml?api_key={your_api_key}"
```
> The above command returns xml structured like this.
This endpoint retrieves the Seasonal Analytics for a given team.
https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/seasons/`{season_year}`/`{nhl_season}`/teams/`{team_id}`/analytics.`{format}`?api_key=`{your_api_key}`
Replace placeholders with the following query parameters:
| 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: v7). |
| `language_code` | 2 letter code for supported languages: en (English), es (Spanish), fr (French), 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 Analytics use the following URL.
http://feed.elasticstats.com/schema/hockey/analytics-v6.0.xsd
Return to API map
## Seasonal Faceoffs
Detailed face-off information for teams and players, including period, zone, and strength breakdowns for a given 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 Name Suffix Position
Primary Position Reference SR Id
Team Data Points:
Id Market
Name Reference
SR Id
```ruby
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://api.sportradar.us/nhl/trial/v7/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/v7/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/v7/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.
This endpoint retrieves the Seasonal Faceoffs.
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}`
Replace placeholders with the following query parameters:
| 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: v7). |
| `language_code` | 2 letter code for supported languages: en (English), es (Spanish), fr (French), 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 use the following URL.
http://feed.elasticstats.com/schema/hockey/faceoffs-v3.0.xsd
Return to API map
## Seasonal Shot Zones
Provides goals, shots, saves, shooting percentage, shots faced, total shots attempts, and other seasonal statistics for a player in each zone.
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 Captain Flag College Dominant Hand Draft Pick Draft Round Draft Team
Draft Year Experience First Name Full Name Height (in) Id Jersey Number Last Name Name Suffix
Position Primary Position Reference SR Id Status Update Date Weight (lbs)
Player Seasonal Danger Zone Data Points:
Blocked Attempts Blocked Attempts per Game Goals Goals Against Goals Against per Game Goals per Game
Missed Shots Missed Shots per Game Name Saves Saves per Game Saves Percentage
Shooting Percentage Shot Attempts Shots Shots Against Shots Against per Game Shots per Game
Player Seasonal Shot Zone Data Points:
Blocked Attempts Blocked Attempts per Game Goals Goals Against Goals Against per Game Goals per Game
Missed Shots Missed Shots per Game Name Saves Saves per Game Saves Percentage
Shooting Percentage Shot Attempts Shots Shots Against Shots Against per Game Shots per Game
Team Data Points:
Alias Id
Market Name
Reference SR Id
```ruby
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://api.sportradar.us/nhl/trial/v7/en/players/42a966db-0f24-11e2-8525-18a905767e44/shot_zones.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/v7/en/players/42a966db-0f24-11e2-8525-18a905767e44/shot_zones.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/v7/en/players/42a966db-0f24-11e2-8525-18a905767e44/shot_zones.xml?api_key={your_api_key}"
```
> The above command returns xml structured like this.
This endpoint retrieves Seasonal Shot Zones.
https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/players/`{player_id}`/shot_zones.`{format}`?api_key=`{your_api_key}`
Replace placeholders with the following query parameters:
| 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: v7). |
| `language_code` | 2 letter code for supported languages: en (English), es (Spanish), fr (French), 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 Seasonal Shot Zones use the following URL.
http://feed.elasticstats.com/schema/hockey/shot-zones-v6.0.xsd
Return to API map
## Seasonal Statistics (Season To Date)
Detailed team and player statistics for the defined season to the current date.
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 Name Suffix Position
Primary Position Reference SR Id
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 Percentage 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 Goals Against Short Handed Kill Percentage Short Handed Missed Shots Short Handed Opportunities 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 Percentage 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 Goals Against Short Handed Kill Percentage Short Handed Missed Shots Short Handed Opportunities 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
SR Id
```ruby
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://api.sportradar.us/nhl/trial/v7/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/v7/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/v7/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.
This endpoint retrieves the Seasonal Statistics for a given team.
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}`
Replace placeholders with the following query parameters:
| 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: v7). |
| `language_code` | 2 letter code for supported languages: en (English), es (Spanish), fr (French), 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 use the following URL.
http://feed.elasticstats.com/schema/hockey/statistics-v4.0.xsd
Return to API map
## Seasons
Provides a list of all available seasons.
Update Frequency:
As Necessary
Content Type:
XML or JSON
League Data Points:
Season End Date Season Id Season Name
Season Start Date Season Status
Season Type Season Year
```ruby
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://api.sportradar.us/nhl/trial/v7/en/league/seasons.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/v7/en/league/seasons.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/v7/en/league/seasons.xml?api_key={your_api_key}"
```
> The above command returns xml structured like this.
This endpoint retrieves the Seasons available.
https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/league/seasons.`{format}`?api_key=`{your_api_key}`
Replace placeholders with the following query parameters:
| 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: v7). |
| `language_code` | 2 letter code for supported languages: en (English), es (Spanish), fr (French), ru (Russian), and zh (simplified Chinese). |
| `format` | xml or json. |
| `your_api_key` | Your API key. |
To retrieve the XML Schema Definition (.XSD) for Seasons use the following URL.
http://feed.elasticstats.com/schema/hockey/seasons-v6.0.xsd
Return to API map
## Series Faceoffs
Detailed face-off information for teams and players, including period, zone, and strength breakdowns for a given series.
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 Name Suffix Position
Primary Position Reference SR Id
Series Data Points:
Id
Status
Title
Team Data Points:
Id Market
Name Reference
SR Id
```ruby
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://api.sportradar.us/nhl/trial/v7/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/v7/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/v7/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.
This endpoint retrieves the Series Faceoffs.
https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/series/`{series_id}`/teams/`{team_id}`/faceoffs.`{format}`?api_key=`{your_api_key}`
Replace placeholders with the following query parameters:
| 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: v7). |
| `language_code` | 2 letter code for supported languages: en (English), es (Spanish), fr (French), 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 use the following URL.
http://feed.elasticstats.com/schema/hockey/faceoffs-v3.0.xsd
Return to API map
## Series Schedule
Play-off participant information as well as the date, time, location, and other event details for every match-up taking place for the entire play-offs.
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 Rotation Number Away Team Seeding Away Team SR Id 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 Rotation Number Home Team Seeding Home Team SR Id Id Reference Scheduled Date and Time SR Id Status Title
League Data Points:
Alias Id Division Seed
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 SR Id
Venue Data Points:
Address Capacity City Country
Description Id Name SR Id
State Timezone Zip
```ruby
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://api.sportradar.us/nhl/trial/v7/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/v7/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/v7/en/series/2015/PST/schedule.xml?api_key={your_api_key}"
```
> The above command returns xml structured like this.
This endpoint retrieves the Series Schedule.
https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/series/`{season_year}`/`{nhl_season}`/schedule.`{format}`?api_key=`{your_api_key}`
Replace placeholders with the following query parameters:
| 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: v7). |
| `language_code` | 2 letter code for supported languages: en (English), es (Spanish), fr (French), 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 use the following URL.
http://feed.elasticstats.com/schema/hockey/schedule-v6.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 Name Suffix Position
Primary Position Reference SR Id
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 Percentage 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 Goals Against Short Handed Kill Percentage Short Handed Missed Shots Short Handed Opportunities 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 Percentage 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 Goals Against Short Handed Kill Percentage Short Handed Missed Shots Short Handed Opportunities 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
SR Id
```ruby
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://api.sportradar.us/nhl/trial/v7/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/v7/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/v7/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.
This endpoint retrieves the current Series Statistics.
https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/series/`{series_id}`/teams/`{team_id}`/statistics.`{format}`?api_key=`{your_api_key}`
Replace placeholders with the following query parameters:
| 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: v7). |
| `language_code` | 2 letter code for supported languages: en (English), es (Spanish), fr (French), 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 use the following URL.
http://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 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 Season Id Season Type Season Year
Standings Data Points:
Conference Calculated Rank Conference Losses Conference Overtime Losses Conference Rank Conference Tiebreak Conference Winning Percentage Conference Wins Division Calculated Rank Division Losses Division Overtime Losses Division Rank Division Tiebreak 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 Points per Game Points Percentage Power Play Goals Power Play Goals Against Power Play Opportunities Power Play Percentage Power Plays Against Rank Wildcard 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
SR Id
```ruby
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://api.sportradar.us/nhl/trial/v7/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/v7/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/v7/en/seasons/2015/REG/standings.xml?api_key={your_api_key}"
```
> The above command returns xml structured like this.
This endpoint retrieves the current Standings.
https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/seasons/`{season_year}`/`{nhl_season}`/standings.`{format}`?api_key=`{your_api_key}`
Replace placeholders with the following query parameters:
| 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: v7). |
| `language_code` | 2 letter code for supported languages: en (English), es (Spanish), fr (French), 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 use the following URL.
http://feed.elasticstats.com/schema/hockey/nhl/standings-v4.0.xsd
Return to API map
## Team Leaders - Daily
NHL daily 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 League Leader Data Points:
Assists Category Type Game Winning Goals Games Played Goals Goals Against Average
Power Play Goals Rank Save Percentage Shorthanded Goals Shots Shots Against Wins
Player Data Points:
Full Name Id
Jersey Number Reference
SR Id
Team Data Points:
Id Market
Name Reference
SR Id
```ruby
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://api.sportradar.us/nhl/trial/v7/en/seasons/2017/REG/2017/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/v7/en/seasons/2017/REG/2017/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/v7/en/seasons/2017/REG/2017/10/28/teams/441862de-0f24-11e2-8525-18a905767e44/leaders.xml?api_key={your_api_key}"
```
> The above command returns xml structured like this.
This endpoint retrieves the Team Leaders for a date.
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}`
Replace placeholders with the following query parameters:
| 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: v7). |
| `language_code` | 2 letter code for supported languages: en (English), es (Spanish), fr (French), 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 use the following URL.
http://feed.elasticstats.com/schema/hockey/leaders-v3.0.xsd
Return to API map
## Team Leaders - Seasonal
NHL seasonal 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 League Leader Data Points:
Assists Category Type Game Winning Goals Games Played Goals Goals Against Average
Power Play Goals Rank Save Percentage Shorthanded Goals Shots Shots Against Wins
Player Data Points:
Full Name Id
Jersey Number Reference
SR Id
Team Data Points:
Id Market
Name Reference
SR Id
```ruby
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://api.sportradar.us/nhl/trial/v7/en/seasons/2017/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/v7/en/seasons/2017/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/v7/en/seasons/2017/REG/teams/441862de-0f24-11e2-8525-18a905767e44/leaders.xml?api_key={your_api_key}"
```
> The above command returns xml structured like this.
This endpoint retrieves the Team Leaders for a season.
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}`
Replace placeholders with the following query parameters:
| 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: v7). |
| `language_code` | 2 letter code for supported languages: en (English), es (Spanish), fr (French), 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 use the following URL.
http://feed.elasticstats.com/schema/hockey/leaders-v3.0.xsd
Return to API map
## Team Profile (Rosters)
Detailed team information including league affiliation information as well as player roster 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
Player Data Points:
Abbreviated name Birth Date Birth Place Captain Flag College Dominant Hand Draft Pick Draft Round Draft Team Draft Year Experience
First Name Full Name Height (in) High School Id Injuries Comment Injuries Description Injuries Id Injuries Start Date Injuries Status Injuries Update Date
Jersey Number Last Name Name Suffix Position Primary Position Reference Rookie Year SR Id 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 SR Id Year Founded
Venue Data Points:
Address Capacity City Country
Description Id Name SR Id
State Timezone Zip
```ruby
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://api.sportradar.us/nhl/trial/v7/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/v7/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/v7/en/teams/4416091c-0f24-11e2-8525-18a905767e44/profile.xml?api_key={your_api_key}"
```
> The above command returns xml structured like this.
This endpoint retrieves the Team Profile.
https://api.sportradar.us/nhl/`{access_level}`/`{version}`/`{language_code}`/teams/`{team_id}`/profile.`{format}`?api_key=`{your_api_key}`
Replace placeholders with the following query parameters:
| 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: v7). |
| `language_code` | 2 letter code for supported languages: en (English), es (Spanish), fr (French), 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 use the following URL.
http://feed.elasticstats.com/schema/hockey/team-v7.0.xsd
Return to API map
## Push Feeds
>To best utilize Push feeds, we have included code samples in Ruby and Java which provides 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, 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
```ruby
require 'uri'
require 'net/http'
require 'openssl'
url = URI("http://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 http.client
conn = http.client.HTTPSConnection("api.sportradar.us")
conn.request("GET", "/nhl/trial/stream/en/clock/subscribe?api_key={your_api_key}")
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
```
```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.
This endpoint retrieves the Clock information via Push.
http://api.sportradar.us/nhl/`{access_level}`/stream/`{language_code}`/clock/subscribe?api_key=`{your_api_key}`
Replace placeholders with the following query parameters:
| 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("http://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 http.client
conn = http.client.HTTPSConnection("api.sportradar.us")
conn.request("GET", "/nhl/trial/stream/en/clock/subscribe?api_key={your_api_key}&status=inprogress&match=sd:match:4d1c4eb9-69d4-46fc-a42b-12be98227964")
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
```
```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
```ruby
require 'uri'
require 'net/http'
require 'openssl'
url = URI("http://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 http.client
conn = http.client.HTTPSConnection("api.sportradar.us")
conn.request("GET", "/nhl/trial/stream/en/events/subscribe?api_key={your_api_key}")
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
```
```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.
This endpoint retrieves the Events information via Push.
http://api.sportradar.us/nhl/`{access_level}`/stream/`{language_code}`/events/subscribe?api_key=`{your_api_key}`
Replace placeholders with the following query parameters:
| 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("http://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 http.client
conn = http.client.HTTPSConnection("api.sportradar.us")
conn.request("GET", "/nhl/trial/stream/en/events/subscribe?api_key={your_api_key}&status=inprogress&match=sd:match:4d1c4eb9-69d4-46fc-a42b-12be98227964")
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
```
```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
```ruby
require 'uri'
require 'net/http'
require 'openssl'
url = URI("http://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 http.client
conn = http.client.HTTPSConnection("api.sportradar.us")
conn.request("GET", "/nhl/trial/stream/en/statistics/subscribe?api_key={your_api_key}")
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
```
```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.
This endpoint retrieves the Statistics information via Push.
http://api.sportradar.us/nhl/`{access_level}`/stream/`{language_code}`/statistics/subscribe?api_key=`{your_api_key}`
Replace placeholders with the following query parameters:
| 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("http://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 http.client
conn = http.client.HTTPSConnection("api.sportradar.us")
conn.request("GET", "/nhl/trial/stream/en/statistics/subscribe?api_key={your_api_key}&status=inprogress&match=sd:match:4d1c4eb9-69d4-46fc-a42b-12be98227964")
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
```
```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 |
| --------- | ----------- |
| `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 |
| `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 event types tracked in the play by play feed?
A: Here is a list of the valid event types you can expect to see.
challenge
emptynetgoal
endperiod
endshootoutperiod
evenstrength
faceoff
gamesetup
giveaway
goal
goaliechange
hit
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
IR – Injured reserve
M-LEAGUE – Sent to minor league team
NWT – Not with team
SUS – Suspended
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: What are the “shot_type – type” values I can expect to see in the feeds?
A: Here is a list of the valid “shot_type – type” values you can expect to see:
wrist
slap
backhand
tip
snap
wrap_around
Q: What are the names of the shot zones I can expect to see in the feeds?
A: Here is a list of the shot zone names you can expect to see:
defensive_zone
neutral_zone
center_point
left_point
right_point
low_center_point
low_left_point
low_right_point
outside_right_circle
inside_right_circle
high_slot
inside_left_circle
outside_left_circle
low_right
right_slot
slot
left_slot
low_left
low_slot
down_low
Q: What are the names of the danger zones I can expect to see in the feeds?
A: Here is a list of the danger zone names you can expect to see:
danger_high
danger_medium
danger_low
Q: What are the penalty types found in the feeds?
A: Here is a list of the currently valid penalty_type values:
Bench Penalty
Boarding
Charging
Check From Behind
Clipping
Closing Hand on the Puck
Cross Checking
Delay of Game
Diving
Elbowing
Faceoff Violation
Fighting
Goalie Interference
High Sticking
Holding
Holding Stick
Hooking
Illegal Check to Head
Illegal Equipment
Illegal substitution (Penalty Shot)
Instigator
Interference
Interference - Displacing net (Penalty Shot)
Interference - Throwing object (Penalty Shot)
Interference from bench (Penalty Shot)
Interference in crease (Penalty Shot)
Interference on breakaway (Penalty Shot)
Kneeing
Misconduct
Players leaving bench (Penalty Shot)
Roughing
Slashing
Spearing
Too Many Men on the Ice
Tripping
Unsportsmanlike Conduct
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.
Q. How will the competitive format change for the NHL this season?
A. We have outlined how the format will be affected below:
Regular Season
The 2019 regular season is complete. All unplayed games have been cancelled. Standings and statistics are final. All playoff clinching information has been updated.
Playoffs
The following key changes have been made to the playoff format:
Playoffs will now include 24 teams as opposed to the standard 16 teams.
12 teams from each conference will make the playoffs.
Playoffs will occur in 2 hub cities - The Eastern Conference will play in Toronto for the qualifying, first and second round, while the Western Conference will play in Edmonton. The Conference Finals and Stanley Cup Finals will be hosted in Edmonton.
There will be an extra round of the playoffs. This will be the Qualifying Round.
The top 4 teams in each conference will have a bye into the first round of the playoffs. During the qualifying round, they will play a round robin style tournament for seeding in the first round. Each team will play the other teams in round robin once. If these games go to overtime, they will be played under regular season overtime rules.
This round robin will be used to establish seeding going forward in the playoffs.
The bottom 8 teams will play a head to head series during the qualifying round. The winners will face one of the top 4 teams in the first round. These serieses will be best of 5. If games in these series go to overtime, they will be played under playoff overtime rules.
The playoffs will be re-seeded after each round. The highest remaining seed in each conference will face the lowest remaining seed, the second-highest remaining seed in each conference will face the second-lowest remaining seed.
All statistics in the qualifying round will count. For record keeping purposes, every team and player participating in the qualifying round will be considered to have made the playoffs.
Q. What changes do we need to plan for?
A. There will be no changes to most data feeds and functionality, the changes are isolated to the Series Schedule feed, with minor changes to the Daily Schedule and Schedule feeds as outlined below.
Q. What effect do these changes have on the NHL APIs?
A. Listed below are the changes to feed behavior:
The participant, home, and away seed values will now be 1-12 (instead of 1-8). This applies to all Schedule feeds.
There will now be 5 rounds of playoffs. The “Qualifying Round” will be classified as round 0 and the Stanley Cup Final will be classified as round 4. This applies only to the Series Schedule feed.
The Qualifying - Round Robin will contain 4 teams instead of 2. For this, the ‘record’ attribute will still populate indicating wins and the value will technically be correct, but it will be irrelevant since the NHL is using regular season OT rules. This applies only to the Series Schedule feed.
The seed attribute in the division element will be unpopulated. It is irrelevant with the new format. See "division" sample below. This applies only to the Series Schedule feed.
The following source elements and attributes will not be used in the feed (See "source" sample below), and only applies to the Series Schedule feed:
Q. What are the critical dates for the rest of 2020?
A. A selection of upcoming and updated critical dates are included below: