NBA v4

Frequently Asked Questions
API API Version Data Entry Workflow Failover
Official NBA v4 Data Entry Workflow Failover Details
Failover Summary
Note: Authentication is required for all API calls.
## NBA API Map To best utilize the NBA 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 team's leader in assists for a given game: >
  1. Call the season or series schedule and find the Game Id for the chosen game
  2. Call the Game Boxscore using the Game Id
  3. Find the Team Assists Leader statistics and locate the player full_name attribute
>The name of the team's leader in assists is displayed. >
    >To find a player's average points per game: >
    1. Call the season or series schedule and find id for the team the player is on
    2. Call the Team Profile using the Team ID
    3. Locate the Player ID for your chosen player and call the Player Profile.
    4. Find the average element with the points attribute
    >The players's average points are 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. ## Coverage Levels We provide two different levels of detail to ensure maximum coverage. We combine coverage levels with the correct feeds to ensure you are getting the most comprehensive data offering in the most efficient manner possible. Extended Boxscore – We provide scores, time remaining, and team leaders (assists, points, and rebounds), in a timely manner, as the game progresses. We provide team- and player-level data for the game within 30 minutes of the official results being posted. Full – We provide live play-by-play coverage for the entire game. We provide updated scores and time remaining as well as team- and player-level data in near real time. Full coverage is available for all regular and post season games.
    Note: Preseason coverage of NBA games may vary. Due to data-entry coverage (from venue) not being available, some games may be covered via our extended boxscore coverage.
    ## NBA API v4 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 NBA API v4 Simulations run every day at the following times (UTC): 12:45 pm – Data is reset for day's simulations.
    1:00 pm – Chicago Bulls at New York Knicks & Miami Heat at Detroit Pistons.
    5:00 pm – Dallas Mavericks at San Antonio Spurs, Philadelphia 76ers at Detroit Pistons, and Washington Wizards at Golden State Warriors.
    7:00 pm – San Antonio Spurs at Los Angeles Lakers.
    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/nba/simulation/`{version}`/`{language_code}`/games/2017/SIM/schedule.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | --------- | ----------- | | `version` | Version number of the API you are accessing (Current Version: v4). | | `language_code` | Optional 2 letter code for supported languages: en (English), ru (Russian), zh (simplified Chinese), and ja (Japanese). | | `format` | xml or json. | | `your_api_key` | Your API key. | 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 Info Data Points: Game Id Last Updated
    League Info Data Points: League Alias
    League Id
    League Name Season Id
    Player Data Points: Full Name Last Modified Player Id
    Team Data Points: Id
    Last Modified
    Market
    Name
    Reference
    ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nba/trial/v4/en/league/2013/12/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", "/nba/trial/v4/en/league/2013/12/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/nba/trial/v4/en/league/2013/12/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/nba/`{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: v4). | | `language_code` | Optional 2 letter code for supported languages: en (English), ru (Russian), zh (simplified Chinese), and ja (Japanese). | | `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/basketball/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 Info Data Points: Away Team Alias
    Away Team Id
    Away Team Name
    Away Team Points
    Away Team Reference
    Away Team Rotation Number
    Away Team Seed Number
    Broadcast Cable
    Broadcast Internet
    Broadcast Network
    Broadcast Radio
    Broadcast Satellite
    Game Coverage
    Game Id
    Game Reference
    Game Status
    Game Title
    Home Team Alias
    Home Team Id
    Home Team Name
    Home Team Points
    Home Team Reference
    Home Team Rotation Number
    Home Team Seed Number
    Neutral Site
    Scheduled Date
    Scheduled Date and Time
    Track on Court
    League Info Data Points: League Alias League Id League Name
    Venue Info Data Points: Address
    Capacity
    City
    Country
    Description
    Name
    State
    Id
    Zip
    ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nba/trial/v4/en/games/2013/12/21/schedule.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/nba/trial/v4/en/games/2013/12/21/schedule.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.us/nba/trial/v4/en/games/2013/12/21/schedule.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. To access the Daily Schedule, use the following URL: https://api.sportradar.us/nba/`{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: v4). | | `language_code` | Optional 2 letter code for supported languages: en (English), ru (Russian), zh (simplified Chinese), and ja (Japanese). | | `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/basketball/schedule-v2.0.xsd Return to API map ## Daily Transfers Information for all transfers added or edited during the league defined day.
    Update Frequency: As Necessary
    Content Type: XML or JSON
    League Info Data Points: League Alias League Id League Name
    Player Info Data Points: First Name
    Full Name
    Jersey Number
    Last Name
    Player Id
    Position
    Primary Position
    Reference
    Transfers Description
    Transfers Effective Date
    Transfers End Date
    Transfers Id
    Transfers New Team Id
    Transfers New Team Market
    Transfers New Team Name
    Transfers New Team Reference
    Transfers Notes
    Transfers Old Team Id
    Transfers Old Team Market
    Transfers Old Team Name
    Transfers Old Team Reference
    Transfers Start Date
    Transfers Update Date
    ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nba/trial/v4/en/league/2013/12/21/transfers.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/nba/trial/v4/en/league/2013/12/21/transfers.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.us/nba/trial/v4/en/league/2013/12/21/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/nba/`{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: v4). | | `language_code` | Optional 2 letter code for supported languages: en (English), ru (Russian), zh (simplified Chinese), and ja (Japanese). | | `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/basketball/transfers-v2.0.xsd Return to API map ## Free Agents Information for all NBA free agents.
    Update Frequency: As Necessary
    Content Type: XML or JSON
    League Info Data Points: League Alias League Id League Name
    Player Info Data Points: Abbreviated Name
    Birth Date
    Birth Place
    College
    Experience
    First Name
    Full Name
    Height (in)
    Last Name
    Player Id
    Position
    Primary Position
    Reference
    Status
    Updated
    Weight (lbs)
    ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nba/trial/v4/en/league/free_agents.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", "/nba/trial/v4/en/league/free_agents.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/nba/trial/v4/en/league/free_agents.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. This endpoint retrieves Free Agents. https://api.sportradar.us/nba/`{access_level}`/`{version}`/`{language_code}`/league/free_agents.`{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: v4). | | `language_code` | Optional 2 letter code for supported languages: en (English), ru (Russian), zh (simplified Chinese), and ja (Japanese). | | `format` | xml or json. | | `your_api_key` | Your API key. | To retrieve the XML Schema Definition (.XSD) for the Free Agents, use the following URL. http://feed.elasticstats.com/schema/basketball/free-agents-v2.0.xsd Return to API map ## Game Boxscore Top-level team scores by quarter, along with full statistics for each team‘s leaders in points, rebounds, and assists.
    Update Frequency: As Necessary
    Content Type: XML or JSON
    Game Info Data Points: Away Team Id
    Game Clock
    Game Coverage
    Game Duration
    Game Id
    Game Quarter
    Game Status
    Game Title
    Home Team Id
    Neutral Site
    Scheduled Date And Time
    Track on Court
    Boxscore Data Points: Attendance
    Lead Changes
    Scoreboard - Away Team Game Score
    Scoreboard - Away Team Id
    Scoreboard - Away Team Market
    Scoreboard - Away Team Name
    Scoreboard - Away Team Quarter Score
    Scoreboard - Away Team Reference
    Scoreboard - Home Team Flag
    Scoreboard - Home Team Game Score
    Scoreboard - Home Team Id
    Scoreboard - Home Team Market
    Scoreboard - Home Team Name
    Scoreboard - Home Team Quarter Score
    Scoreboard - Home Team Reference
    Scoreboard - Quarter Number
    Scoreboard - Quarter Sequence
    Team Assists Leader - Player Full Name
    Team Assists Leader - Player Id
    Team Assists Leader - Player Reference
    Team Points Leader - Player Full Name
    Team Points Leader - Player Id
    Team Points Leader - Player Reference
    Team Rebounds Leader - Player Full Name
    Team Rebounds Leader - Player Id
    Team Rebounds Leader - Player Reference
    Times Tied
    Team Info Data Points: Id
    Market
    Name Reference
    Player Info Data Points: Full Name
    Jersey Number
    Player Id
    Position
    Primary Position
    Reference
    Player Game Statistics Data Points: Assists
    Assists To Turnover Ratio
    Blocked Attempts
    Blocked Shots
    Defensive Rebounds
    Double Double
    Effective Field Goal Percentage
    Efficiency
    Efficiency Game Score
    Field Goal Attempts
    Field Goal Percentage
    Field Goals Made
    Flagrant Fouls
    Fouls Drawn
    Free Throw Attempts
    Free Throw Percentage
    Free Throws Made
    Minutes Played
    Offensive Fouls
    Offensive Rebounds
    Personal Fouls
    Plus/Minus
    Points
    Points in the Paint
    Points in the Paint Attempts
    Points in the Paint Made
    Points in the Paint Percentage
    Points Off Turnovers
    Rebounds
    Second Chance Points
    Steals
    Technical Fouls
    Three Point Attempts
    Three Point Percentage
    Three Points Made
    Triple Double
    Turnovers
    Two Point Attempts
    Two Point Percentage
    Two Points Made
    ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nba/trial/v4/en/games/013dd2a7-fec4-4cc5-b819-f3cf16a1f820/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", "/nba/trial/v4/en/games/013dd2a7-fec4-4cc5-b819-f3cf16a1f820/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/nba/trial/v4/en/games/013dd2a7-fec4-4cc5-b819-f3cf16a1f820/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/nba/`{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: v4). | | `language_code` | Optional 2 letter code for supported languages: en (English), ru (Russian), zh (simplified Chinese), and ja (Japanese). | | `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/basketball/game-v3.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
    Game Info Data Points: Away Team Id
    Game Clock
    Game Coverage
    Game Duration
    Game Id
    Game Quarter
    Game Status
    Game Title
    Home Team Id
    Neutral Site
    Scheduled Date And Time
    Track on Court
    Boxscore Info Data Points: Attendance
    Game Officials - Assignment
    Game Officials - Experience
    Game Officials - First Name
    Game Officials - Full Name
    Game Officials - Id
    Game Officials - Last Name
    Game Officials - Number
    Lead Changes
    Lineups - Active For Game
    Lineups - Ejected
    Lineups - Fouled Out
    Lineups - Played
    Lineups - Started
    Scoreboard - Away Team Game Score
    Scoreboard - Away Team Id
    Scoreboard - Away Team Market
    Scoreboard - Away Team Name
    Scoreboard - Away Team Quarter Score
    Scoreboard - Away Team Reference
    Scoreboard - Home Team Flag
    Scoreboard - Home Team Game Score
    Scoreboard - Home Team Id
    Scoreboard - Home Team Market
    Scoreboard - Home Team Name
    Scoreboard - Home Team Quarter Score
    Scoreboard - Home Team Reference
    Scoreboard - Quarter Number
    Scoreboard - Quarter Sequence
    Times Tied
    Team Info Data Points: Coach - First Name
    Coach - Full Name
    Coach - Id
    Coach - Last Name
    Coach - Position
    Id
    Market
    Name
    Reference
    Player Info Data Points: First Name
    Full Name
    Injuries - Injury Comment
    Injuries - Injury Description
    Injuries - Injury
    Injuries - Injury Start Date
    Injuries - Injury Status
    Injuries - Update Date
    Jersey Number
    Last Name
    Player Id
    Position
    Primary Position
    Reference
    Player Period Statistics Data Points: Assists
    Assists To Turnover Ratio
    Blocked Attempts
    Blocked Shots
    Coach Ejections
    Coach Tech Fouls
    Defensive Rating
    Defensive Rebounds
    Defensive Rebounds Percentage
    Effective Field Goal Percentage
    Efficiency
    Efficiency Game Score
    Fast Break Attempts
    Fast Break Made
    Fast Break Percentage
    Fast Break Points
    Field Goal Attempts
    Field Goal Percentage
    Field Goals Made
    Flagrant Fouls
    Fouls Drawn
    Free Throw Attempts
    Free Throw Percentage
    Free Throws Made
    Minus
    Minutes Played
    Offensive Fouls
    Offensive Rating
    Offensive Rebounds
    Offensive Rebounds Percentage
    Personal Fouls
    Period Id
    Period Number
    Period Type
    Period Sequence
    Plus
    Plus/Minus
    Points
    Points in the Paint
    Points in the Paint Attempts
    Points in the Paint Made
    Points in the Paint Percentage
    Points Off Turnovers
    Rebounds
    Rebounds Percentage
    Second Chance Attempts
    Second Chance Made
    Second Chance Percentage
    Second Chance Points
    Steals
    Steals Percentage
    Technical Fouls
    Three Point Attempts
    Three Point Percentage
    Three Points Made
    True Shooting Attempts
    True Shooting Percentage
    Turnovers
    Turnovers Percentage
    Two Point Attempts
    Two Point Percentage
    Two Points Made
    Team Period Statistics Data Points: Assists
    Assists To Turnover Ratio
    Bench Points
    Biggest Lead
    Blocked Attempts
    Blocked Shots
    Coach Ejections
    Coach Technical Fouls
    Defensive Assists
    Defensive Points per Possession
    Defensive Rating
    Defensive Rebounds
    Effective Field Goal Percentage
    Efficiency
    Efficiency Game Score
    Ejections
    Fast Break Attempts
    Fast Break Made
    Fast Break Percentage
    Fast Break Points
    Field Goal Attempts
    Field Goal Percentage
    Field Goals Made
    Flagrant Fouls
    Fouls Drawn
    Free Throw Attempts
    Free Throw Percentage
    Free Throws Made
    Minutes Played
    Offensive Fouls
    Offensive Points per Possession
    Offensive Rating
    Offensive Rebounds
    Opponent Possessions
    Pace
    Period Id
    Period Number
    Period Sequence
    Period Type
    Personal Fouls
    Player Technical Fouls
    Plus/Minus
    Points
    Points Against
    Points in the Paint
    Points in the Paint Attempts
    Points in the Paint Percentage
    Points in the Paint Made
    Points off Turnovers
    Possessions
    Rebounds
    Second Chance Attempts
    Second Chance Made
    Second Chance Percentage
    Second Chance Points
    Steals
    Team Defensive Rebounds
    Team Fouls
    Team Offensive Rebounds
    Team Rebounds
    Team Technical Fouls
    Team Turnovers
    Technical Other
    Three Point Attempts
    Three Point Percentage
    Three Points Made
    Time Leading
    Total Fouls
    Total Rebounds
    Transition Defense
    Transition Offense
    True Shooting Attempts
    True Shooting Percentage
    Turnovers
    Two Point Attempts
    Two Point Percentage
    Two Points Made
    Player Game Statistics Data Points: Assists
    Assists To Turnover Ratio
    Blocked Attempts
    Blocked Shots
    Coach Ejections
    Coach Tech Fouls
    Defensive Rating
    Defensive Rebounds
    Defensive Rebounds Percentage
    Double Double
    Effective Field Goal Percentage
    Efficiency
    Efficiency Game Score
    Fast Break Attempts
    Fast Break Made
    Fast Break Percentage
    Fast Break Points
    Field Goal Attempts
    Field Goal Percentage
    Field Goals Made
    Flagrant Fouls
    Fouled Out
    Fouls Drawn
    Free Throw Attempts
    Free Throw Percentage
    Free Throws Made
    Games Played
    Games Started
    Minus
    Minutes Played
    Offensive Fouls
    Offensive Rating
    Offensive Rebounds
    Offensive Rebounds Percentage
    Personal Fouls
    Plus
    Plus/Minus
    Points
    Points in the Paint
    Points in the Paint Attempts
    Points in the Paint Made
    Points in the Paint Percentage
    Points Off Turnovers
    Rebounds
    Rebounds Percentage
    Second Chance Attempts
    Second Chance Made
    Second Chance Percentage
    Second Chance Points
    Steals
    Steals Percentage
    Technical Fouls
    Three Point Attempts
    Three Point Percentage
    Three Points Made
    Triple Double
    True Shooting Attempts
    True Shooting Percentage
    Turnovers
    Turnovers Percentage
    Two Point Attempts
    Two Point Percentage
    Two Points Made
    Team Game Statistics Data Points: Assists
    Assists To Turnover Ratio
    Bench Points
    Biggest Lead
    Blocked Attempts
    Blocked Shots
    Coach Ejections
    Coach Technical Fouls
    Defensive Assists
    Defensive Points per Possession
    Defensive Rating
    Defensive Rebounds
    Effective Field Goal Percentage
    Efficiency
    Efficiency Game Score
    Ejections
    Fast Break Attempts
    Fast Break Made
    Fast Break Percentage
    Fast Break Points
    Field Goal Attempts
    Field Goal Percentage
    Field Goals Made
    Flagrant Fouls
    Foul Outs
    Fouls Drawn
    Free Throw Attempts
    Free Throw Percentage
    Free Throws Made
    Minutes Played
    Most Unanswered - Opponent Score
    Most Unanswered - Own Score
    Most Unanswered - Points
    Offensive Fouls
    Offensive Points per Possession
    Offensive Rating
    Offensive Rebounds
    Opponent Possessions
    Pace
    Personal Fouls
    Player Technical Fouls
    Plus/Minus
    Points
    Points Against
    Points in the Paint
    Points in the Paint Attempts
    Points in the Paint Percentage
    Points in the Paint Made
    Points off Turnovers
    Possessions
    Rebounds
    Second Chance Attempts
    Second Chance Made
    Second Chance Percentage
    Second Chance Points
    Steals
    Team Defensive Rebounds
    Team Fouls
    Team Offensive Rebounds
    Team Rebounds
    Team Technical Fouls
    Team Turnovers
    Technical Other
    Three Point Attempts
    Three Point Percentage
    Three Points Made
    Time Leading
    Total Fouls
    Total Rebounds
    Transition Defense
    Transition Offense
    True Shooting Attempts
    True Shooting Percentage
    Turnovers
    Two Point Attempts
    Two Point Percentage
    Two Points Mad
    Venue Data Points: Address
    Capacity
    City
    Country
    Description
    Name
    State
    Venue Id
    Zip
    ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nba/trial/v4/en/games/013dd2a7-fec4-4cc5-b819-f3cf16a1f820/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", "/nba/trial/v4/en/games/013dd2a7-fec4-4cc5-b819-f3cf16a1f820/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/nba/trial/v4/en/games/013dd2a7-fec4-4cc5-b819-f3cf16a1f820/summary.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. This endpoint retrieves the Game Summary information for a specific game. https://api.sportradar.us/nba/`{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: v4). | | `language_code` | Optional 2 letter code for supported languages: en (English), ru (Russian), zh (simplified Chinese), and ja (Japanese). | | `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/basketball/game-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: League Alias League Id League Name
    Player Info Data Points: First Name
    Full Name
    Injuries - Injury Comment
    Injuries - Injury Description
    Injuries - Injury Id
    Injuries - Injury Start Date
    Injuries - Injury Status
    Injuries - Update Date
    Jersey Number
    Last Name
    Player Id
    Position
    Primary Position
    Reference
    Team Info Data Points: Id
    Market
    Name Reference
    ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nba/trial/v4/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", "/nba/trial/v4/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/nba/trial/v4/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/nba/`{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: v4). | | `language_code` | Optional 2 letter code for supported languages: en (English), ru (Russian), zh (simplified Chinese), and ja (Japanese). | | `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/basketball/injuries-v2.0.xsd Return to API map ## League Hierarchy League, conference, division, and team identification and association information.
    Update Frequency: As Necessary
    Content Type: XML or JSON
    League Info Data Points: Conference Alias
    Conference Id
    Conference Name
    Division Alias
    Division Id
    Division Name
    League Alias
    League Id
    League Name
    Team Info Data Points: Alias
    Id
    Market
    Name
    Reference
    Venue Info Data Points: Address
    Capacity
    City
    Country
    Description
    Name
    State
    Venue Id
    Zip
    ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nba/trial/v4/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", "/nba/trial/v4/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/nba/trial/v4/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/nba/`{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: v4). | | `language_code` | Optional 2 letter code for supported languages: en (English), ru (Russian), zh (simplified Chinese), and ja (Japanese). | | `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/basketball/nba/hierarchy-v2.0.xsd Return to API map ## League Leaders NBA leader information for various offensive and defensive categories including full player seasonal statistics for each player in each category.
    Update Frequency: As Necessary
    Content Type: XML or JSON
    League Info Data Points: Season Id Season Type Season Year
    League Leaders Data Points: Assists
    Assists Per Game
    Blocked Attempts
    Blocked Attempts Per Game
    Blocked Shots
    Blocked Shots Per Game
    Category Name
    Category Type
    Defensive Rebounds
    Defensive Rebounds Per Game
    Field Goal Attempts
    Field Goal Attempts Per Game
    Field Goal Percentage
    Field Goals Made
    Field Goals Made Per Game
    Foulouts
    Free Throw Attempts
    Free Throw Attempts Per Game
    Free Throw Percentage
    Free Throws Made
    Free Throws Made Per Game
    Leaders Alias
    Leaders Id
    Leaders Name
    Minutes Played
    Minutes Played Per Game
    Offensive Rebounds
    Offensive Rebounds Per Game
    Personal Fouls
    Personal Fouls Per Game
    Player Rank
    Points
    Points Per Game
    Rebounds
    Rebounds Per Game
    Stat Category
    Steals
    Steals Per Game
    Technical Fouls
    Three Point Attempts
    Three Point Attempts Per Game
    Three Point Percentage
    Three Points Made
    Three Points Made Per Game
    Tied Flag
    Turnovers
    Turnovers Per Game
    Two Point Attempts
    Two Point Attempts Per Game
    Two Point Percentage
    Two Points Made
    Two Points Made Per Game
    Player Info Data Points: First Name
    Full Name
    Jersey Number
    Last Name
    Player Id
    Position
    Primary Position
    Reference
    Player Season Statistics Data Points: Assists
    Assists Per Game
    Assists to Turnover Ratio
    Blocked Attempts
    Blocked Attempts Per Game
    Blocked Shots
    Blocked Shots Per Game
    Coach Ejections
    Coach Tech Fouls
    Defensive Rebounds
    Defensive Rebounds Per Game
    Double Doubles
    Effective Field Goal Percentage
    Efficiency
    Efficiency Per Game
    Ejections
    Fast Break Attempts
    Fast Break Attempts Per Game
    Fast Break Made
    Fast Break Made Per Game
    Fast Break Percentage
    Fast Break Points
    Fast Break Points Per Game
    Field Goal Attempts
    Field Goal Attempts Per Game
    Field Goal Percentage
    Field Goals Made
    Field Goals Made Per Game
    Flagrant Fouls
    Flagrant Fouls Per Game
    Fouled Out
    Fouls Drawn
    Fouls Drawn Per Game
    Free Throw Attempts
    Free Throw Attempts Per Game
    Free Throw Percentage
    Free Throws Made
    Free Throws Made Per Game
    Games Played
    Games Started
    Minus
    Minutes Played
    Minutes Played Per Game
    Offensive Fouls
    Offensive Fouls Per Game
    Offensive Rebounds
    Offensive Rebounds Per Game
    Personal Fouls
    Personal Fouls Per Game
    Plus
    Points
    Points in the Paint
    Points in the Paint Attempts
    Points in the Paint Attempts Per Game
    Points in the Paint Made
    Points in the Paint Made Per Game
    Points in the Paint Per Game
    Points in the Paint Percentage
    Points Off Turnovers
    Points Off Turnovers Per Game
    Points Per Game
    Rebounds
    Rebounds Per Game
    Second Chance Attempts
    Second Chance Attempts Per Game
    Second Chance Made
    Second Chance Made Per Game
    Second Chance Percentage
    Second Chance Points
    Second Chance Points Per Game
    Steals
    Steals Per Game
    Technical Fouls
    Three Point Attempts
    Three Point Attempts Per Game
    Three Point Percentage
    Three Points Made
    Three Points Made Per Game
    Triple Doubles
    True Shooting Attempts
    True Shooting Attempts Per Game
    True Shooting Percentage
    Turnovers
    Turnovers Per Game
    Two Point Attempts
    Two Point Attempts Per Game
    Two Point Percentage
    Two Points Made
    Two Points Made Per Game
    Team Data Points: Id Market Name
    ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nba/trial/v4/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", "/nba/trial/v4/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/nba/trial/v4/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. https://api.sportradar.us/nba/`{access_level}`/`{version}`/`{language_code}`/seasons/`{season_year}`/`{nba_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: v4). | | `language_code` | Optional 2 letter code for supported languages: en (English), ru (Russian), zh (simplified Chinese), and ja (Japanese). | | `season_year` | Year in 4 digit format (YYYY). | | `nba_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, use the following URL. http://feed.elasticstats.com/schema/basketball/statistics-v3.0.xsd Return to API map ## Play-By-Play Detailed, real-time information on every team possession and game event.
    Update Frequency: As Necessary
    Content Type: XML or JSON
    Game Info Data Points: Away Team Id
    Game Clock
    Game Coverage
    Game Id
    Game Quarter
    Game Status
    Game Title
    Home Team Id
    Neutral Site
    Scheduled Date And Time
    Track on Court
    Boxscore Info Data Points: Attendance Lead Changes Times Tied
    Play-By-Play Data Points: Attribution - Team Id
    Attribution - Team Market
    Attribution - Team Name
    Attribution - Team Reference
    Away Team Game Score
    Away Team Id
    Away Team Market
    Away Team Name
    Away Team Quarter Score
    Away Team Reference
    Basket Team is Attacking
    Event Attempt
    Event Clock
    Event Description
    Event Free Throw Type
    Event Id
    Event Location - X Coordinate
    Event Location - Y Coordinate
    Event Number
    Event Participants - Player Full Name
    Event Participants - Player Id
    Event Participants - Player Jersey Number
    Event Participants - Player Reference
    Event Participants - Team Id
    Event Participants - Team Market
    Event Participants - Team Name
    Event Participants - Team Reference
    Event Shot Type
    Event Shot Type Description
    Event Turnover Type
    Event Type
    Event Updated
    Fieldgoal - Made Flag
    Fieldgoal - Points
    Fieldgoal - Shot Type
    Fieldgoal - Shot Type Description
    Fieldgoal - Three Point Shot
    Freethrow - Made Flag
    Freethrow - Free Throw Type
    Home Team Game Score
    Home Team Id
    Home Team Market
    Home Team Name
    Home Team Quarter Score
    Home Team Reference
    On Court Participants - Player Full Name
    On Court Participants - Player Id
    On Court Participants - Player Jersey Number
    On Court Participants - Player Reference
    On Court Participants - Team Id
    On Court Participants - Team Market
    On Court Participants - Team Name
    On Court Participants - Team Reference
    Overtime Id
    Overtime Number
    Overtime Sequence
    Possession - Team Id
    Possession - Team Market
    Possession - Team Name
    Possession - Team Reference
    Quarter Id
    Quarter Number
    Quarter Sequence
    Rebound - Rebound Type
    Scoring Times Tied
    Scoring Lead Changes
    ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nba/trial/v4/en/games/013dd2a7-fec4-4cc5-b819-f3cf16a1f820/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", "/nba/trial/v4/en/games/013dd2a7-fec4-4cc5-b819-f3cf16a1f820/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/nba/trial/v4/en/games/013dd2a7-fec4-4cc5-b819-f3cf16a1f820/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/nba/`{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: v4). | | `language_code` | Optional 2 letter code for supported languages: en (English), ru (Russian), zh (simplified Chinese), and ja (Japanese). | | `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 Play-By-Play, use the following URL. http://feed.elasticstats.com/schema/basketball/pbp-v3.0.xsd Return to API map ## Player Profile Detailed player information including a current look at the player’s statistics for the current season.
    Update Frequency: As Necessary
    Content Type: XML or JSON
    League Info Data Points: League Alias
    League Id
    League Name
    Season Id
    Season Type
    Season Year
    Player Info Data Points: Abbreviated Name
    Birth Date
    Birth Place
    College
    Draft Pick
    Draft Round
    Draft Team
    Draft Year
    Experience
    First Name
    Full Name
    Height (in)
    Jersey Number
    Last Name
    Player Id
    Position
    Primary Position
    Reference
    Status
    Update Date
    Weight (lbs)
    Player Seasonal Statistics Data Points: Assists
    Assists Per Game
    Assists to Turnover Ratio
    Blocked Attempts
    Blocked Attempts Per Game
    Blocked Shots
    Blocked Shots Per Game
    Coach Ejections
    Coach Tech Fouls
    Defensive Rebounds
    Defensive Rebounds Per Game
    Double Doubles
    Effective Field Goal Percentage
    Efficiency
    Efficiency Per Game
    Ejections
    Fast Break Attempts
    Fast Break Attempts Per Game
    Fast Break Made
    Fast Break Made Per Game
    Fast Break Percentage
    Fast Break Points
    Fast Break Points Per Game
    Field Goal Attempts
    Field Goal Attempts Per Game
    Field Goal Percentage
    Field Goals Made
    Field Goals Made Per Game
    Flagrant Fouls
    Flagrant Fouls Per Game
    Fouled Out
    Fouls Drawn
    Fouls Drawn Per Game
    Free Throw Attempts
    Free Throw Attempts Per Game
    Free Throw Percentage
    Free Throws Made
    Free Throws Made Per Game
    Games Played
    Games Started
    Minus
    Minutes Played
    Minutes Played Per Game
    Offensive Fouls
    Offensive Fouls Per Game
    Offensive Rebounds
    Offensive Rebounds Per Game
    Personal Fouls
    Personal Fouls Per Game
    Plus
    Points
    Points in the Paint
    Points in the Paint Attempts
    Points in the Paint Attempts Per Game
    Points in the Paint Made
    Points in the Paint Made Per Game
    Points in the Paint Per Game
    Points in the Paint Percentage
    Points Off Turnovers
    Points Off Turnovers Per Game
    Points Per Game
    Rebounds
    Rebounds Per Game
    Second Chance Attempts
    Second Chance Attempts Per Game
    Second Chance Made
    Second Chance Made Per Game
    Second Chance Percentage
    Second Chance Points
    Second Chance Points Per Game
    Steals
    Steals Per Game
    Technical Fouls
    Three Point Attempts
    Three Point Attempts Per Game
    Three Point Percentage
    Three Points Made
    Three Points Made Per Game
    Triple Doubles
    True Shooting Attempts
    True Shooting Attempts Per Game
    True Shooting Percentage
    Turnovers
    Turnovers Per Game
    Two Point Attempts
    Two Point Attempts Per Game
    Two Point Percentage
    Two Points Made
    Two Points Made Per Game
    Team Info Data Points: Alias
    Id
    Market
    Name
    Reference
    ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nba/trial/v4/en/players/37fbc3a5-0d10-4e22-803b-baa2ea0cdb12/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", "/nba/trial/v4/en/players/37fbc3a5-0d10-4e22-803b-baa2ea0cdb12/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/nba/trial/v4/en/players/37fbc3a5-0d10-4e22-803b-baa2ea0cdb12/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/nba/`{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: v4). | | `language_code` | Optional 2 letter code for supported languages: en (English), ru (Russian), zh (simplified Chinese), and ja (Japanese). | | `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/basketball/profile-v3.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 Info Data Points: Conference Alias
    Conference Id
    Conference Name
    Division Alias
    Division Id
    Division Name
    League Alias
    League Id
    League Name
    Season Id
    Season Type
    Season Year
    Standings Info Data Points: Conference Rank Division Rank Playoff Status
    Team Data Points: Id
    Market
    Name Reference
    ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nba/trial/v4/en/seasons/2016/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", "/nba/trial/v4/en/seasons/2016/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/nba/trial/v4/en/seasons/2016/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/nba/`{access_level}`/`{version}`/`{language_code}`/seasons/`{season_year}`/`{nba_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: v4). | | `language_code` | Optional 2 letter code for supported languages: en (English), ru (Russian), zh (simplified Chinese), and ja (Japanese). | | `season_year` | Year in 4 digit format (YYYY). | | `nba_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 Rankings, use the following URL. http://feed.elasticstats.com/schema/basketball/nba/rankings-v3.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 Info Data Points: Away Team Alias
    Away Team Id
    Away Team Name
    Away Team Points
    Away Team Reference
    Away Team Rotation Number
    Broadcast Cable
    Broadcast Internet
    Broadcast Network
    Broadcast Radio
    Broadcast Satellite
    Home Team Alias
    Home Team Id
    Home Team Name
    Home Team Points
    Home Team Reference
    Home Team Rotation Number
    Game Coverage
    Game Id
    Game Reference
    Game Status
    Game Title
    Neutral Site
    Scheduled Date and Time
    Track on Court
    League Info Data Points: League Alias
    League Id
    League Name
    Season Id
    Season Type
    Season Year
    Venue Info Data Points: Address
    Capacity
    City
    Country
    Description
    Name
    State
    Venue Id
    Zip
    ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nba/trial/v4/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", "/nba/trial/v4/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/nba/trial/v4/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/nba/`{access_level}`/`{version}`/`{language_code}`/games/`{season_year}`/`{nba_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: v4). | | `language_code` | Optional 2 letter code for supported languages: en (English), ru (Russian), zh (simplified Chinese), and ja (Japanese). | | `season_year` | Year in 4 digit format (YYYY). | | `nba_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/basketball/schedule-v3.0.xsd Return to API map ## Seasonal Statistics (Season To Date) Detailed team and player statistics for the defined season.
    Update Frequency: As Necessary
    Content Type: XML or JSON
    League Info Data Points: Season Id Season Type Season Year
    Player Data Points: First Name
    Full Name
    Jersey Number
    Last Name
    Player Id
    Position
    Primary Position
    Reference
    Opponent Seasonal Statistics Data Points: Assists
    Assists Per Game
    Assists To Turnover Ratio
    Bench Points
    Bench Points Per Game
    Blocked Attempts
    Blocked Attempts Per Game
    Blocked Shots
    Blocked Shots Per Game
    Coach Ejections
    Coach Technical Fouls
    Defensive Assists
    Defensive Rebounds
    Defensive Rebounds Per Game
    Effective Field Goal Percentage
    Efficiency
    Ejections
    Fast Break Attempts
    Fast Break Attempts Per Game
    Fast Break Made
    Fast Break Made Per Game
    Fast Break Percentage
    Fast Break Points
    Fast Break Points Per Game
    Field Goal Attempts
    Field Goal Attempts Per Game
    Field Goal Percentage
    Field Goals Made
    Field Goals Made Per Game
    Flagrant Fouls
    Flagrant Fouls Per Game
    Foul Outs
    Fouls Drawn
    Fouls Drawn Per Game
    Free Throw Attempts
    Free Throw Attempts Per Game
    Free Throw Percentage
    Free Throws Made
    Free Throws Made Per Game
    Games Played
    Minutes Played
    Minutes Played Per Game
    Offensive Fouls
    Offensive Fouls Per Game
    Offensive Rebounds
    Offensive Rebounds Per Game
    Personal Fouls
    Personal Fouls Per Game
    Points
    Points Against
    Points in the Paint
    Points in the Paint Attempts
    Points in the Paint Attempts Per Game
    Points in the Paint Made
    Points in the Paint Made Per Game
    Points in the Paint Per Game
    Points in the Paint Percentage
    Points off Turnovers
    Points off Turnovers Per Game
    Points Per Game
    Rebounds
    Rebounds Per Game
    Second Chance Attempts
    Second Chance Attempts Per Game
    Second Chance Made
    Second Chance Made Per Game
    Second Chance Percentage
    Second Chance Points
    Second Chance Points Per Game
    Steals
    Steals Per Game
    Technical Fouls
    Technical Other
    Team Defensive Rebounds
    Team Fouls
    Team Offensive Rebounds
    Team Technical Fouls
    Three Point Attempts
    Three Point Attempts Per Game
    Three Point Percentage
    Three Points Made
    Three Points Made Per Game
    Total Fouls
    Total Rebounds
    True Shooting Attempts
    True Shooting Attempts Per Game
    True Shooting Percentage
    Turnovers
    Turnovers Per Game
    Two Point Attempts
    Two Point Attempts Per Game
    Two Point Percentage
    Two Points Made
    Two Points Made Per Game
    Player Seasonal Statistics Data Points: Assists
    Assists Per Game
    Assists to Turnover Ratio
    Blocked Attempts
    Blocked Attempts Per Game
    Blocked Shots
    Blocked Shots Per Game
    Coach Ejections
    Coach Tech Fouls
    Defensive Rebounds
    Defensive Rebounds Per Game
    Double Doubles
    Effective Field Goal Percentage
    Efficiency
    Efficiency Per Game
    Ejections
    Fast Break Attempts
    Fast Break Attempts Per Game
    Fast Break Made
    Fast Break Made Per Game
    Fast Break Percentage
    Fast Break Points
    Fast Break Points Per Game
    Field Goal Attempts
    Field Goal Attempts Per Game
    Field Goal Percentage
    Field Goals Made
    Field Goals Made Per Game
    Flagrant Fouls
    Flagrant Fouls Per Game
    Fouled Out
    Fouls Drawn
    Fouls Drawn Per Game
    Free Throw Attempts
    Free Throw Attempts Per Game
    Free Throw Percentage
    Free Throws Made
    Free Throws Made Per Game
    Games Played
    Games Started
    Minus
    Minutes Played
    Minutes Played Per Game
    Offensive Fouls
    Offensive Fouls Per Game
    Offensive Rebounds
    Offensive Rebounds Per Game
    Personal Fouls
    Personal Fouls Per Game
    Plus
    Points
    Points in the Paint
    Points in the Paint Attempts
    Points in the Paint Attempts Per Game
    Points in the Paint Made
    Points in the Paint Made Per Game
    Points in the Paint Per Game
    Points in the Paint Percentage
    Points Off Turnovers
    Points Off Turnovers Per Game
    Points Per Game
    Rebounds
    Rebounds Per Game
    Second Chance Attempts
    Second Chance Attempts Per Game
    Second Chance Made
    Second Chance Made Per Game
    Second Chance Percentage
    Second Chance Points
    Second Chance Points Per Game
    Steals
    Steals Per Game
    Technical Fouls
    Three Point Attempts
    Three Point Attempts Per Game
    Three Point Percentage
    Three Points Made
    Three Points Made Per Game
    Triple Doubles
    True Shooting Attempts
    True Shooting Attempts Per Game
    True Shooting Percentage
    Turnovers
    Turnovers Per Game
    Two Point Attempts
    Two Point Attempts Per Game
    Two Point Percentage
    Two Points Made
    Two Points Made Per Game
    Team Seasonal Statistics Data Points: Assists
    Assists Per Game
    Assists To Turnover Ratio
    Bench Points
    Bench Points Per Game
    Blocked Attempts
    Blocked Attempts Per Game
    Blocked Shots
    Blocked Shots Per Game
    Coach Ejections
    Coach Technical Fouls
    Defensive Assists
    Defensive Rebounds
    Defensive Rebounds Per Game
    Effective Field Goal Percentage
    Efficiency
    Ejections
    Fast Break Attempts
    Fast Break Attempts Per Game
    Fast Break Made
    Fast Break Made Per Game
    Fast Break Percentage
    Fast Break Points
    Fast Break Points Per Game
    Field Goal Attempts
    Field Goal Attempts Per Game
    Field Goal Percentage
    Field Goals Made
    Field Goals Made Per Game
    Flagrant Fouls
    Flagrant Fouls Per Game
    Foul Outs
    Fouls Drawn
    Fouls Drawn Per Game
    Free Throw Attempts
    Free Throw Attempts Per Game
    Free Throw Percentage
    Free Throws Made
    Free Throws Made Per Game
    Games Played
    Minutes Played
    Minutes Played Per Game
    Offensive Fouls
    Offensive Fouls Per Game
    Offensive Rebounds
    Offensive Rebounds Per Game
    Personal Fouls
    Personal Fouls Per Game
    Points
    Points Against
    Points in the Paint
    Points in the Paint Attempts
    Points in the Paint Attempts Per Game
    Points in the Paint Made
    Points in the Paint Made Per Game
    Points in the Paint Per Game
    Points in the Paint Percentage
    Points off Turnovers
    Points off Turnovers Per Game
    Points Per Game
    Rebounds
    Rebounds Per Game
    Second Chance Attempts
    Second Chance Attempts Per Game
    Second Chance Made
    Second Chance Made Per Game
    Second Chance Percentage
    Second Chance Points
    Second Chance Points Per Game
    Steals
    Steals Per Game
    Technical Fouls
    Technical Other
    Team Defensive Rebounds
    Team Fouls
    Team Offensive Rebounds
    Team Technical Fouls
    Three Point Attempts
    Three Point Attempts Per Game
    Three Point Percentage
    Three Points Made
    Three Points Made Per Game
    Total Fouls
    Total Rebounds
    True Shooting Attempts
    True Shooting Attempts Per Game
    True Shooting Percentage
    Turnovers
    Turnovers Per Game
    Two Point Attempts
    Two Point Attempts Per Game
    Two Point Percentage
    Two Points Made
    Two Points Made Per Game
    Team Info Data Points: Id Market Name
    ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nba/trial/v4/en/seasons/2013/REG/teams/583eca2f-fb46-11e1-82cb-f4ce4684ea4c/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", "/nba/trial/v4/en/seasons/2013/REG/teams/583eca2f-fb46-11e1-82cb-f4ce4684ea4c/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/nba/trial/v4/en/seasons/2013/REG/teams/583eca2f-fb46-11e1-82cb-f4ce4684ea4c/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/nba/`{access_level}`/`{version}`/`{language_code}`/seasons/`{season_year}`/`{nba_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: v4). | | `language_code` | Optional 2 letter code for supported languages: en (English), ru (Russian), zh (simplified Chinese), and ja (Japanese). | | `season_year` | Year in 4 digit format (YYYY). | | `nba_season` | Preseason (PRE), 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/basketball/statistics-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 Info Data Points: Away Team Alias
    Away Team Id
    Away Team Name
    Away Team Points
    Away Team Reference
    Away Team Rotation Number
    Away Team Seed Number
    Broadcast - Cable
    Broadcast - Internet
    Broadcast - Network
    Broadcast - Radio
    Broadcast - Satellite
    Game Coverage
    Game Id
    Game Reference
    Game Status
    Game Title
    Home Team Alias
    Home Team Id
    Home Team Name
    Home Team Points
    Home Team Reference
    Home Team Rotation Number
    Home Team Seed Number
    Neutral Site
    Scheduled Date and Time
    Track on Court
    League Info Data Points: League Alias
    League Id
    League Name
    Season Id
    Season Type
    Season Year
    Series Info Data Points: Participant - Name
    Participant - Record
    Participant - Seed
    Round
    Series Id
    Series Title
    Start Date
    Status
    Team Info Data Points: Alias
    Id
    Market Name
    Venue Info Data Points: Address
    Capacity
    City
    Country
    Description
    Name
    State
    Venue Id
    Zip
    ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nba/trial/v4/en/series/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", "/nba/trial/v4/en/series/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/nba/trial/v4/en/series/2016/REG/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/nba/`{access_level}`/`{version}`/`{language_code}`/series/`{season_year}`/`{nba_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: v4). | | `language_code` | Optional 2 letter code for supported languages: en (English), ru (Russian), zh (simplified Chinese), and ja (Japanese). | | `season_year` | Year in 4 digit format (YYYY). | | `nba_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/basketball/schedule-v3.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
    Series Info Data Points: Series Id Series Title Series Status
    Player Info Data Points: First Name
    Full Name
    Jersey Number
    Last Name
    Player Id
    Position
    Primary Position
    Reference
    Opponent Seasonal Statistics Data Points: Assists
    Assists Per Game
    Assists To Turnover Ratio
    Bench Points
    Bench Points Per Game
    Blocked Attempts
    Blocked Attempts Per Game
    Blocked Shots
    Blocked Shots Per Game
    Coach Ejections
    Coach Technical Fouls
    Defensive Assists
    Defensive Rebounds
    Defensive Rebounds Per Game
    Effective Field Goal Percentage
    Efficiency
    Ejections
    Fast Break Attempts
    Fast Break Attempts Per Game
    Fast Break Made
    Fast Break Made Per Game
    Fast Break Percentage
    Fast Break Points
    Fast Break Points Per Game
    Field Goal Attempts
    Field Goal Attempts Per Game
    Field Goal Percentage
    Field Goals Made
    Field Goals Made Per Game
    Flagrant Fouls
    Flagrant Fouls Per Game
    Foul Outs
    Fouls Drawn
    Fouls Drawn Per Game
    Free Throw Attempts
    Free Throw Attempts Per Game
    Free Throw Percentage
    Free Throws Made
    Free Throws Made Per Game
    Games Played
    Minutes Played
    Minutes Played Per Game
    Offensive Fouls
    Offensive Fouls Per Game
    Offensive Rebounds
    Offensive Rebounds Per Game
    Personal Fouls
    Personal Fouls Per Game
    Points
    Points Against
    Points in the Paint
    Points in the Paint Attempts
    Points in the Paint Attempts Per Game
    Points in the Paint Made
    Points in the Paint Made Per Game
    Points in the Paint Per Game
    Points in the Paint Percentage
    Points off Turnovers
    Points off Turnovers Per Game
    Points Per Game
    Rebounds
    Rebounds Per Game
    Second Chance Attempts
    Second Chance Attempts Per Game
    Second Chance Made
    Second Chance Made Per Game
    Second Chance Percentage
    Second Chance Points
    Second Chance Points Per Game
    Steals
    Steals Per Game
    Technical Fouls
    Technical Other
    Team Defensive Rebounds
    Team Fouls
    Team Offensive Rebounds
    Team Technical Fouls
    Three Point Attempts
    Three Point Attempts Per Game
    Three Point Percentage
    Three Points Made
    Three Points Made Per Game
    Total Fouls
    Total Rebounds
    True Shooting Attempts
    True Shooting Attempts Per Game
    True Shooting Percentage
    Turnovers
    Turnovers Per Game
    Two Point Attempts
    Two Point Attempts Per Game
    Two Point Percentage
    Two Points Made
    Two Points Made Per Game
    Player Seasonal Statistics Data Points: Assists
    Assists Per Game
    Assists to Turnover Ratio
    Blocked Attempts
    Blocked Attempts Per Game
    Blocked Shots
    Blocked Shots Per Game
    Coach Ejections
    Coach Tech Fouls
    Defensive Rebounds
    Defensive Rebounds Per Game
    Double Doubles
    Effective Field Goal Percentage
    Efficiency
    Efficiency Per Game
    Ejections
    Fast Break Attempts
    Fast Break Attempts Per Game
    Fast Break Made
    Fast Break Made Per Game
    Fast Break Percentage
    Fast Break Points
    Fast Break Points Per Game
    Field Goal Attempts
    Field Goal Attempts Per Game
    Field Goal Percentage
    Field Goals Made
    Field Goals Made Per Game
    Flagrant Fouls
    Flagrant Fouls Per Game
    Fouled Out
    Fouls Drawn
    Fouls Drawn Per Game
    Free Throw Attempts
    Free Throw Attempts Per Game
    Free Throw Percentage
    Free Throws Made
    Free Throws Made Per Game
    Games Played
    Games Started
    Minus
    Minutes Played
    Minutes Played Per Game
    Offensive Fouls
    Offensive Fouls Per Game
    Offensive Rebounds
    Offensive Rebounds Per Game
    Personal Fouls
    Personal Fouls Per Game
    Plus
    Points
    Points in the Paint
    Points in the Paint Attempts
    Points in the Paint Attempts Per Game
    Points in the Paint Made
    Points in the Paint Made Per Game
    Points in the Paint Per Game
    Points in the Paint Percentage
    Points Off Turnovers
    Points Off Turnovers Per Game
    Points Per Game
    Rebounds
    Rebounds Per Game
    Second Chance Attempts
    Second Chance Attempts Per Game
    Second Chance Made
    Second Chance Made Per Game
    Second Chance Percentage
    Second Chance Points
    Second Chance Points Per Game
    Steals
    Steals Per Game
    Technical Fouls
    Three Point Attempts
    Three Point Attempts Per Game
    Three Point Percentage
    Three Points Made
    Three Points Made Per Game
    Triple Doubles
    True Shooting Attempts
    True Shooting Attempts Per Game
    True Shooting Percentage
    Turnovers
    Turnovers Per Game
    Two Point Attempts
    Two Point Attempts Per Game
    Two Point Percentage
    Two Points Made
    Two Points Made Per Game
    Team Seasonal Statistics Data Points: Assists
    Assists Per Game
    Assists To Turnover Ratio
    Bench Points
    Bench Points Per Game
    Blocked Attempts
    Blocked Attempts Per Game
    Blocked Shots
    Blocked Shots Per Game
    Coach Ejections
    Coach Technical Fouls
    Defensive Assists
    Defensive Rebounds
    Defensive Rebounds Per Game
    Effective Field Goal Percentage
    Efficiency
    Ejections
    Fast Break Attempts
    Fast Break Attempts Per Game
    Fast Break Made
    Fast Break Made Per Game
    Fast Break Percentage
    Fast Break Points
    Fast Break Points Per Game
    Field Goal Attempts
    Field Goal Attempts Per Game
    Field Goal Percentage
    Field Goals Made
    Field Goals Made Per Game
    Flagrant Fouls
    Flagrant Fouls Per Game
    Foul Outs
    Fouls Drawn
    Fouls Drawn Per Game
    Free Throw Attempts
    Free Throw Attempts Per Game
    Free Throw Percentage
    Free Throws Made
    Free Throws Made Per Game
    Games Played
    Minutes Played
    Minutes Played Per Game
    Offensive Fouls
    Offensive Fouls Per Game
    Offensive Rebounds
    Offensive Rebounds Per Game
    Personal Fouls
    Personal Fouls Per Game
    Points
    Points Against
    Points in the Paint
    Points in the Paint Attempts
    Points in the Paint Attempts Per Game
    Points in the Paint Made
    Points in the Paint Made Per Game
    Points in the Paint Per Game
    Points in the Paint Percentage
    Points off Turnovers
    Points off Turnovers Per Game
    Points Per Game
    Rebounds
    Rebounds Per Game
    Second Chance Attempts
    Second Chance Attempts Per Game
    Second Chance Made
    Second Chance Made Per Game
    Second Chance Percentage
    Second Chance Points
    Second Chance Points Per Game
    Steals
    Steals Per Game
    Technical Fouls
    Technical Other
    Team Defensive Rebounds
    Team Fouls
    Team Offensive Rebounds
    Team Technical Fouls
    Three Point Attempts
    Three Point Attempts Per Game
    Three Point Percentage
    Three Points Made
    Three Points Made Per Game
    Total Fouls
    Total Rebounds
    True Shooting Attempts
    True Shooting Attempts Per Game
    True Shooting Percentage
    Turnovers
    Turnovers Per Game
    Two Point Attempts
    Two Point Attempts Per Game
    Two Point Percentage
    Two Points Made
    Two Points Made Per Game
    Team Data Points: Id Market Name
    ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nba/trial/v4/en/series/dc528f4c-c8c8-4067-9981-bb64ba1a3e2f/teams/583eccfa-fb46-11e1-82cb-f4ce4684ea4c/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", "/nba/trial/v4/en/series/dc528f4c-c8c8-4067-9981-bb64ba1a3e2f/teams/583eccfa-fb46-11e1-82cb-f4ce4684ea4c/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/nba/trial/v4/en/series/dc528f4c-c8c8-4067-9981-bb64ba1a3e2f/teams/583eccfa-fb46-11e1-82cb-f4ce4684ea4c/statistics.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. This endpoint retrieves the Series Statistics for a given team. https://api.sportradar.us/nba/`{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: v4). | | `language_code` | Optional 2 letter code for supported languages: en (English), ru (Russian), zh (simplified Chinese), and ja (Japanese). | | `series id` | ID of a given series. | | `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 Series Statistics, use the following URL. http://feed.elasticstats.com/schema/basketball/statistics-v3.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 Info Data Points: Conference Alias
    Conference Id
    Conference Name
    Division Alias
    Division Id
    Division Name
    League Alias
    League Id
    League Name
    Season Id
    Season Type
    Season Year
    Standings Data Points: Conference Losses
    Conference Winning Pct.
    Conference Wins
    Division Losses
    Division Winning Pct.
    Division Wins
    Games Behind - Conference
    Games Behind - Division
    Games Behind - League
    Games Decided by 10 pts or More - Losses
    Games Decided by 10 pts or More - Winning Pct.
    Games Decided by 10 pts or More - Wins
    Games Decided by 3 pts or Less - Losses
    Games Decided by 3 pts or Less - Winning Pct.
    Games Decided by 3 pts or Less - Wins
    Home Losses
    Home Winning Pct.
    Home Wins
    Last 10 Games - Losses
    Last 10 Games - Winning Pct.
    Last 10 Games - Wins
    Last 10 Home Games - Losses
    Last 10 Home Games - Winning Pct.
    Last 10 Home Games - Wins
    Last 10 Road Games - Losses
    Last 10 Road Games - Winning Pct.
    Last 10 Road Games - Wins
    Overall - Losses
    Overall - Point Differential
    Overall - Points Against
    Overall - Points For
    Overall - Winning Percentage
    Overall - Wins
    Overtime Losses
    Overtime Winning Percentage
    Overtime Wins
    Road Losses
    Road Winning Percentage
    Road Wins
    Streak
    VS. Atlantic Div. - Losses
    VS. Atlantic Div. - Winning Pct.
    VS. Atlantic Div. - Wins
    VS. Central Div. - Losses
    VS. Central Div. - Winning Pct.
    VS. Central Div. - Wins
    VS. Northwest Div. - Losses
    VS. Northwest Div. - Winning Pct.
    VS. Northwest Div. - Wins
    VS. Pacific Div. - Losses
    VS. Pacific Div. - Winning Pct.
    VS. Pacific Div. - Wins
    VS. Southeast Div. - Losses
    VS. Southeast Div. - Winning Pct.
    VS. Southeast Div. - Wins
    VS. Southwest Div. - Losses
    VS. Southwest Div. - Winning Pct.
    VS. Southwest Div. - Wins
    VS. Teams Above 500 - Losses
    VS. Teams Above 500 - Winning Pct.
    VS. Teams Above 500 - Wins
    VS. Teams Below 500 - Losses
    VS. Teams Below 500 - Winning Pct.
    VS. Teams Below 500 - Wins
    Team Data Points: Id
    Market
    Name Reference
    ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nba/trial/v4/en/seasons/2013/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", "/nba/trial/v4/en/seasons/2013/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/nba/trial/v4/en/seasons/2013/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/nba/`{access_level}`/`{version}`/`{language_code}`/seasons/`{season_year}`/`{nba_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: v4). | | `language_code` | Optional 2 letter code for supported languages: en (English), ru (Russian), zh (simplified Chinese), and ja (Japanese). | | `season_year` | Year in 4 digit format (YYYY). | | `nba_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/basketball/nba/standings-v3.0.xsd Return to API map ## Team Profile (Rosters) Detailed team information including league affiliation information and player roster information.
    Update Frequency: As Necessary
    Content Type: XML or JSON
    League Info Data Points: Conference Alias
    Conference Id
    Conference Name
    Division Alias
    Division Id
    Division Name
    League Alias
    League Id
    League Name
    Player Info Data Points: Abbreviated Name
    Birth Date
    Birth Place
    College
    Draft Pick
    Draft Round
    Draft Team
    Draft Year
    Experience
    First Name
    Full Name
    Height (in)
    Injuries - Injury Comment
    Injuries - Injury Description
    Injuries - Injury Id
    Injuries - Injury Start Date
    Injuries - Injury Status
    Injuries - Update Date
    Jersey Number
    Last Name
    Player Id
    Position
    Primary Position
    Reference
    Status
    Updated
    Weight (lbs)
    Team Info Data Points: Alias
    Coach - Experience (Years)
    Coach - First Name
    Coach - Full Name
    Coach - Id
    Coach - Last Name
    Coach - Position
    Id
    Market
    Name
    Reference
    Year Founded
    Venue Info Data Points: Address
    Capacity
    City
    Country
    Description
    Name
    State
    Venue Id
    Zip
    ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/nba/trial/v4/en/teams/583eca2f-fb46-11e1-82cb-f4ce4684ea4c/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", "/nba/trial/v4/en/teams/583eca2f-fb46-11e1-82cb-f4ce4684ea4c/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/nba/trial/v4/en/teams/583eca2f-fb46-11e1-82cb-f4ce4684ea4c/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/nba/`{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: v4). | | `language_code` | Optional 2 letter code for supported languages: en (English), ru (Russian), zh (simplified Chinese), and ja (Japanese). | | `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/basketball/team-v2.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, than all data for the feed is displayed (i.e. all games, events, or statistics). For your applications to accept data from our Push feeds, ensure that your application can: * Can follow a HTTP redirect or use the location provided in the feeds header within one minute of your initial request. * Can accept HTTP data transfer encoded as chunked. Our Push service does not provide a "stateful session", there is no memory of what data has been sent previously. If you are disconnected from the Push session, you can use the RESTful API to catch up or recover from the disconnection. Syntax for using our Push feeds and examples of the JSON payloads can be found below. ## Push - Clock ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("http://api.sportradar.us/nba/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", "/nba/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/nba/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/nba/`{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) or Trial (trial). | | `language_code` | Optional code for supported languages: en (English) or translations (Any other language translations. See optional query string parameters for locale.) | | `your_api_key` | Your API key. | ### Optional Query String Parameters >Example including optional query string parameters: ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("http://api.sportradar.us/nba/trial/stream/en/clock/subscribe?api_key={your_api_key}&status=inprogress&match=sd:match:76b2e680-7da7-461f-95ad-e7c34dbc4c56") 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", "/nba/trial/stream/en/clock/subscribe?api_key={your_api_key}&status=inprogress&match=sd:match:76b2e680-7da7-461f-95ad-e7c34dbc4c56") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -L GET 'api.sportradar.us/nba/trial/stream/en/clock/subscribe?api_key={your_api_key}&status=inprogress&match=sd:match:76b2e680-7da7-461f-95ad-e7c34dbc4c56' ``` >Example including query string parameters for translations: ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("http://api.sportradar.us/nba/trial/stream/translations/clock/subscribe?api_key={your_api_key}&locale=zh") 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", "/nba/trial/stream/translations/clock/subscribe?api_key={your_api_key}&locale=zh") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -L GET 'api.sportradar.us/nba/trial/stream/translations/clock/subscribe?api_key={your_api_key}&locale=zh' ``` 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: sd:match:76b2e680-7da7-461f-95ad-e7c34dbc4c56 | | `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/nba/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", "/nba/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/nba/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/nba/`{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) or Trial (trial). | | `language_code` | Optional code for supported languages: en (English) or translations (Any other language translations. See optional query string parameters for locale.) | | `your_api_key` | Your API key. | ### Optional Query String Parameters >Example including optional query string parameters: ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("http://api.sportradar.us/nba/trial/stream/en/events/subscribe?api_key={your_api_key}&status=inprogress&match=sd:match:76b2e680-7da7-461f-95ad-e7c34dbc4c56") 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", "/nba/trial/stream/en/events/subscribe?api_key={your_api_key}&status=inprogress&match=sd:match:76b2e680-7da7-461f-95ad-e7c34dbc4c56") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -L GET 'api.sportradar.us/nba/trial/stream/en/events/subscribe?api_key={your_api_key}&status=inprogress&match=sd:match:76b2e680-7da7-461f-95ad-e7c34dbc4c56' ``` >Example including query string parameters for translations: ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("http://api.sportradar.us/nba/trial/stream/translations/events/subscribe?api_key={your_api_key}&locale=zh") 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", "/nba/trial/stream/translations/events/subscribe?api_key={your_api_key}&locale=zh") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -L GET 'api.sportradar.us/nba/trial/stream/translations/events/subscribe?api_key={your_api_key}&locale=zh' ``` 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: sd:match:76b2e680-7da7-461f-95ad-e7c34dbc4c56 | | `players` | Player id expressed as: sd:player:{player_id}.
    Example: sd:player:c1ff3e58-266f-4183-9fa1-d7c914cf4886 | | `status` | Status type expressed as: inprogress or created.
    Example: status=inprogress | | `team` | Team id expressed as: sd:team:{team_id}.
    Example: sd:team:583eca2f-fb46-11e1-82cb-f4ce4684ea4c | Return to API map ## Push - Statistics ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("http://api.sportradar.us/nba/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", "/nba/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/nba/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/nba/`{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) or Trial (trial). | | `language_code` | Optional code for supported languages: en (English) or translations (Any other language translations. See optional query string parameters for locale.) | | `your_api_key` | Your API key. | ### Optional Query String Parameters >Example including optional query string parameters: ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("http://api.sportradar.us/nba/trial/stream/en/statistics/subscribe?api_key={your_api_key}&status=inprogress&match=sd:match:0f4a0ce6-9abb-44ac-867f-75cc2154bb40") 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", "/nba/trial/stream/en/statistics/subscribe?api_key={your_api_key}&status=inprogress&match=sd:match:0f4a0ce6-9abb-44ac-867f-75cc2154bb40") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -L GET 'api.sportradar.us/nba/trial/stream/en/statistics/subscribe?api_key={your_api_key}&status=inprogress&match=sd:match:0f4a0ce6-9abb-44ac-867f-75cc2154bb40' ``` >Example including query string parameters for translations: ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("http://api.sportradar.us/nba/trial/stream/translations/statistics/subscribe?api_key={your_api_key}&locale=zh") 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", "/nba/trial/stream/translations/statistics/subscribe?api_key={your_api_key}&locale=zh") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -L GET 'api.sportradar.us/nba/trial/stream/translations/statistics/subscribe?api_key={your_api_key}&locale=zh' ``` 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: sd:match:0f4a0ce6-9abb-44ac-867f-75cc2154bb40 | | `player` | Player id expressed as: sd:player:{player_id}.
    Example: sd:player:92ec1ed2-95f7-45da-a923-71fd541d6cdb | | `stats_type` | Stat type expressed as {stats_type}. Example: stats_type=player | | `team` | Team id expressed as: sd:team:{team_id}.
    Example: sd:team:583eca2f-fb46-11e1-82cb-f4ce4684ea4c | | `status` | Status type expressed as: inprogress or created.
    Example: status=inprogress | 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 can I 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.
    • inprogress – The game is in progress.
    • halftime - The game is currently at halftime.
    • 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.
    • 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.
    • 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 series statuses can I expect to see in the feeds and what are 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 player positions can I expect to see in the feeds?

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

    • NA
    • C
    • C-F
    • F
    • F-C
    • F-G
    • G
    • G-F

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

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

    • NA
    • C
    • PF
    • PG
    • SF
    • SG

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

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

    • ACT – The player is on the team’s active roster
    • SUS – The player is suspended
    • IR – The player is on injured reserve
    • D-LEAGUE – The player is on the team’s development league roster
    • NWT – The player is no longer with the team
    • FA – Free Agent
    • RET – Retired

    Q: What player injury statuses can I 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 shot type descriptions can I expect to see in the feeds?

    A: Here is a list of the valid shot types with the descriptions you can expect to see for each shot type.

    Jump Shot (This is the only shot type for 3-point attempts)

    • driving
    • pullup
    • step back
    • fadeaway
    • putback
    • floating
    • finger roll
    • turnaround
    • reverse
    • alley-oop

    Layup

    • driving
    • putback
    • reverse
    • alley-oop
    • finger roll

    Dunk

    • driving
    • putback
    • reverse
    • alley-oop

    Tip Shot

    Hook

    • driving
    • turnaround

    Q: What are the valid turnover type descriptions I can expect to see in the feeds?

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

    • Traveling
    • Bad Pass
    • Lost Ball
    • Carrying
    • Palming
    • Out of Bounds
      • Lost Ball
      • Step
      • Bad Pass
    • Double Dribble
    • Offensive Goaltending
    • 3-second violation
    • 5-second violation
    • 8-second violation
    • 10-second violation
    • Back Court Violation
    • Shot Clock Violation
    • Lane Violation
    • Illegal Assist
    • Illegal Screen
    • Turnover
    • Too Many Players
    • Excess Timeout
    • Basket from Below
    • Swinging Elbows
    • Offensive Foul
    • Punched Ball
    • Opposite Basket
    • Jump Ball Violation
    • Inbound
    • Discontinue Dribble
    • 5-second Violation Inbound
    • Kicked ball Violation
    • 5-second Violation Back to the Basket

    Q: What are the valid stoppage reasons I can expect to see in the feeds?

    A: Here is a list of the valid stoppage reasons you can expect to see.

    • Out of Bounds
    • Equipment Malfunction
    • Blood Rule
    • Court Cleanup
    • Injury
    • Other

    Q: What are the valid jump ball reasons I can expect to see in the feeds?

    A: Here is a list of the valid jump ball reasons you can expect to see.

    • Lodged Ball
    • Held Ball
    • Double Violation
    • Unclear Pass
    • Double Foul

    Q: What are the valid foul type descriptions I can expect to see in the feeds?

    A: Here is a list of the valid foul type descriptions you can expect to see.

    • Charge
    • Off the Ball
    • Block
    • Take
    • Double
    • Shooting
    • Clear Path
    • Loose Ball
    • Blocking
    • Player Control
    • Shooting block
    • Elbowing
    • Punching
    • Flagrant One
    • Flagrant Two
    • Away from Play
    • Unsportsmanlike Conduct
    • Rim Hanging
    • Delay of Game
    • Taunting
    • Indirect
    • Excess Timeout
    • Too Many Players
    • Inbound
    • Defensive Three Second
    • Flopping

    Q: What are the valid free throw types I can expect to see in the feeds?

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

    • Regular
    • Technical
    • Flagrant
    • Clear Path

    Q: What ejection types can I expect to see in the feeds?

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

    • Technical
    • Second Technical
    • Second Flagrant Type 1
    • Flagrant Type 2
    • Other

    Q: What game statistics are tracked real-time versus entered post game?

    A: Here is a list of the game statistics that is tracked real-time. Please note, all stats are unofficial until the game is moved to the status of “Closed”.

    • Assists
    • Assist to Turnover Ratio
    • Blocked Attempts
    • Blocked Shots
    • Defensive Rebounds
    • Field Goal Attempts
    • Field Goal Percentage
    • Field Goals Made
    • Flagrant Fouls
    • Free Throw Attempts
    • Free Throw Percentage
    • Free Throws Made
    • Minutes Played
    • Offensive Rebounds
    • Personal Fouls
    • Points
    • Rebounds
    • Steals
    • Technical Fouls
    • Three Point Attempts
    • Three Point Percentage
    • Three Points Made
    • Turnovers
    • Two Point Attempts
    • Two Point Percentage
    • Two Points Made

    Here is a list of the game statistics that entered post game.

    • Fast Break Points
    • Plus/Minus
    • Points in the Paint
    • Points Off Turnovers
    • Second Chance Points

    Q: Are there cases when not all game data is available?

    A: Yes, in cases when Sportradar is unable to receive data from the venue, Sportradar's in-house operators will take over coverage of the game. In these cases, the following data points will not be available or will not update during the game.

    • Defensive Points per Possession
    • Defensive Rating
    • Defensive Rebounds Percentage
    • Fast Break Attempts
    • Fast Break Made
    • Fast Break Percentage
    • Minus
    • Offensive Points per Possession
    • Offensive Rating
    • Offensive Rebounds Percentage
    • Opponent Possessions
    • Plus
    • Rebounds Percentage
    • Second Chance Attempts
    • Second Chance Made
    • Second Chance Percentage
    • Team Defensive Rebounds
    • Team Offensive Rebounds
    • Time Spent Leading
    • Turnovers Percentage

    After the game, when on-venue data can be received again, these fields will be updated.

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

    A: The court we use is 1128 by 600. The scale is in inches. Here is a layout of the court:

    0 X 1128
    Y
    600

    Q: What x/y vertices define action areas in the x/y coordinate graph?

    A: A list of areas is included below. Note that these vertices are for the left side of the court. For the right side, we use the following calculation, where length=1128 and width=600:

    • right-court-point = (length - x, width - y)
    • left_basket=[63, 300]
    • right_basket=[1065, 300]

    Areas:

    • underbasket: [ 48, 252 ], [ 77, 258 ], [ 111, 300 ], [ 77, 342 ], [ 48, 348 ]
    • inthepaint: [ 0, 204 ], [ 228, 204 ], [ 228, 396 ], [ 0, 396 ]
    • insiderightwing: [ 0, 36 ], [ 115, 36 ], [ 77, 204 ], [ 0, 204 ]
    • insideright: [ 115, 36 ], [ 225, 87 ], [ 294, 161 ], [ 225, 204 ], [ 77, 204 ]
    • insidecenter: [ 225, 204 ], [ 294, 161 ], [ 324, 218 ], [ 337, 300 ], [ 324, 382 ], [ 294, 439 ], [ 225, 396 ]
    • insideleft: [ 115, 564 ], [ 225, 513 ], [ 294, 439 ], [ 225, 396 ], [ 77, 396 ]
    • insideleftwing: [ 0, 564 ], [ 115, 564 ], [ 77, 396 ], [ 0, 396 ]
    • outsiderightwing: [ 0, 0 ], [ 122, 0 ], [ 115, 36 ], [ 0, 36 ]
    • outsideright: [ 122, 0 ], [ 492, 0 ], [ 492, 69 ], [ 324, 218 ], [ 294, 161 ], [ 225, 87 ], [ 115, 36 ]
    • outsidecenter: [ 324, 216 ], [ 492, 69 ], [ 492, 531 ], [ 324, 384 ], [ 337, 300 ]
    • outsideleft: [ 122, 600 ], [ 492, 600 ], [ 492, 531 ], [ 324, 382 ], [ 294, 439 ], [ 225, 513 ], [ 115, 564 ]
    • outsideleftwing: [ 0, 600 ], [ 122, 600 ], [ 115, 564 ], [ 0, 564 ]
    • backcourt: [ 492, 0 ], [ 564, 0 ], [ 564, 600 ], [ 492, 600 ]

    Q: Why does the team_basket attribution in the play-by-play feed not match the basket orientation (left vs. right) in the broadcast or game tracking that I'm viewing? 

    A: Our team_basket attribution is set to match the orientation of the local television broadcast, which is on the opposite side of the scorer's table. The team_basket attribution may not match the orientation used by the particular broadcast or game tracker that you are viewing.

    If you want to provide a perspective from the scorer's table, you will have to map the coordinates so that the coordinates attributed to left side of the court are attributed to the right side of the court on your end (and vice versa).

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

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

    • clearpathfoul - <charged_to> clear path foul (<drawn_by> draws the foul)
    • deadball - <given_to> rebound (deadball)
    • defaultviolation - <charged_to> violation
    • defensivegoaltending - <charged_to> defensive goaltending violation
    • defensivethreeseconds - <charged_to> defensive 3 seconds violation
    • delay - <charged_to> delay of game violation
    • doublelane - <charged_to> double lane violation
    • ejection - <given_to> ejected from the game (<ejection_type>)
    • endperiod - End of <nth period/half>
    • flagrantone - <charged_to> flagrant 1 (<drawn_by> draws the foul)
    • flagranttwo - <charged_to> flagrant 2 (<drawn_by> draws the foul)
    • freethrowmade - <taken_by> makes <free_throw_type> free throw <attempt>
    • freethrowmiss - <taken_by> misses <free_throw_type> free throw <attempt> (<charged_to> lane_violation)
    • jumpball - Jump ball <reason>. <possessor> vs <challenger> (<possession> gains possession)
    • kickball - <charged_to> kicked ball violation
    • lane - <charged_to> lane violation
    • lineupchange - <team_name> lineup change (<players>)
    • offensivefoul - <charged_to> offensive foul (<foul_type_desc>) (<drawn_by> draws the foul)
    • officialtimeout - Official timeout
    • openinbound - Open inbound <team_name>
    • opentip - Jump ball. <home> vs <away> (<possession> gains possession)
    • personalfoul - <charged_to> personal foul (<foul_type_desc>) (<drawn_by> draws the foul)
    • possession - <possession> gain possession
    • rebound - <given_to> <offensive/defensive> rebound
    • review - Play review (<reason>, <outcome>)
    • shootingfoul - <charged_to> shooting foul (<drawn_by> draws the foul)
    • stoppage - Stoppage (<reason>)
    • teamtimeout - <team_name> <duration> second timeout
    • technicalfoul - <charged_to> technical foul (<foul_type_desc>)
    • threepointmade - <taken_by> makes three point <shot_type_desc> <shot_type> (<assisted_by> assists)
    • threepointmiss - <taken_by> misses three point <shot_type_desc> <shot_type>
    • turnover - <charged_to> turnover (turnover_type_desc>)
    • tvtimeout - TV Timeout
    • twopointmade - <taken_by> makes two point <shot_type_desc> <shot_type> (<assisted_by> assists)
    • twopointmiss - <taken_by> misses two point <shot_type_desc> <shot_type>

    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 clinched the best record home court advantage for the playoffs.
    • division – The team has clinched the division.
    • eliminated – The team has been eliminated from playoff contention.
    • playoff_berth – The team has clinched a playoff berth.

    Q: When are scores added to the schedule feeds?

    A: Final scores are added to the schedule feeds when the game status changes to completed.

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

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

    • English: eu
    • Russian: ru
    • Simplified Chinese: zh
    • Japanese: ja

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

    Q: What are the possible values for event category used in the Push Events feed?

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

    • freethrow
    • freethrow,score
    • foul
    • foul,flagrant
    • foul,warning
    • lineupchange
    • period,stoppage
    • period,stoppage,possession
    • possession
    • shot
    • shot,score
    • stoppage
    • timeout,stoppage
    • turnover
    • violation

    Q: What are the possible values for statistics type used in the Push Events feed?

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

    • fieldgoal
    • assist
    • block
    • attemptblocked
    • rebound
    • freethrow
    • turnover
    • steal
    • personalfoul
    • flagrantfoul
    • technicalfoul
    • ejection
    • fouldrawn
    • offensivefoul

    Q: What formulas are used to calculate efficiency and efficiency game score?

    A: Here are the formulas we use:

    Efficiency: (Points + Assists + Blocks + Steals + Fouls Drawn + Rebounds) - (Turnovers + Blocked Attempts + Personal Fouls + Technical Fouls + Missed Free Throw Attempts + Missed Field Goal Attempts))

    Efficiency Game Score: (Points) + (0.4*Field Goals Made) - (0.7*Field Goals Attempted) - (0.4*Free Throws Missed) + (0.7*Offensive Rebounds) + (0.3*Defensive Rebounds) + (Steals) + (0.7*Assists) + (0.7*Blocks) – (0.4*Personal Fouls) – (Turnovers)

    Note: For this team efficiency calculations, statistics attributed to the team rather than a player are not counted (i.e. team rebounds, team turnovers, team fouls, etc.).

    Q: What are the possible values for player – not_playing_reason?

    A: Here is a list of the valid not playing reasons you can expect to see, and their descriptions.

    • DNP_COACH – Did Not Play: Coach's Decision
    • DNP_INJURY – Did Not Play: Injury/Illness
    • DNP_REST – Did Not Play: Rest
    • DND_INJURY – Did Not Dress: Injury/Illness
    • DND_PERSONAL – Did Not Dress: Personal
    • DND_REST – Did Not Dress: Rest
    • DND_TRADE – Did Not Dress: Trade Pending
    • DND_COACH – Did Not Dress: Coach's Decision
    • NWT_INJURY – Not with Team: Injury/Illness
    • NWT_PERSONAL – Not with Team: Personal
    • NWT_REST – Not with Team: Rest
    • NWT_SUSPENDED – Not with Team: Suspended
    • NWT_TRADE – Not with Team: Trade Pending
    • NWT_COACH – Not with Team: Coach's Decision
    • INACTIVE_INJURY – Inactive: Injury/Illness
    • INACTIVE_PERSONAL – Inactive: Personal
    • INACTIVE_REST – Inactive: Rest
    • INACTIVE_SUSPENDED – Inactive: Suspended
    • INACTIVE_TRADE – Inactive: Trade Pending
    • INACTIVE_COACH – Inactive: Coach's Decision
    • INACTIVE_GLEAGUE – Inactive: G League Team
    Return to top