Sportradar US API Portal – NFL v5
Frequently Asked Questions
API
API Version
XSD Schema
NFL
v5
Download
Note: Authentication is required for all API calls.
## NFL v5 API Map
Examples:
>To find the team a player was drafted by:
>
- Call the season or weekly schedule and find a Game Id that they played in
- Call the Game Roster using the Game Id to get the Player Id
- Call the Player Profile and locate the Player Draft Team Alias.
>The Alias maps to the team that drafted the player.
>
>To find a teams number of defensive sacks:
>
- Call the season or weekly schedule and find the desired Team Id
- Call the Seasonal Statistics using the Team Id
- Locate the Team Defense Sacks.
>The teams number of defensive sacks is displayed.
Primary and additional feeds only require dates or human-readable parameters, while other feeds require a global unique identifier (GUID) to identify the game, team, or player that the feed will describe. The primary feeds provide GUIDs for games and teams, while games and teams provide GUIDS for players.
## Daily Change Log
Provides IDs and timestamps for teams, players, game statistics, schedules, and standings that have been modified on a given date. To receive the data updates, use these unique IDs to pull relevant API feeds.
Update Frequency:
As Necessary
Content Type:
Raw XML or JSON
Game Information Data Points:
Id
Last Modified
SR Id
League Information Data Points:
Alias
Id
Name
Season Id
Player Information Data Points:
Full Name
Id
Last Modified
SR Id
Team Information Data Points:
Alias
Id
Last Modified
Market
Name
SR Id
> To generate the Daily Change Log replace {your_api_key} with your API key:
“`ruby
require ‘uri’
require ‘net/http’
require ‘openssl’
url = URI(“https://api.sportradar.us/nfl/official/trial/v5/en/league/2019/05/24/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”, “/nfl/official/trial/v5/en/league/2019/05/24/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/nfl/official/trial/v5/en/league/2019/05/24/changes.xml?api_key={your_api_key}”
“`
> The above command returns xml structured like
Update Frequency:
As Necessary
Content Type:
Raw XML or JSON
Draft Information Data Points:
Broadcast Channel
Broadcast Internet
Broadcast Network
Draft End Date
Draft Id
Draft Start Date
Draft Status
Draft Team Alias
Draft Team Id
Draft Team Market
Draft Team Name
Draft Year
Pick Compensatory
Pick Id
Pick Number
Pick Overall
Pick Traded
Round End Date
Round Id
Round Number
Round Start Date
Round Status
Trade Id
League Information Data Points:
Alias
Id
Name
Player Information Data Points:
Prospect Birth Place
Prospect Experience
Prospect First Name
Prospect Height
Prospect Id
Prospect Last Name
Prospect League Id
Prospect Name
Prospect Position
Prospect Publishable
Prospect Source Id
Prospect Top Prospect
Prospect Weight
Team Information Data Points:
Alias
Id
Market
Name
Sequence
Venue Information Data Points:
Address
City
Country
Name
State
> To generate the Draft Summary for 2018 replace {your_api_key} with your API key:
“`ruby
require ‘uri’
require ‘net/http’
require ‘openssl’
url = URI(“https://api.sportradar.us/draft/nfl/trial/v1/en/2019/draft.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”, “/draft/nfl/trial/v1/en/2019/draft.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/draft/nfl/trial/v1/en/2019/draft.xml?api_key={your_api_key}”
“`
> The above command returns xml structured like
Update Frequency:
Real-time
Content Type:
Styled XML or Raw JSON
Boxscore Information Data Points:
Attendance
Away Team Coin Toss Decision
Away Team Coin Toss Direction
Away Team Coin Toss Outcome
Away Team Points for Quarter
Away Team Timeouts Remaining
Away Team Timeouts Used
Away Team Total Points
Clock
Coin Toss Quarter
Current Situation Clock
Current Situation Down
Current Situation Team Alias
Current Situation Team Id
Current Situation Team Market
Current Situation Team Name
Current Situation Team SR Id
Current Situation Team Yardline
Current Situation Possession Team Alias
Current Situation Possession Team Id
Current Situation Possession Team Market
Current Situation Possession Team Name
Current Situation Possession Team SR Id
Current Situation Yards to First Down
Home Team Coin Toss Decision
Home Team Coin Toss Direction
Home Team Coin Toss Outcome
Home Team Points for Quarter
Home Team Timeouts Remaining
Home Team Timeouts Used
Home Team Total Points
Last Event Clock
Last Event Description
Last Event Id
Last Event Sequence
Last Event Type
Overtime Id
Overtime Number
Overtime Sequence
Quarter
Quarter Id
Quarter Number
Quarter Sequence
Game Information Data Points:
Away Team Alias
Away Team Id
Away Team Market
Away Team Name
Away Team SR Id
Entry Mode
Home Team Alias
Home Team Id
Home Team Market
Home Team Name
Home Team SR Id
Game Id
Game Number
Game Scheduled Start Date/Time
SR Id
Status
Weather
League Information Data Points:
Season Id
Season Name
Season Type
Season Year
Week Id
Week Sequence
Week Title
Play By Play Information Data Points:
Detail Category
Detail Description
Detail Direction
Detail End Location – Team Alias
Detail End Location – Yardline
Detail No Attempt
Detail Penalty – Description
Detail Penalty – Result
Detail Penalty – Safety
Detail Penalty – Yards
Detail Result
Detail Sequence
Detail Start Location – Team Alias
Detail Start Location – Yardline
Detail Yards
Drive Duration
Drive End Reason
Drive First Downs
Drive Gain
Drive Id
Drive Inside 20 Flag
Drive Penalty Yards
Drive Play Count
Drive Scoring Drive Flag
Drive Sequence
Drive Start Reason
Ending Situation Clock
Ending Situation Down
Ending Situation – Location – Team Alias
Ending Situation – Location – Team Id
Ending Situation – Location – Team Market
Ending Situation – Location – Team Name
Ending Situation – Location – Team Yardline
Ending Situation – Possession – Team Alias
Ending Situation – Possession – Team Id
Ending Situation – Possession – Team Market
Ending Situation – Possession – Team Name
Ending Situation – Yards to First Down
Event Clock
Event Description
Event Id
Event Sequence
Event Type
Play Away Points
Play Blitz
Play Description
Play Fake Field Goal
Play Fake Punt
Play Hash Mark
Play Home Points
Play Huddle
Play Id
Play Left Tightends
Play Men in Box
Play Pass Route
Play Play Action
Play Play Direction
Play Players Rushed
Play Pocket Location
Play QB at Snap
Play Right Tightends
Play Run Pass Option
Play Running Lane
Play Scoring Play
Play Screen Pass
Play Sequence
Play Type
Play Wall Clock
Quarter Id
Quarter Number
Quarter Sequence
Points After – Play Id
Points After – Score Type
Points After – Sequence
Scoring – Away Team Score
Scoring – Clock
Scoring – Home Team Score
Scoring – Points
Scoring – Sequence
Starting Situation Clock
Starting Situation Down
Starting Situation Location – Team Alias
Starting Situation Location – Team Id
Starting Situation Location – Team Market
Starting Situation Location – Team Name
Starting Situation Location – Team Yardline
Starting Situation Possession – Team Alias
Starting Situation Possession – Team Id
Starting Situation Possession – Team Market
Starting Situation Possession – Team Name
Starting Situation Yards to First Down
Play Statistics Data Points:
Conversion Attempt
Conversion Category
Conversion Complete
Defense Assisted Sacks
Defense Assisted Tackles
Defense Assisted Tackles for Loss
Defense Batted Pass
Defense Blitz
Defense Block
Defense Category
Defense Conversion Attempt
Defense Conversion Category
Defense Conversion Complete
Defense Defensive Completion
Defense Defensive Target
Defense Forced Fumble
Defense Hurry
Defense Interception
Defense Interception Touchdown
Defense Interception Yards
Defense Knockdown
Defense Missed Tackles
Defense Nullified Play Flag
Defense Pass Defended
Defense Primary
Defense QB Hit
Defense Sack
Defense Sack Yards
Defense Safety
Defense Tackle for Loss
Defense Tackle for Loss Yards
Defense Tackle
Down Conversions Attempt
Down Conversions Complete
Down Conversions Down
Extra Point Aborted
Extra Point Attempt
Extra Point Blocked
Extra Point Missed
Extra Point Returned
Extra Point Safety
Field Goal Attempt
Field Goal Attempt Yards
Field Goal Blocked
Field Goal Missed
Field Goal Returned
Field Goal Nullified
Field Goal Yards
First Down Category
Fumbles Forced
Fumbles Fumble
Fumbles Lost
Fumbles Nullified
Fumbles Opponent Recovery
Fumbles Opponent Recovery Touchdown
Fumbles Opponent Recovery Yards
Fumbles Out of Bounds
Fumbles Own Recovery
Fumbles Own Recovery Touchdown
Fumbles Own Recovery Yards
Fumbles Play Category
Kickoffs End Zone
Kickoffs Gross Yards
Kickoffs Inside 20
Kickoffs Kickoff
Kickoffs Nullified
Kickoffs Onside Attempt
Kickoffs Onside Success
Kickoffs Own Recovery
Kickoffs Own Recovery Touchdown
Kickoffs Squib Kick
Kickoffs Touchback
Kickoffs Yards
Passing Attempt
Passing Attempt Yards
Passing Batted Pass
Passing Blitz
Passing Completion
Passing First Down
Passing Goal to Go
Passing Hurry
Passing Incompletion Type
Passing Inside 20
Passing Interception
Passing Knockdown
Passing Nullified
Passing On Target Throws
Passing Pocket Time
Passing Sack
Passing Sack Yards
Passing Touchdown
Passing Yards
Penalties Penalty
Penalties Yards
Punting Attempt
Punting Blocked
Punting Downed
Punting Endzone
Punting Fair Catch
Punting Hang Time
Punting Inside 20
Punting Nullified
Punting Out of Bounds
Punting Touchback
Punting Yards
Receiving Broken Tackles
Receiving Catchable
Receiving Dropped
Receiving First Down
Receiving Goal to Go
Receiving Inside 20
Receiving Nullified
Receiving Reception
Receiving Safety
Receiving Target
Receiving Touchdown
Receiving Yards
Receiving Yards After Catch
Receiving Yards After Contact
Returns Category
Returns Downed
Returns Fair Catch
Returns First Down
Returns Lateral
Returns Nullified
Returns Out of Bounds
Returns Play Category
Returns Return
Returns Touchback
Returns Touchdown
Returns Yards
Rushing Attempt
Rushing Broken Tackles
Rushing First Down
Rushing Goal to Go
Rushing Inside 20
Rushing Kneel Down
Rushing Lateral
Rushing Nullified
Rushing Scramble
Rushing Tackle for Loss
Rushing Tackle for Loss Yards
Rushing Touchdown
Rushing Yards
Rushing Yards After Contact
Player Information Data Points:
Full Name
Id
Jersey Number
Position
Role
SR Id
Team Information Data Points:
Alias
Id
Market
Name
SR Id
Venue Information Data Points:
Address
Capacity
City
Country
Id
Name
Roof Type
SR Id
State
Surface
Zip
> To generate the Game Boxscore for the Game ID below replace {your_api_key} with your API key:
“`ruby
require ‘uri’
require ‘net/http’
require ‘openssl’
url = URI(“https://api.sportradar.us/nfl/official/trial/v5/en/games/030d37cf-b896-4f10-b16e-2a5120fef6cf/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”, “/nfl/official/trial/v5/en/games/030d37cf-b896-4f10-b16e-2a5120fef6cf/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/nfl/official/trial/v5/en/games/030d37cf-b896-4f10-b16e-2a5120fef6cf/boxscore.xml?api_key={your_api_key}”
“`
> The above command returns xml structured like
Update Frequency:
As Necessary
Content Type:
Styled XML or JSON
Boxscore Information Data Points:
Attendance
Clock
Quarter
Officials Assignment
Officials Full Name
Officials Number
Game Information Data Points:
Away Team Alias
Away Team Id
Away Team Market
Away Team Name
Away Team SR Id
Entry Mode
Home Team Alias
Home Team Id
Home Team Market
Home Team Name
Home Team SR Id
Game Id
Game Number
Game Scheduled Start Date/Time
SR Id
Status
Weather
League Information Data Points:
Season Id
Season Name
Season Type
Season Year
Week Id
Week Sequence
Week Title
Player Information Data Points:
Abbreviated Name
Age (at time of game)
Birth Date
Birth Place
College
College Conference
Draft Number
Draft Round
Draft Year
Draft Team Alias
Draft Team Id
Draft Team Market
Draft Team Name
Draft Team SR Id
First Name
Full Name
Game Status
Height
High School
Id
Jersey Number
Last Name
Name Suffix
Position
Preferred Name
SR Id
Weight
Team Information Data Points:
Alias
Coach First Name
Coach Full Name
Coach Id
Coach Last Name
Name Suffix
Coach Position
Id
Market
Name
SR Id
Venue Information Data Points:
Address
Capacity
City
Country
Id
Name
Roof Type
SR Id
State
Surface
Zip
> To generate the Game Roster for the Game ID below replace {your_api_key} with your API key:
“`ruby
require ‘uri’
require ‘net/http’
require ‘openssl’
url = URI(“https://api.sportradar.us/nfl/official/trial/v5/en/games/030d37cf-b896-4f10-b16e-2a5120fef6cf/roster.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”, “/nfl/official/trial/v5/en/games/030d37cf-b896-4f10-b16e-2a5120fef6cf/roster.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/nfl/official/trial/v5/en/games/030d37cf-b896-4f10-b16e-2a5120fef6cf/roster.xml?api_key={your_api_key}”
“`
> The above command returns xml structured like
Update Frequency:
Real-time
Content Type:
Styled XML or Raw JSON
Boxscore Information Data Points:
Attendance
Away Team Timeouts Remaining
Away Team Timeouts Used
Away Team Total Points
Clock
Home Team Timeouts Remaining
Home Team Timeouts Used
Home Team Total Points
Quarter
Game Information Data Points:
Away Team Alias
Away Team Id
Away Team Market
Away Team Name
Away Team SR Id
Entry Mode
Home Team Alias
Home Team Id
Home Team Market
Home Team Name
Home Team SR Id
Game Id
Game Number
Game Scheduled Start Date/Time
SR Id
Status
Weather
Player Game Statistics Data Points:
Conversions Attempts
Conversion Category
Conversion Successes
Defense Assisted Tackles
Defense Batted Passes
Defense Blitzes
Defense Combined Tackles
Defensive Completions
Defensive Targets
Defense Forced Fumbles
Defense Fumble Recoveries
Defense Hurries
Defense Interceptions
Defense Knockdowns
Defense Miscellaneous Assisted Tackles
Defense Miscellaneous Forced Fumbles
Defense Miscellaneous Fumble Recoveries
Defense Miscellaneous Tackles
Defense Missed Tackles
Defense Passes Defended
Defense QB Hits
Defense Sack Yards
Defense Sacks
Defense Safeties
Defense Special Teams Assisted Tackles
Defense Special Teams Blocks
Defense Special Teams Forced Fumbles
Defense Special Teams Fumble Recoveries
Defense Special Teams Tackles
Defense Tackles
Defense Tackles for Loss
Defense Tackles for Loss Yards
Extra Points Kicking Attempts
Extra Points Kicking Blocked
Extra Points Kicking Made
Field Goals Attempts
Field Goals Average Yards
Field Goals Blocked
Field Goals Longest
Field Goals Made
Field Goal Yards
Fumbles End Zone Touchdowns
Fumbles Force Fumbles
Fumbles Fumbles
Fumbles Lost Fumbles
Fumbles Opponent Recovery
Fumbles Opponent Recovery Touchdowns
Fumbles Opponent Recovery Yards
Fumbles Out of Bounds
Fumbles Own Recovery
Fumbles Own Recovery Touchdowns
Fumbles Own Recovery Yards
Interception Returns Average Yards
Interception Returns Longest
Interception Returns
Interception Returns Touchdowns
Interception Returns Yards
Kick Returns Average Yards
Kick Returns Fair Catches
Kick Returns Longest
Kick Returns Returns
Kick Returns Touchdowns
Kick Returns Yards
Kickoffs End Zone
Kickoffs Inside 20
Kickoffs
Kickoffs Onside Attempts
Kickoffs Onside Successes
Kickoffs Out of Bounds
Kickoffs Return Yards
Kickoffs Squib Kicks
Kickoffs Total Endzone
Kickoffs Touchbacks
Kickoffs Yards
Passing Air Yards
Passing Attempts
Passing Average Pocket Time
Passing Average Yards
Passing Batted Passes
Passing Blitzes
Passing Completion Percentage
Passing Completions
Passing Defended Passes
Passing Dropped Passes
Passing Hurries
Passing Interceptions
Passing Knockdowns
Passing Longest
Passing Longest Touchdown
Passing On Target Throws
Passing Pocket Time
Passing Poor Throws
Passing Rating
Passing Red Zone Attempts
Passing Sack Yards
Passing Sacks
Passing Spikes
Passing Throw Aways
Passing Touchdowns
Passing Yards
Penalties
Penalty Yards
Punt Return Average Yards
Punt Return Fair Catches
Punt Return Longest
Punt Returns
Punt Return Touchdowns
Punt Return Yards
Punts Attempts
Punts Average Hang Time
Punts Average Net Yards
Punts Average Yards
Punts Blocked
Punts Hang Time
Punts Inside 20
Punts Longest
Punts Net Yards
Punts Return Yards
Punts Touchbacks
Punts Yards
Receiving Air Yards
Receiving Average Yards
Receiving Broken Tackles
Receiving Catchable Passes
Receiving Dropped Passes
Receiving Longest
Receiving Longest Touchdown
Receiving Receptions
Receiving Red Zone Targets
Receiving Targets
Receiving Touchdowns
Receiving Yards
Receiving Yards After Catch
Receiving Yards After Contact
Rushing Attempts
Rushing Average Yards
Rushing Broken Tackles
Rushing Kneel Downs
Rushing Longest
Rushing Longest Touchdown
Rushing Red Zone Attempts
Rushing Scrambles
Rushing Tackle for Loss
Rushing Tackle for Loss Yards
Rushing Touchdowns
Rushing Yards
Rushing Yards After Contact
Team Game Statistics Data Points:
Conversions Defense Attempts
Conversions Defense Successes
Conversions Pass Attempts
Conversions Pass Successes
Conversions Rush Attempts
Conversions Rush Successes
Conversions Turnover Successes
Defense Assisted Tackles
Defense Batted Passes
Defense Blitzes
Defense Combined Tackles
Defensive Completions
Defensive Targets
Defense Forced Fumbles
Defense Fumble Recoveries
Defense Hurries
Defense Interceptions
Defense Knockdowns
Defense Miscellaneous Assisted Tackles
Defense Miscellaneous Forced Fumbles
Defense Miscellaneous Fumble Recoveries
Defense Miscellaneous Tackles
Defense Missed Tackles
Defense Passes Defended
Defense QB Hits
Defense Sack Yards
Defense Sacks
Defense Safeties
Defense Special Teams Assisted Tackles
Defense Special Teams Blocks
Defense Special Teams Forced Fumbles
Defense Special Teams Fumble Recoveries
Defense Special Teams Tackles
Defense Tackles
Defense Tackles for Loss
Defense Tackles for Loss Yards
Efficiency 3rd Down Attempts
Efficiency 3rd Down Conversions
Efficiency 3rd Down Percentage
Efficiency 4th Down Attempts
Efficiency 4th Down Conversions
Efficiency 4th Down Percentage
Efficiency Goal to Go Attempts
Efficiency Goal to Go Conversions
Efficiency Goal to Go Percentage
Efficiency Red Zone Attempts
Efficiency Red Zone Conversions
Efficiency Red Zone Percentage
Extra Points Kicking Attempts
Extra Points Kicking Blocked
Extra Points Kicking Made
Field Goals Attempts
Field Goals Average Yards
Field Goals Blocked
Field Goals Longest
Field Goals Made
Field Goals Net Attempts
Field Goals Yards
First Downs Passing
First Downs Penalty
First Downs Rushing
First Downs Total
Fumbles End Zone Touchdowns
Fumbles Force Fumbles
Fumbles Fumbles
Fumbles Lost Fumbles
Fumbles Opponent Recovery
Fumbles Opponent Recovery Touchdowns
Fumbles Opponent Recovery Yards
Fumbles Out of Bounds
Fumbles Own Recovery
Fumbles Own Recovery Touchdowns
Fumbles Own Recovery Yards
Interception Returns Average Yards
Interception Returns Longest
Interception Returns Returns
Interception Returns Touchdowns
Interception Returns Yards
Interceptions
Interceptions Return Yards
Interceptions Returned
Kick Returns Average Yards
Kick Returns Fair Catches
Kick Returns Longest
Kick Returns Returns
Kick Returns Touchdowns
Kick Returns Yards
Kickoffs End Zone
Kickoffs Inside 20
Kickoffs
Kickoffs Out of Bounds
Kickoffs Return Yards
Kickoffs Total Endzone
Kickoffs Touchbacks
Kickoffs Yards
Misc Returns Blocked Field Goal Touchdowns
Misc Returns Blocked Punt Touchdowns
Misc Returns End Zone Recovery Touchdowns
Misc Returns Field Goal Return Touchdowns
Misc Returns Returns
Misc Returns Touchdowns
Misc Returns Yards
Passing Air Yards
Passing Attempts
Passing Average Yards
Passing Batted Passes
Passing Blitzes
Passing Completion Percentage
Passing Completions
Passing Defended Passes
Passing Dropped Passes
Passing Gross Yards
Passing Hurries
Passing Interceptions
Passing Knockdowns
Passing Longest
Passing Longest Touchdown
Passing Net Yards
Passing On Target Throws
Passing Pocket Time
Passing Rating
Passing Red Zone Attempts
Passing Sack Yards
Passing Sacks
Passing Spikes
Passing Throw Aways
Passing Touchdowns
Passing Yards
Penalties
Penalty Yards
Punt Returns Average Yards
Punt Returns Fair Catches
Punt Returns Longest
Punt Returns
Punt Returns Touchdowns
Punt Returns Yards
Punts Attempts
Punts Average Hang Time
Punts Average Net Yards
Punts Average Yards
Punts Blocked
Punts Hang Time
Punts Inside 20
Punts Longest
Punts Net Yards
Punts Return Yards
Punts Touchbacks
Punts Yards
Receiving Air Yards
Receiving Average Yards
Receiving Broken Tackles
Receiving Catachable Passes
Receiving Dropped Passes
Receiving Longest
Receiving Longest Touchdown
Receiving Receptions
Receiving Red Zone Targets
Receiving Targets
Receiving Touchdowns
Receiving Yards
Receiving Yards After Catch
Receiving Yards After Contact
Rushing Attempts
Rushing Average Yards
Rushing Broken Tackles
Rushing Kneel Downs
Rushing Longest
Rushing Longest Touchdown
Rushing Red Zone Attempts
Rushing Scrambles
Rushing Tackles for Loss
Rushing Tackles for Loss Yards
Rushing Touchdowns
Rushing Yards
Rushing Yards After Contact
Touchdowns Fumble Return
Touchdowns Interception Return
Touchdowns Kick Return
Touchdowns Other
Touchdowns Pass
Touchdowns Punt Return
Touchdowns Rush
Touchdowns Total
Touchdowns Total Return
Team Summary Data Points:
Average Gain
Fumbles
Fumbles Lost
Penalties
Penalty Yards
Play Count
Possession Time
Return Yards
Rushing Plays
Safeties
Total Yards
Turnovers
League Information Data Points:
Season Id
Season Name
Season Type
Season Year
Week Id
Week Sequence
Week Title
Player Information Data Points:
Full Name
Id
Jersey Number
Position
SR Id
Team Information Data Points:
Alias
Id
Market
Name
SR Id
Venue Data Points:
Address
Capacity
City
Country
Id
Name
Roof Type
SR Id
State
Surface
Zip
> To generate the Game Statistics for the Game ID below replace {your_api_key} with your API key:
“`ruby
require ‘uri’
require ‘net/http’
require ‘openssl’
url = URI(“https://api.sportradar.us/nfl/official/trial/v5/en/games/030d37cf-b896-4f10-b16e-2a5120fef6cf/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”, “/nfl/official/trial/v5/en/games/030d37cf-b896-4f10-b16e-2a5120fef6cf/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/nfl/official/trial/v5/en/games/030d37cf-b896-4f10-b16e-2a5120fef6cf/statistics.xml?api_key={your_api_key}”
“`
> The above command returns xml structured like
Update Frequency:
As Necessary
Content Type:
Raw XML or JSON
Franchise Information Data Points:
Alias
Id
Name
League Information Data Points:
League Alias
Conference Alias
Conference Id
Conference Name
Division Alias
Division Id
Division Name
League Id
League Name
Team Information Data Points:
Alias
Id
Market
Name
SR Id
Venue Information Data Points:
Address
Capacity
City
Country
Id
Name
Roof Type
SR Id
State
Surface
Zip
> To generate the League Hierarchy replace {your_api_key} with your API key:
“`ruby
require ‘uri’
require ‘net/http’
require ‘openssl’
url = URI(“https://api.sportradar.us/nfl/official/trial/v5/en/league/hierarchy.xml?api_key={your_api_key}”)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body
“`
“`python
import http.client
conn = http.client.HTTPSConnection(“api.sportradar.us”)
conn.request(“GET”, “/nfl/official/trial/v5/en/league/hierarchy.xml?api_key={your_api_key}”)
res = conn.getresponse()
data = res.read()
print(data.decode(“utf-8”))
“`
“`shell
curl -X GET “https://api.sportradar.us/nfl/official/trial/v5/en/league/hierarchy.xml?api_key={your_api_key}”
“`
> The above command returns xml structured like
Update Frequency:
Real-Time
Content Type:
Raw XML or JSON
Boxscore Data Points:
Attendance
Away Team Coin Toss Decision
Away Team Coin Toss Direction
Away Team Coin Toss Outcome
Away Team Points for Quarter
Away Team Timeouts Remaining
Away Team Timeouts Used
Away Team Total Points
Clock
Coin Toss Quarter
Home Team Coin Toss Decision
Home Team Coin Toss Direction
Home Team Coin Toss Outcome
Home Team Points for Quarter
Home Team Timeouts Remaining
Home Team Timeouts Used
Home Team Total Points
Overtime Id
Overtime Number
Overtime Sequence
Quarter
Quarter Id
Quarter Number
Quarter Sequence
Game Information Data Points:
Away Team Alias
Away Team Id
Away Team Market
Away Team Name
Away Team SR Id
Entry Mode
Home Team Alias
Home Team Id
Home Team Market
Home Team Name
Home Team SR Id
Game Id
Game Number
Game Scheduled Start Date/Time
SR Id
Status
Weather
League Information Data Points:
Season Id
Season Name
Season Type
Season Year
Week Id
Week Sequence
Week Title
Play By Play Information Data Points:
Detail Category
Detail Description
Detail Direction
Detail End Location – Team Alias
Detail End Location – Yardline
Detail No Attempt
Detail Penalty – Description
Detail Penalty – Result
Detail Penalty – Safety
Detail Penalty – Yards
Detail Result
Detail Sequence
Detail Start Location – Team Alias
Detail Start Location – Yardline
Detail Yards
Drive Duration
Drive End Reason
Drive First Downs
Drive Gain
Drive Id
Drive Inside 20 Flag
Drive Penalty Yards
Drive Play Count
Drive Scoring Drive Flag
Drive Sequence
Drive Start Reason
Ending Situation Clock
Ending Situation Down
Ending Situation – Location – Team Alias
Ending Situation – Location – Team Id
Ending Situation – Location – Team Market
Ending Situation – Location – Team Name
Ending Situation – Location – Team Yardline
Ending Situation – Possession – Team Alias
Ending Situation – Possession – Team Id
Ending Situation – Possession – Team Market
Ending Situation – Possession – Team Name
Ending Situation – Yards to First Down
Event Clock
Event Description
Event Id
Event Sequence
Event Type
Play Away Points
Play Blitz
Play Description
Play Fake Field Goal
Play Fake Punt
Play Hash Mark
Play Home Points
Play Huddle
Play Id
Play Left Tightends
Play Men in Box
Play Pass Route
Play Play Action
Play Play Direction
Play Players Rushed
Play Pocket Location
Play QB at Snap
Play Right Tightends
Play Run Pass Option
Play Running Lane
Play Scoring Play
Play Screen Pass
Play Sequence
Play Type
Play Wall Clock
Quarter Id
Quarter Number
Quarter Sequence
Points After – Play Id
Points After – Score Type
Points After – Sequence
Scoring – Away Team Score
Scoring – Clock
Scoring – Home Team Score
Scoring – Points
Scoring – Sequence
Starting Situation Clock
Starting Situation Down
Starting Situation Location – Team Alias
Starting Situation Location – Team Id
Starting Situation Location – Team Market
Starting Situation Location – Team Name
Starting Situation Location – Team Yardline
Starting Situation Possession – Team Alias
Starting Situation Possession – Team Id
Starting Situation Possession – Team Market
Starting Situation Possession – Team Name
Starting Situation Yards to First Down
Play Statistics Data Points:
Conversion Attempt
Conversion Category
Conversion Complete
Defense Assisted Sacks
Defense Assisted Tackles
Defense Assisted Tackles for Loss
Defense Batted Pass
Defense Blitz
Defense Block
Defense Category
Defense Conversion Attempt
Defense Conversion Category
Defense Conversion Complete
Defense Defensive Completion
Defense Defensive Target
Defense Forced Fumble
Defense Hurry
Defense Interception
Defense Interception Touchdown
Defense Interception Yards
Defense Knockdown
Defense Missed Tackles
Defense Nullified Play Flag
Defense Pass Defended
Defense Primary
Defense QB Hit
Defense Sack
Defense Sack Yards
Defense Safety
Defense Tackle for Loss
Defense Tackle for Loss Yards
Defense Tackle
Down Conversions Attempt
Down Conversions Complete
Down Conversions Down
Extra Point Aborted
Extra Point Attempt
Extra Point Blocked
Extra Point Missed
Extra Point Returned
Extra Point Safety
Field Goal Attempt
Field Goal Attempt Yards
Field Goal Blocked
Field Goal Missed
Field Goal Returned
Field Goal Nullified
Field Goal Yards
First Down Category
Fumbles Forced
Fumbles Fumble
Fumbles Lost
Fumbles Nullified
Fumbles Opponent Recovery
Fumbles Opponent Recovery Touchdown
Fumbles Opponent Recovery Yards
Fumbles Out of Bounds
Fumbles Own Recovery
Fumbles Own Recovery Touchdown
Fumbles Own Recovery Yards
Fumbles Play Category
Kickoffs End Zone
Kickoffs Gross Yards
Kickoffs Inside 20
Kickoffs Kickoff
Kickoffs Nullified
Kickoffs Onside Attempt
Kickoffs Onside Success
Kickoffs Own Recovery
Kickoffs Own Recovery Touchdown
Kickoffs Squib Kick
Kickoffs Touchback
Kickoffs Yards
Passing Attempt
Passing Attempt Yards
Passing Batted Pass
Passing Blitz
Passing Completion
Passing First Down
Passing Goal to Go
Passing Hurry
Passing Incompletion Type
Passing Inside 20
Passing Interception
Passing Knockdown
Passing Nullified
Passing On Target Throws
Passing Pocket Time
Passing Sack
Passing Sack Yards
Passing Touchdown
Passing Yards
Penalties Penalty
Penalties Yards
Punting Attempt
Punting Blocked
Punting Downed
Punting Endzone
Punting Fair Catch
Punting Hang Time
Punting Inside 20
Punting Nullified
Punting Out of Bounds
Punting Touchback
Punting Yards
Receiving Broken Tackles
Receiving Catchable
Receiving Dropped
Receiving First Down
Receiving Goal to Go
Receiving Inside 20
Receiving Nullified
Receiving Reception
Receiving Safety
Receiving Target
Receiving Touchdown
Receiving Yards
Receiving Yards After Catch
Receiving Yards After Contact
Returns Category
Returns Downed
Returns Fair Catch
Returns First Down
Returns Lateral
Returns Nullified
Returns Out of Bounds
Returns Play Category
Returns Return
Returns Touchback
Returns Touchdown
Returns Yards
Rushing Attempt
Rushing Broken Tackles
Rushing First Down
Rushing Goal to Go
Rushing Inside 20
Rushing Kneel Down
Rushing Lateral
Rushing Nullified
Rushing Scramble
Rushing Tackle for Loss
Rushing Tackle for Loss Yards
Rushing Touchdown
Rushing Yards
Rushing Yards After Contact
Player Information Data Points:
Full Name
Id
Jersey Number
Position
Role
SR Id
Team Information Data Points:
Alias
Id
Market
Name
SR Id
Venue Information Data Points:
Address
Capacity
City
Country
Id
Name
Roof Type
SR Id
State
Surface
Zip
> To generate the Play-By-Play for the Game ID below replace {your_api_key} with your API key:
“`ruby
require ‘uri’
require ‘net/http’
require ‘openssl’
url = URI(“https://api.sportradar.us/nfl/official/trial/v5/en/games/030d37cf-b896-4f10-b16e-2a5120fef6cf/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”, “/nfl/official/trial/v5/en/games/030d37cf-b896-4f10-b16e-2a5120fef6cf/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/nfl/official/trial/v5/en/games/030d37cf-b896-4f10-b16e-2a5120fef6cf/pbp.xml?api_key={your_api_key}”
“`
> The above command returns xml structured like
Update Frequency:
As Necessary
Content Type:
Raw XML or JSON
League Information Data Points:
Season Id
Season Name
Season Type
Season Year
Player Information Data Points:
Abbreviated Name
Birth Date
Birth Place
College
College Conference
Draft Info Number
Draft Info Round
Draft Info Year
Draft Team Alias
Draft Team Id
Draft Team Market
Draft Team Name
Draft Team SR Id
First Name
Full Name
Height
High School
Id
Jersey Number
Last Name
Name Suffix
Position
Preferred Name
SR Id
Status
Weight
Seasonal Player Statistics Data Points:
Conversions Defense Attempts
Conversions Defense Successes
Conversions Pass Attempts
Conversions Pass Successes
Conversions Receiving Attempts
Conversions Receiving Successes
Conversions Rush Attempts
Conversions Rush Successes
Defense Assisted Tackles
Defense Batted Passes
Defense Blitzes
Defense Combined Tackles
Defensive Completions
Defensive Targets
Defense Forced Fumbles
Defense Fumble Recoveries
Defense Hurries
Defense Interceptions
Defense Knockdowns
Defense Miscellaneous Assisted Tackles
Defense Miscellaneous Forced Fumbles
Defense Miscellaneous Fumble Recoveries
Defense Miscellaneous Tackles
Defense Missed Tackles
Defense Passes Defended
Defense QB Hits
Defense Sack Yards
Defense Sacks
Defense Safeties
Defense Special Teams Assisted Tackles
Defense Special Teams Blocks
Defense Special Teams Forced Fumbles
Defense Special Teams Fumble Recoveries
Defense Special Teams Tackles
Defense Tackles
Defense Tackles for Loss
Defense Tackles for Loss Yards
Extra Points Kicking Attempts
Extra Points Kicking Blocked
Extra Points Kicking Made
Field Goals Attempts
Field Goals Average Yards
Field Goals Blocked
Field Goals Longest
Field Goals Made
Field Goals Yards
Fumbles End Zone Recovery Touchdowns
Fumbles Force Fumbles
Fumbles
Fumbles Lost
Fumbles Opponent Recovery
Fumbles Opponent Recovery Touchdowns
Fumbles Opponent Recovery Yards
Fumbles Out of Bounds
Fumbles Own Recovery
Fumbles Own Recovery Touchdowns
Fumbles Own Recovery Yards
Games Played
Games Started
Interception Returns Average Yards
Interception Returns Longest
Interception Returns Returns
Interception Returns Touchdowns
Interception Returns Yards
Kick Returns Average Yards
Kick Returns Fair Catches
Kick Returns Longest
Kick Returns
Kick Returns Touchdowns
Kick Returns Yards
Kickoffs End Zone
Kickoffs Inside 20
Kickoffs
Kickoffs Onside Attempts
Kickoffs Onside Successes
Kickoffs Out of Bounds
Kickoffs Return Yards
Kickoffs Squib Kicks
Kickoffs Touchbacks
Kickoffs Yards
Passing Air Yards
Passing Attempts
Passing Average Pocket Time
Passing Average Yards
Passing Batted Passes
Passing Blitzes
Passing Completion Percentage
Passing Completions
Passing Defended Passes
Passing Dropped Passes
Passing Gross Yards
Passing Hurries
Passing Interceptions
Passing Knockdowns
Passing Longest
Passing Longest Touchdown
Passing On Target Throws
Passing Net Yards
Passing Pocket Time
Passing Rating
Passing Red Zone Attempts
Passing Sack Yards
Passing Sacks
Passing Spikes
Passing Throw Aways
Passing Touchdowns
Passing Yards
Penalties
Penalties Yards
Punt Returns Average Yards
Punt Returns Fair Catches
Punt Returns Longest
Punt Returns Returns
Punt Returns Touchdowns
Punt Returns Yards
Punts Attempts
Punts Average Hang Time
Punts Average Net Yards
Punts Average Yards
Punts Blocked
Punts Hang Time
Punts Inside 20
Punts Longest
Punts Net Yards
Punts Return Yards
Punts Touchbacks
Punts Yards
Receiving Air Yards
Receiving Average Yards
Receiving Broken Tackles
Receiving Catchable Passes
Receiving Dropped Passes
Receiving Longest
Receiving Longest Touchdown
Receiving Receptions
Receiving Red Zone Targets
Receiving Targets
Receiving Touchdowns
Receiving Yards
Receiving Yards After Catch
Receiving Yards After Contact
Rushing Attempts
Rushing Average Yards
Rushing Broken Tackles
Rushing Kneel Downs
Rushing Longest
Rushing Longest Touchdown
Rushing Red Zone Attempts
Rushing Scrambles
Rushing Tackles for Loss
Rushing Tackles for Loss Yards
Rushing Touchdowns
Rushing Yards
Rushing Yards After Contact
Team Information Data Points:
Alias
Id
Market
Name
SR Id
> To generate a Player Profile for the Player ID below replace {your_api_key} with your API key:
“`ruby
require ‘uri’
require ‘net/http’
require ‘openssl’
url = URI(“https://api.sportradar.us/nfl/official/trial/v5/en/players/0acdcd3b-5442-4311-a139-ae7c506faf88/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”, “/nfl/official/trial/v5/en/players/0acdcd3b-5442-4311-a139-ae7c506faf88/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/nfl/official/trial/v5/en/players/0acdcd3b-5442-4311-a139-ae7c506faf88/profile.xml?api_key={your_api_key}”
“`
> The above command returns xml structured like
Update Frequency:
As Necessary
Content Type:
Raw XML or JSON
Draft Information Data Points:
Broadcast Channel
Broadcast Internet
Broadcast Network
Draft End Date
Draft Id
Draft Start Date
Draft Status
Draft Team Alias
Draft Team Id
Draft Team Market
Draft Team Name
Draft Year
League Information Data Points:
Alias
Conference Alias
Conference Id
Conference Name
Division Alias
Division Id
Division Name
Id
Name
Player Information Data Points:
Prospect Birth Place
Prospect Experience
Prospect First Name
Prospect Height
Prospect Id
Prospect Last Name
Prospect League Id
Prospect Name
Prospect Position
Prospect Publishable
Prospect Source Id
Prospect Top Prospect
Prospect Weight
Team Information Data Points:
Alias
Id
Market
Name
Venue Information Data Points:
Address
City
Country
Name
State
> To generate the Prospects for the year below replace {your_api_key} with your API key:
“`ruby
require ‘uri’
require ‘net/http’
require ‘openssl’
url = URI(“https://api.sportradar.us/draft/nfl/trial/v1/en/2019/prospects.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”, “/draft/nfl/trial/v1/en/2019/prospects.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/draft/nfl/trial/v1/en/2019/prospects.xml?api_key={your_api_key}”
“`
> The above command returns xml structured like
Update Frequency:
As Necessary
Content Type:
Raw XML or JSON
Boxscore Information Data Points:
Attendance
Away Team Overtime Points
Away Team Points for Quarter
Away Team Total Points
Home Team Overtime Points
Home Team Points for Quarter
Home Team Total Points
Overtime Id
Overtime Number
Overtime Sequence
Quarter Id
Quarter Number
Quarter Sequence
Game Information Data Points:
Away Team Alias
Away Team Full Name
Away Team Game Number
Away Team Id
Away Team Name
Away Team SR Id
Broadcast Internet
Broadcast Network
Broadcast Satellite
Entry Mode
Home Team Alias
Home Team Full Name
Home Team Game Number
Home Team Id
Home Team Name
Home Team SR Id
Id
Number
Scheduled Start Date/Time
SR Id
Status
Weather
League Information Data Points:
Season Id
Season Name
Season Type
Season Year
Week Id
Week Sequence
Week Title
Venue Data Points:
Address
Capacity
City
Country
Id
Name
Roof Type
SR Id
State
Surface
Zip
> To generate the Schedule for the Season and Year below replace {your_api_key} with your API key:
“`ruby
require ‘uri’
require ‘net/http’
require ‘openssl’
url = URI(“https://api.sportradar.us/nfl/official/trial/v5/en/games/2019/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”, “/nfl/official/trial/v5/en/games/2019/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/nfl/official/trial/v5/en/games/2019/reg/schedule.xml?api_key={your_api_key}”
“`
> The above command returns xml structured like
Update Frequency:
As Necessary
Content Type:
Raw XML or JSON
League Information Data Points:
Season Id
Season Name
Season Type
Season Year
Player Information Data Points:
Full Name
Id
Jersey Number
Position
Opponent Seasonal Statistics Data Points:
Conversions Defense Attempts
Conversions Defense Successes
Conversions Pass Attempts
Conversions Pass Successes
Conversions Rush Attempts
Conversions Rush Successes
Conversions Turnover Successes
Defense Assisted Tackles
Defense Batted Passes
Defense Blitzes
Defense Combined Tackles
Defensive Completions
Defensive Targets
Defense Forced Fumbles
Defense Fumble Recoveries
Defense Hurries
Defense Interceptions
Defense Knockdowns
Defense Miscellaneous Assisted Tackles
Defense Miscellaneous Forced Fumbles
Defense Miscellaneous Fumble Recoveries
Defense Miscellaneous Tackles
Defense Missed Tackles
Defense Passes Defended
Defense QB Hits
Defense Sack Yards
Defense Sacks
Defense Safeties
Defense Special Teams Assisted Tackles
Defense Special Teams Blocks
Defense Special Teams Forced Fumbles
Defense Special Teams Fumble Recoveries
Defense Special Teams Tackles
Defense Tackles
Defense Tackles for Loss
Defense Tackles for Loss Yards
Efficiency 3rd Down Attempts
Efficiency 3rd Down Conversions
Efficiency 3rd Down Percentage
Efficiency 4th Down Attempts
Efficiency 4th Down Conversions
Efficiency 4th Down Percentage
Efficiency Goal to Go Attempts
Efficiency Goal to Go Conversions
Efficiency Goal to Go Percentage
Efficiency Red Zone Attempts
Efficiency Red Zone Conversions
Efficiency Red Zone Percentage
Extra Points Kicking Attempts
Extra Points Kicking Blocked
Extra Points Kicking Made
Field Goals Attempts
Field Goals Average Yards
Field Goals Blocked
Field Goals Longest
Field Goals Made
Field Goals Yards
First Downs Passing
First Downs Penalty
First Downs Rushing
First Downs Total
Fumbles End Zone Recovery Touchdowns
Fumbles Force Fumbles
Fumbles
Fumbles Lost
Fumbles Opponent Recovery
Fumbles Opponent Recovery Touchdowns
Fumbles Opponent Recovery Yards
Fumbles Out of Bounds
Fumbles Own Recovery
Fumbles Own Recovery Touchdowns
Fumbles Own Recovery Yards
Games Played
Interception Returns Average Yards
Interception Returns Longest
Interception Returns Returns
Interception Returns Touchdowns
Interception Returns Yards
Interceptions
Interceptions Return Yards
Interceptions Returned
Kick Returns Average Yards
Kick Returns Fair Catches
Kick Returns Longest
Kick Returns Returns
Kick Returns Touchdowns
Kick Returns Yards
Kickoffs End Zone
Kickoffs Inside 20
Kickoffs
Kickoffs Onside Attempts
Onside Successes
Out of Bounds
Kickoffs Return Yards
Kickoffs Returned
Kickoffs Squib Kicks
Kickoffs Touchbacks
Kickoffs Yards
Passing Air Yards
Passing Attempts
Passing Average Yards
Passing Batted Passes
Passing Blitzes
Passing Completion Percentage
Passing Completions
Passing Defended Passes
Passing Dropped Passes
Passing Gross Yards
Passing Hurries
Passing Interceptions
Passing Knockdowns
Passing Longest
Passing Longest Touchdown
Passing Net Yards
Passing On Target Throws
Passing Pocket Time
Passing Rating
Passing Red Zone Attempts
Passing Sack Yards
Passing Sacks
Passing Spikes
Passing Throw Aways
Passing Touchdowns
Passing Yards
Punt Returns Average Yards
Punt Returns Fair Catches
Punt Returns Longest
Punt Returns
Punt Returns Touchdowns
Punt Returns Yards
Punts Attempts
Punts Average Hang Time
Punts Average Net Yards
Punts Average Yards
Punts Blocked
Punts Hang Time
Punts Inside 20
Punts Longest
Punts Net Yards
Punts Return Yards
Punts Touchbacks
Punts Yards
Receiving Air Yards
Receiving Average Yards
Receiving Broken Tackles
Receiving Catchable Passes
Receiving Dropped Passes
Receiving Longest
Receiving Longest Touchdown
Receiving Receptions
Receiving Red Zone Targets
Receiving Targets
Receiving Touchdowns
Receiving Yards
Receiving Yards After Catch
Receiving Yards After Contact
Rushing Attempts
Rushing Average Yards
Rushing Broken Tackles
Rushing Kneel Downs
Rushing Longest
Rushing Longest Touchdown
Rushing Red Zone Attempts
Rushing Scrambles
Rushing Tackles for Loss
Rushing Tackles for Loss Yards
Rushing Touchdowns
Rushing Yards
Touchdowns Fumble Return
Touchdowns Interception Return
Touchdowns Kick Return
Touchdowns Other
Touchdowns Pass
Touchdowns Punt Return
Touchdowns Rush
Touchdowns Total
Touchdowns Total Return
Seasonal Player Statistics Data Points:
Conversions Defense Attempts
Conversions Defense Successes
Conversions Pass Attempts
Conversions Pass Successes
Conversions Receiving Attempts
Conversions Receiving Successes
Conversions Rush Attempts
Conversions Rush Successes
Defense Assisted Tackles
Defense Batted Passes
Defense Blitzes
Defense Combined Tackles
Defensive Completions
Defensive Targets
Defense Forced Fumbles
Defense Fumble Recoveries
Defense Hurries
Defense Interceptions
Defense Knockdowns
Defense Miscellaneous Assisted Tackles
Defense Miscellaneous Forced Fumbles
Defense Miscellaneous Fumble Recoveries
Defense Miscellaneous Tackles
Defense Missed Tackles
Defense Passes Defended
Defense QB Hits
Defense Sack Yards
Defense Sacks
Defense Safeties
Defense Special Teams Assisted Tackles
Defense Special Teams Blocks
Defense Special Teams Forced Fumbles
Defense Special Teams Fumble Recoveries
Defense Special Teams Tackles
Defense Tackles
Defense Tackles for Loss
Defense Tackles for Loss Yards
Extra Points Kicking Attempts
Extra Points Kicking Blocked
Extra Points Kicking Made
Field Goals Attempts
Field Goals Average Yards
Field Goals Blocked
Field Goals Longest
Field Goals Made
Field Goals Yards
Fumbles End Zone Recovery Touchdowns
Fumbles Force Fumbles
Fumbles
Fumbles Lost
Fumbles Opponent Recovery
Fumbles Opponent Recovery Touchdowns
Fumbles Opponent Recovery Yards
Fumbles Out of Bounds
Fumbles Own Recovery
Fumbles Own Recovery Touchdowns
Fumbles Own Recovery Yards
Games Played
Games Started
Interception Returns Average Yards
Interception Returns Longest
Interception Returns Returns
Interception Returns Touchdowns
Interception Returns Yards
Kick Returns Average Yards
Kick Returns Fair Catches
Kick Returns Longest
Kick Returns
Kick Returns Touchdowns
Kick Returns Yards
Kickoffs End Zone
Kickoffs Inside 20
Kickoffs
Kickoffs Onside Attempts
Kickoffs Onside Successes
Kickoffs Out of Bounds
Kickoffs Return Yards
Kickoffs Squib Kicks
Kickoffs Touchbacks
Kickoffs Yards
Passing Air Yards
Passing Attempts
Passing Average Pocket Time
Passing Average Yards
Passing Batted Passes
Passing Blitzes
Passing Completion Percentage
Passing Completions
Passing Defended Passes
Passing Dropped Passes
Passing Gross Yards
Passing Hurries
Passing Interceptions
Passing Knockdowns
Passing Longest
Passing Longest Touchdown
Passing Net Yards
Passing On Target Throws
Passing Pocket Time
Passing Rating
Passing Red Zone Attempts
Passing Sack Yards
Passing Sacks
Passing Spikes
Passing Throw Aways
Passing Touchdowns
Passing Yards
Penalties
Penalties Yards
Punt Returns Average Yards
Punt Returns Fair Catches
Punt Returns Longest
Punt Returns Returns
Punt Returns Touchdowns
Punt Returns Yards
Punts Attempts
Punts Average Hang Time
Punts Average Net Yards
Punts Average Yards
Punts Blocked
Punts Hang Time
Punts Inside 20
Punts Longest
Punts Net Yards
Punts Return Yards
Punts Touchbacks
Punts Yards
Receiving Air Yards
Receiving Average Yards
Receiving Broken Tackles
Receiving Catchable Passes
Receiving Dropped Passes
Receiving Longest
Receiving Longest Touchdown
Receiving Receptions
Receiving Red Zone Targets
Receiving Targets
Receiving Touchdowns
Receiving Yards
Receiving Yards After Catch
Receiving Yards After Contact
Rushing Attempts
Rushing Average Yards
Rushing Broken Tackles
Rushing Kneel Downs
Rushing Longest
Rushing Longest Touchdown
Rushing Red Zone Attempts
Rushing Scrambles
Rushing Tackles for Loss
Rushing Tackles for Loss Yards
Rushing Touchdowns
Rushing Yards
Rushing Yards After Contact
Seasonal Team Statistics Data Points:
Conversions Defense Attempts
Conversions Defense Successes
Conversions Pass Attempts
Conversions Pass Successes
Conversions Rush Attempts
Conversions Rush Successes
Conversions Turnover Successes
Defense Assisted Tackles
Defense Batted Passes
Defense Blitzes
Defense Combined Tackles
Defense Combined Tackles
Defensive Completions
Defensive Targets
Defense Forced Fumbles
Defense Fumble Recoveries
Defense Hurries
Defense Interceptions
Defense Knockdowns
Defense Miscellaneous Assisted Tackles
Defense Miscellaneous Forced Fumbles
Defense Miscellaneous Fumble Recoveries
Defense Miscellaneous Tackles
Defense Missed Tackles
Defense Passes Defended
Defense QB Hits
Defense Sack Yards
Defense Sacks
Defense Safeties
Defense Special Teams Assisted Tackles
Defense Special Teams Blocks
Defense Special Teams Forced Fumbles
Defense Special Teams Fumble Recoveries
Defense Special Teams Tackles
Tackles
Defense Tackles for Loss
Defense Tackles for Loss Yards
Efficiency 3rd Down Attempts
Efficiency 3rd Down Conversions
Efficiency 3rd Down Percentage
Efficiency 4th Down Attempts
Efficiency 4th Down Conversions
Efficiency 4th Down Percentage
Efficiency Goal to Go Attempts
Efficiency Goal to Go Conversions
Efficiency Goal to Go Percentage
Efficiency Red Zone Attempts
Efficiency Red Zone Conversions
Efficiency Red Zone Percentage
Extra Points Kicking Attempts
Extra Points Kicking Blocked
Extra Points Kicking Made
Field Goals Attempts
Field Goals Average Yards
Field Goals Blocked
Field Goals Longest
Field Goals Made
Field Goals Yards
First Downs Passing
First Downs Penalty
First Downs Rushing
First Downs Total
Fumbles End Zone Recovery Touchdowns
Fumbles Force Fumbles
Fumbles
Fumbles Lost Fumbles
Fumbles Opponent Recovery
Fumbles Opponent Recovery Touchdowns
Fumbles Opponent Recovery Yards
Fumbles Out of Bounds
Fumbles Own Recovery
Fumbles Own Recovery Touchdowns
Fumbles Own Recovery Yards
Team Games Played
Interception Returns Average Yards
Interception Returns Longest
Interception Returns
Interception Returns Touchdowns
Interception Returns Yards
Interceptions
Interceptions Return Yards
Interceptions Returned
Kick Returns Average Yards
Kick Returns Fair Catches
Kick Returns Longest
Kick Returns
Kick Returns Touchdowns
Kick Returns Yards
Kickoffs End Zone
Kickoffs Inside 20
Kickoffs
Kickoffs Onside Attempts
Kickoffs Onside Successes
Kickoffs Out of Bounds
Kickoffs Return Yards
Kickoffs Returned
Kickoffs Squib Kicks
Kickoffs Touchbacks
Kickoffs Yards
Passing Air Yards
Passing Attempts
Passing Average Yards
Passing Batted Passes
Passing Blitzes
Passing Completion Percentage
Passing Completions
Passing Defended Passes
Passing Dropped Passes
Passing Gross Yards
Passing Hurries
Passing Interceptions
Passing Knockdowns
Passing Longest
Passing Longest Touchdown
Passing Net Yards
Passing On Target Throws
Passing Pocket Time
Passing Rating
Passing Red Zone Attempts
Passing Sack Yards
Passing Sacks
Passing Spikes
Passing Throw Aways
Passing Touchdowns
Passing Yards
Penalties
Penalty Yards
Punt Returns Average Yards
Punt Returns Fair Catches
Punt Returns Longest
Punt Returns
Punt Returns Touchdowns
Punt Returns Yards
Punts Attempts
Punts Average Hang Time
Punts Average Net Yards
Punts Average Yards
Punts Blocked
Punts Hang Time
Punts Inside 20
Punts Longest
Punts Net Yards
Punts Return Yards
Punts Touchbacks
Punts Yards
Receiving Air Yards
Receiving Average Yards
Receiving Broken Tackles
Receiving Catchable Passes
Receiving Dropped Passes
Receiving Longest
Receiving Longest Touchdown
Receiving Receptions
Receiving Red Zone Targets
Receiving Targets
Receiving Touchdowns
Receiving Yards
Receiving Yards After Catch
Receiving Yards After Contact
Rushing Attempts
Rushing Average Yards
Rushing Broken Tackles
Rushing Kneel Downs
Rushing Longest
Rushing Longest Touchdown
Rushing Red Zone Attempts
Rushing Scrambles
Rushing Tackles for Loss
Rushing Tackles for Loss Yards
Rushing Touchdowns
Rushing Yards
Touchdowns Fumble Return
Touchdowns Interception Return
Touchdowns Kick Return
Touchdowns Other
Touchdowns Pass
Touchdowns Punt Return
Touchdowns Rush
Touchdowns Total
Touchdowns Total Return
Team Information Data Points:
Alias
Id
Market
Name
SR Id
> To generate the Seasonal Statistics for the Season, Year, and Game ID below replace {your_api_key} with your API key:
“`ruby
require ‘uri’
require ‘net/http’
require ‘openssl’
url = URI(“https://api.sportradar.us/nfl/official/trial/v5/en/seasons/2019/REG/teams/0d855753-ea21-4953-89f9-0e20aff9eb73/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”, “/nfl/official/trial/v5/en/seasons/2019/REG/teams/0d855753-ea21-4953-89f9-0e20aff9eb73/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/nfl/official/trial/v5/en/seasons/2019/REG/teams/0d855753-ea21-4953-89f9-0e20aff9eb73/statistics.xml?api_key={your_api_key}”
“`
> The above command returns xml structured like
Update Frequency:
As Necessary
Content Type:
Raw XML or JSON
League Information Data Points:
Season End Date
Season Id
Season Start Date
Season Status
Season Type Code
Season Year
> To generate the list of Seasons replace {your_api_key} with your API key:
“`ruby
require ‘uri’
require ‘net/http’
require ‘openssl’
url = URI(“https://api.sportradar.us/nfl/official/trial/v5/en/league/seasons.xml?api_key={your_api_key}”)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body
“`
“`python
import http.client
conn = http.client.HTTPSConnection(“api.sportradar.us”)
conn.request(“GET”, “/nfl/official/trial/v5/en/league/seasons.xml?api_key={your_api_key}”)
res = conn.getresponse()
data = res.read()
print(data.decode(“utf-8”))
“`
“`shell
curl -X GET “https://api.sportradar.us/nfl/official/trial/v5/en/league/seasons.xml?api_key={your_api_key}”
“`
> The above command returns xml structured like
Update Frequency:
As Necessary
Content Type:
Raw XML or JSON
Draft Information Data Points:
Broadcast Channel
Broadcast Internet
Broadcast Network
Draft End Date
Draft Id
Draft Start Date
Draft Status
Draft Team Alias
Draft Team Id
Draft Team Market
Draft Team Name
Draft Year
Pick Compensatory
Pick Id
Pick Number
Pick Overall
Pick Traded
Round End Date
Round Id
Round Number
Round Start Date
Round Status
Trade Id
League Information Data Points:
Alias
Id
Name
Player Information Data Points:
Prospect Birth Place
Prospect Experience
Prospect First Name
Prospect Height
Prospect Id
Prospect Last Name
Prospect League Id
Prospect Name
Prospect Position
Prospect Publishable
Prospect Source Id
Prospect Top Prospect
Prospect Weight
Team Information Data Points:
Alias
Id
Market
Name
Sequence
Venue Information Data Points:
Address
City
Country
Name
State
> To generate a Team Draft Summary for the Team ID below replace {your_api_key} with your API key:
“`ruby
require ‘uri’
require ‘net/http’
require ‘openssl’
url = URI(“https://api.sportradar.us/draft/nfl/trial/v1/en/2019/teams/d5a2eb42-8065-4174-ab79-0a6fa820e35e/draft.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”, “/draft/nfl/trial/v1/en/2019/teams/d5a2eb42-8065-4174-ab79-0a6fa820e35e/draft.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/draft/nfl/trial/v1/en/2019/teams/d5a2eb42-8065-4174-ab79-0a6fa820e35e/draft.xml?api_key={your_api_key}”
“`
> The above command returns xml structured like
Update Frequency:
As Necessary
Content Type:
Raw XML or JSON
Franchise Information Data Points:
Alias
Id
Name
League Information Data Points:
Conference Alias
Conference Id
Conference Name
Division Alias
Division Id
Division Name
Player Information Data Points:
Abbreviated Name
Birth Date
Birth Place
College
College Conference
Draft Info Number
Draft Info Round
Draft Info Year
Draft Team Alias
Draft Team Id
Draft Team Market
Draft Team Name
Draft Team SR Id
First Name
Full Name
Height
High School
Id
Jersey Number
Last Name
Name Suffix
Position
Preferred Name
SR Id
Status
Weight
Team Information Data Points:
Alias
Coach First Name
Coach Full Name
Coach Id
Coach Last Name
Coach Name Suffix
Coach Position
Id
Market
Name
SR Id
Venue Data Points:
Address
Capacity
City
Country
Id
Name
Roof Type
SR Id
State
Surface
Zip
> To generate a team profile for the Team ID below replace {your_api_key} with your API key:
“`ruby
require ‘uri’
require ‘net/http’
require ‘openssl’
url = URI(“https://api.sportradar.us/nfl/official/trial/v5/en/teams/0d855753-ea21-4953-89f9-0e20aff9eb73/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”, “/nfl/official/trial/v5/en/teams/0d855753-ea21-4953-89f9-0e20aff9eb73/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/nfl/official/trial/v5/en/teams/0d855753-ea21-4953-89f9-0e20aff9eb73/profile.xml?api_key={your_api_key}”
“`
> The above command returns xml structured like
Update Frequency:
As Necessary
Content Type:
Raw XML or JSON
Franchise Information Data Points:
Alias
Id
Name
League Information Data Points:
Conference Alias
Conference Id
Conference Name
Division Alias
Division Id
Division Name
Player Information Data Points:
Abbreviated Name
Birth Date
Birth Place
College
College Conference
Draft Info Number
Draft Info Round
Draft Info Year
Draft Team Alias
Draft Team Id
Draft Team Market
Draft Team Name
Draft Team SR Id
First Name
Full Name
Height
High School
Id
Jersey Number
Last Name
Name Suffix
Position
Preferred Name
SR Id
Status
Weight
Team Information Data Points:
Alias
Coach First Name
Coach Full Name
Coach Id
Coach Last Name
Coach Name Suffix
Coach Position
Id
Market
Name
SR Id
Venue Data Points:
Address
Capacity
City
Country
Id
Name
Roof Type
SR Id
State
Surface
Zip
> To generate a Team Roster for the Team ID below replace {your_api_key} with your API key:
“`ruby
require ‘uri’
require ‘net/http’
require ‘openssl’
url = URI(“https://api.sportradar.us/nfl/official/trial/v5/en/teams/0d855753-ea21-4953-89f9-0e20aff9eb73/full_roster.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”, “/nfl/official/trial/v5/en/teams/0d855753-ea21-4953-89f9-0e20aff9eb73/full_roster.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/nfl/official/trial/v5/en/teams/0d855753-ea21-4953-89f9-0e20aff9eb73/full_roster.xml?api_key={your_api_key}”
“`
> The above command returns xml structured like
Update Frequency:
As Necessary
Content Type:
Raw XML or JSON
Draft Information Data Points:
Broadcast Channel
Broadcast Internet
Broadcast Network
Draft End Date
Draft Id
Draft Start Date
Draft Status
Draft Team Alias
Draft Team Id
Draft Team Market
Draft Team Name
Draft Year
League Information Data Points:
Alias
Conference Alias
Conference Id
Conference Name
Division Alias
Division Id
Division Name
Id
Name
Player Information Data Points:
Prospect Birth Place
Prospect Experience
Prospect First Name
Prospect Height
Prospect Id
Prospect Last Name
Prospect League Id
Prospect Name
Prospect Position
Prospect Publishable
Prospect Source Id
Prospect Top Prospect
Prospect Weight
Team Information Data Points:
Alias
Id
Market
Name
Venue Information Data Points:
Address
City
Country
Name
State
> To generate the Top Prospects for the year below replace {your_api_key} with your API key:
“`ruby
require ‘uri’
require ‘net/http’
require ‘openssl’
url = URI(“https://api.sportradar.us/draft/nfl/trial/v1/en/2019/top_prospects.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”, “/draft/nfl/trial/v1/en/2019/top_prospects.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/draft/nfl/trial/v1/en/2019/top_prospects.xml?api_key={your_api_key}”
“`
> The above command returns xml structured like
Update Frequency:
As Necessary
Content Type:
Raw XML or JSON
Draft Information Data Points:
Broadcast Channel
Broadcast Internet
Broadcast Network
Draft End Date
Draft Id
Draft Start Date
Draft Status
Draft Team Alias
Draft Team Id
Draft Team Market
Draft Team Name
Draft Year
Future Pick Round
Future Pick Year
Item Amount
Item Id
Item Type
Pick Compensatory
Pick Id
Pick Number
Pick Overall
Pick Supplemental
Round End Date
Round Id
Round Number
Round Start Date
Trade Complete
Trade Id
Trade Sequence
Transaction Id
League Information Data Points:
Alias
Id
Name
Player Information Data Points:
First Name
Id
Last Name
Position
Source Id
SR Id
Team Information Data Points:
Alias
Coach First Name
Coach Id
Coach Last Name
Coach Source Id
Team Direction
Id
Market
Name
Venue Information Data Points:
Address
City
Country
Name
State
> To generate the Trades for the year below replace {your_api_key} with your API key:
“`ruby
require ‘uri’
require ‘net/http’
require ‘openssl’
url = URI(“https://api.sportradar.us/draft/nfl/trial/v1/en/2019/trades.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”, “/draft/nfl/trial/v1/en/2019/trades.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/draft/nfl/trial/v1/en/2019/trades.xml?api_key={your_api_key}”
“`
> The above command returns xml structured like
Update Frequency:
Updated shortly before the game, but may be updated during or post game.
Content Type:
Raw XML or JSON
Depth Chart Data Points:
Position Name
Depth
League Information Data Points:
Season Id
Season Name
Season Type
Season Year
Week Id
Week Sequence
Week Title
Player Data Points:
Full Name
Id
Jersey Number
Position
SR Id
Team Information Data Points:
Alias
Id
Market
Name
SR Id
> To generate the Weekly Depth Charts enter the Year, Season, Week below, and replace {your_api_key} with your API key:
“`ruby
require ‘uri’
require ‘net/http’
require ‘openssl’
url = URI(“https://api.sportradar.us/nfl/official/trial/v5/en/seasons/2019/REG/02/depth_charts.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”, “/nfl/official/trial/v5/en/seasons/2019/REG/02/depth_charts.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/nfl/official/trial/v5/en/seasons/2019/REG/02/depth_charts.xml?api_key={your_api_key}”
“`
> The above command returns xml structured like
Update Frequency:
As Necessary
Content Type:
Raw XML or JSON
Injury Data Points:
Status
Status Date
Practice Status
Description
League Information Data Points:
Season Id
Season Name
Season Type
Season Year
Week Id
Week Sequence
Week Title
Player Data Points:
Full Name
Id
Jersey Number
Position
SR Id
Team Information Data Points:
Alias
Id
Market
Name
SR Id
> To generate the Weekly Injuries enter the Year, Season, Week below, and replace {your_api_key} with your API key:
“`ruby
require ‘uri’
require ‘net/http’
require ‘openssl’
url = URI(“https://api.sportradar.us/nfl/official/trial/v5/en/seasons/2019/REG/02/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”, “/nfl/official/trial/v5/en/seasons/2019/REG/02/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/nfl/official/trial/v5/en/seasons/2019/REG/02/injuries.xml?api_key={your_api_key}”
“`
> The above command returns xml structured like
Update Frequency:
As Necessary
Content Type:
Raw XML or JSON
Boxscore Information Data Points:
Attendance
Away Team Overtime Points
Away Team Points for Quarter
Away Team Total Points
Home Team Overtime Points
Home Team Points for Quarter
Home Team Total Points
Overtime Id
Overtime Number
Overtime Sequence
Quarter Id
Quarter Number
Quarter Sequence
Game Information Data Points:
Away Team Alias
Away Team Full Name
Away Team Game Number
Away Team Id
Away Team Name
Away Team SR Id
Broadcast Internet
Broadcast Network
Broadcast Satellite
Entry Mode
Home Team Alias
Home Team Full Name
Home Team Game Number
Home Team Id
Home Team Name
Home Team SR Id
Id
Number
Scheduled Start Date/Time
SR Id
Status
Weather
League Information Data Points:
Season Id
Season Name
Season Type
Season Year
Week Id
Week Sequence
Week Title
Venue Data Points:
Address
Capacity
City
Country
Id
Name
Roof Type
SR Id
State
Surface
Zip
> To generate the Weekly Schedule for the Year, Season, and Week below replace {your_api_key} with your API key:
“`ruby
require ‘uri’
require ‘net/http’
require ‘openssl’
url = URI(“https://api.sportradar.us/nfl/official/trial/v5/en/games/2019/REG/02/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”, “/nfl/official/trial/v5/en/games/2019/REG/02/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/nfl/official/trial/v5/en/games/2019/REG/02/schedule.xml?api_key={your_api_key}”
“`
> The above command returns xml structured like
For Java, we have also provided a
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 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 Draft Picks
“`ruby
require ‘uri’
require ‘net/http’
require ‘openssl’
url = URI(“https://api.sportradar.us/draft/nfl/trial/stream/en/picks/subscribe?api_key={your_api_key}”)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body
“`
“`python
import requests
import json
r = requests.get(“https://api.sportradar.com/draft/nfl/trial/stream/en/picks/subscribe”,
params = {‘api_key’: ‘your_api_key’},
allow_redirects=False)
redirect_url = r.headers[‘Location’]
r = requests.get(redirect_url, stream=True)
for line in r.iter_lines():
# filter out keep-alive new lines
if line:
decoded_line = line.decode(‘utf-8’)
print(json.loads(decoded_line))
“`
“`shell
curl -L GET ‘api.sportradar.us/draft/nfl/trial/stream/en/picks/subscribe?api_key={your_api_key}’
“`
> The above command returns json like this.
Provides pre-draft pick order with real-time (push enabled) pick selections during the draft.
https://api.sportradar.us/draft/nfl/`{access_level}`/stream/`{language_code}`/picks/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(“https://api.sportradar.us/draft/nfl/trial/stream/en/picks/subscribe?api_key={your_api_key}&draft=sd:draft:04b11293-240e-4340-8f4f-ded6c6281fe9&league=NFL”)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body
“`
“`python
import requests
import json
r = requests.get(“https://api.sportradar.com/draft/nfl/trial/stream/en/picks/subscribe”,
params = {‘api_key’: ‘your_api_key’, ‘draft’: ‘sd:draft:04b11293-240e-4340-8f4f-ded6c6281fe9’, ‘league’: ‘NFL’},
allow_redirects=False)
redirect_url = r.headers[‘Location’]
r = requests.get(redirect_url, stream=True)
for line in r.iter_lines():
# filter out keep-alive new lines
if line:
decoded_line = line.decode(‘utf-8’)
print(json.loads(decoded_line))
“`
“`shell
curl -L GET ‘api.sportradar.us/draft/nfl/trial/stream/en/picks/subscribe?api_key={your_api_key}&draft=sd:draft:04b11293-240e-4340-8f4f-ded6c6281fe9&league=NFL’
“`
In addition to the URL parameters listed above, you can filter the Pick 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 |
| ——— | ———– |
| `draft` | Draft id expressed as: sd:draft:{draft_id}.
Example: draft=sd:draft:04b11293-240e-4340-8f4f-ded6c6281fe9 |
| `locale` | Locale expressed as 2 letter code: locale={language_code}
Example: locale=en |
Return to API map
## Push Draft Trades
“`ruby
require ‘uri’
require ‘net/http’
require ‘openssl’
url = URI(“https://api.sportradar.us/draft/nfl/trial/stream/en/trades/subscribe?api_key={your_api_key}”)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body
“`
“`python
import requests
import json
r = requests.get(“https://api.sportradar.com/draft/nfl/trial/stream/en/trades/subscribe”,
params = {‘api_key’: ‘your_api_key’},
allow_redirects=False)
redirect_url = r.headers[‘Location’]
r = requests.get(redirect_url, stream=True)
for line in r.iter_lines():
# filter out keep-alive new lines
if line:
decoded_line = line.decode(‘utf-8’)
print(json.loads(decoded_line))
“`
“`shell
curl -L GET ‘api.sportradar.us/draft/nfl/trial/stream/en/trades/subscribe?api_key={your_api_key}’
“`
> The above command returns json like this.
Provides summary details of all in-draft trades in real-time.
https://api.sportradar.us/draft/nfl/`{access_level}`/stream/`{language_code}`/trades/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(“https://api.sportradar.us/draft/nfl/trial/stream/en/trades/subscribe?api_key={your_api_key}&draft=sd:draft:04b11293-240e-4340-8f4f-ded6c6281fe9&league=NFL”)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body
“`
“`python
import requests
import json
r = requests.get(“https://api.sportradar.com/draft/nfl/trial/stream/en/trades/subscribe”,
params = {‘api_key’: ‘your_api_key’, ‘draft’: ‘sd:draft:04b11293-240e-4340-8f4f-ded6c6281fe9’, ‘league’: ‘NFL’},
allow_redirects=False)
redirect_url = r.headers[‘Location’]
r = requests.get(redirect_url, stream=True)
for line in r.iter_lines():
# filter out keep-alive new lines
if line:
decoded_line = line.decode(‘utf-8’)
print(json.loads(decoded_line))
“`
“`shell
curl -L GET ‘api.sportradar.us/draft/nfl/trial/stream/en/trades/subscribe?api_key={your_api_key}&draft=sd:draft:04b11293-240e-4340-8f4f-ded6c6281fe9&league=NFL’
“`
In addition to the URL parameters listed above, you can filter the Trades 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 |
| ——— | ———– |
| `draft` | Draft id expressed as: sd:draft:{draft_id}.
Example: draft=sd:draft:04b11293-240e-4340-8f4f-ded6c6281fe9 |
| `locale` | Locale expressed as 2 letter code: locale={language_code}
Example: locale=en |
Return to API map
## Push Events
“`ruby
require ‘uri’
require ‘net/http’
require ‘openssl’
url = URI(“https://api.sportradar.us/nfl/official/trial/stream/en/events/subscribe?api_key={your_api_key}”)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body
“`
“`python
import requests
import json
r = requests.get(“https://api.sportradar.com/nfl/official/trial/stream/en/events/subscribe”,
params = {‘api_key’: ‘your_api_key’},
allow_redirects=False)
redirect_url = r.headers[‘Location’]
r = requests.get(redirect_url, stream=True)
for line in r.iter_lines():
# filter out keep-alive new lines
if line:
decoded_line = line.decode(‘utf-8’)
print(json.loads(decoded_line))
“`
“`shell
curl -L GET ‘api.sportradar.us/nfl/official/trial/stream/en/events/subscribe?api_key={your_api_key}’
“`
> The above command returns json like this.
Provides detailed, real-time information on every live game event.
https://api.sportradar.us/nfl/official/`{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(“https://api.sportradar.us/nfl/official/trial/stream/en/events/subscribe?api_key={your_api_key}&status=inprogress&match=sd:match:673b459c-7506-4c11-9273-1b9502537f1d”)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body
“`
“`python
import requests
import json
r = requests.get(“https://api.sportradar.com/nfl/official/trial/stream/en/events/subscribe”,
params = {‘api_key’: ‘your_api_key’, ‘status’: ‘inprogress’, ‘match’: ‘sd:match:673b459c-7506-4c11-9273-1b9502537f1d’},
allow_redirects=False)
redirect_url = r.headers[‘Location’]
r = requests.get(redirect_url, stream=True)
for line in r.iter_lines():
# filter out keep-alive new lines
if line:
decoded_line = line.decode(‘utf-8’)
print(json.loads(decoded_line))
“`
“`shell
curl -L GET ‘api.sportradar.us/nfl/official/trial/stream/en/events/subscribe?api_key={your_api_key}&status=inprogress&match=sd:match:673b459c-7506-4c11-9273-1b9502537f1d’
“`
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=redzone
Valid event categories: redzone, two_minute, scoring_play, big_play, turnover |
| `event_type` | Event type expressed as: {event_type}.
Example: event_type=timeout
Valid event types: setup, timeout, tv_timeout, two_minute_warning, comment, period_end, game_over |
| `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:673b459c-7506-4c11-9273-1b9502537f1d |
| `status` | Status type expressed as: inprogress or created.
Example: status=inprogress |
| `team` | Team id expressed as: sd:team:{team_id}.
Example: sd:team:4415b0a7-0f24-11e2-8525-18a905767e44 |
Return to API map
## Push Statistics
“`ruby
require ‘uri’
require ‘net/http’
require ‘openssl’
url = URI(“https://api.sportradar.us/nfl/official/trial/stream/en/statistics/subscribe?api_key={your_api_key}”)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body
“`
“`python
import requests
import json
r = requests.get(“https://api.sportradar.com/nfl/official/trial/stream/en/statistics/subscribe”,
params = {‘api_key’: ‘your_api_key’},
allow_redirects=False)
redirect_url = r.headers[‘Location’]
r = requests.get(redirect_url, stream=True)
for line in r.iter_lines():
# filter out keep-alive new lines
if line:
decoded_line = line.decode(‘utf-8’)
print(json.loads(decoded_line))
“`
“`shell
curl -L GET ‘api.sportradar.us/nfl/official/trial/stream/en/statistics/subscribe?api_key={your_api_key}’
“`
> The above command returns json like this.
Provides detailed, real-time game stats at the team and player level for all live games.
https://api.sportradar.us/nfl/official/`{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(“https://api.sportradar.us/nfl/official/trial/stream/en/statistics/subscribe?api_key={your_api_key}&status=inprogress&match=sd:match:673b459c-7506-4c11-9273-1b9502537f1d”)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body
“`
“`python
import requests
import json
r = requests.get(“https://api.sportradar.com/nfl/official/trial/stream/en/statistics/subscribe”,
params = {‘api_key’: ‘your_api_key’, ‘status’: ‘inprogress’, ‘match’: ‘match=sd:match:673b459c-7506-4c11-9273-1b9502537f1d’},
allow_redirects=False)
redirect_url = r.headers[‘Location’]
r = requests.get(redirect_url, stream=True)
for line in r.iter_lines():
# filter out keep-alive new lines
if line:
decoded_line = line.decode(‘utf-8’)
print(json.loads(decoded_line))
“`
“`shell
curl -L GET ‘api.sportradar.us/nfl/official/trial/stream/en/statistics/subscribe?api_key={your_api_key}&status=inprogress&match=sd:match:673b459c-7506-4c11-9273-1b9502537f1d’
“`
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:4d1c4eb9-69d4-46fc-a42b-12be98227964 |
| `participant` | Team or player id expressed as: sd:team:{team_id} or sd:player:{player_id} Examples: sd:team:82cf9565-6eb9-4f01-bdbd-5aa0d472fcd9 or sd:player:e3181493-6a2a-4e95-aa6f-3fc1ddeb7512 |
| `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: When are the game scores added to the Schedule feeds?
A: Game and period scores will be added to the feed when the game status changes to complete.
Q: What are the season types and their descriptions?
A: Here are the valid season types and their descriptions:
- PRE – Pre-season
- REG – Regular season
- PST – Post-season
Q: What are the player positions I can expect to see?
A: Below is a list of player positions that appear in our feeds and their descriptions. Note that additional decommissioned positions may appear in older seasons.
- C – Center
- CB – Cornerback
- DB – Defensive Back
- DE – Defensive End
- DL – Defensive Lineman
- DT – Defensive Tackle
- FB – Fullback
- FS – Free Safety
- G – Offensive Guard
- K – Kicker
- LB – Linebacker
- LS – Long Snapper
- MLB – Middle Linebacker
- NT – Nose Tackle
- OG – Offensive Guard
- OL – Offensive Lineman
- OLB – Outside Linebacker
- OT – Offensive Tackle
- P – Punter
- QB – Quarterback
- RB – Running Back
- SAF – Safety
- SS – Strong Safety
- T – Offensive Tackle
- TE – Tight End
- WR – Wide Receiver
Q: How are player positions handled in the feeds?
A: Players may receive a “game” position, that position may not match the position listed on the player’s profile outside the game.
Q: What are the player statuses and their descriptions?
A: Below is a list of the currently valid player statuses and their descriptions. Note that additional decommissioned statuses may appear in older seasons.
- ACT – Active
- EXE – Exempt
- IR – Injured Reserve
- IRD – Injured Reserve – Designated for Return
- NON – Non-football related injured reserve
- NWT – Not with team
- PRA – Practice Squad
- PUP – Physically unable to perform
- RET – Retired
- SUS – Suspended
- UDF – Unsigned draft pick
Q: What are the player game statuses and when can I expect them to populate?
A: Below is a list of currently valid player game statuses.
deactivated
dnp
(Did Not Play)played
started
These player game statuses will appear within the Game Roster feed exclusively. When a game is set to created
all players are marked as played
. At the conclusion of the game players are adjusted to deactivated
,dnp
, and played
as necessary.
Q: What are the venue roof types I can expect to see?
A: Here are the valid roof types: outdoor, dome, or retractable_dome
Q: What are the venue surfaces I can expect to see?
A: Here are the valid venue surfaces: turf or artifical
Q: What are the game statuses and their descriptions?
A: Here are the valid game statuses and their descriptions:
- scheduled – The game is scheduled to occur.
- created – Game data (rosters, officials, etc) are being pre-loaded in preparation for the game.
- 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. No makeup game will be played as a result.
- postponed – The game has been postponed, to be made up at another day and time. Once the makeup game is announced, a new game and ID will be created and scheduled on the announced makeup date. You should request the scheduled feed(s) regularly to identify the re-scheduled makeup game(s).
- delayed – The scheduled game, or a game that was in progress, is now delayed for some reason.
- flex-schedule – The game is currently scheduled to occur on a specific date and time, however, it will more than likely be moved to a different time for broadcast purposes.
- time-tbd – The game has been scheduled, but a time has yet to be announced.
Q: What are the start and end reasons for a drive that I can expect to see in the feeds?
A: Here are the end reasons for a drive:
- UNKNOWN – Start/End
- Touchdown – Start/End
- Safety – End
- Field Goal – Start/End
- Missed FG – Start/End
- Blocked FG – Start/End
- Blocked FG, Downs – Start/End
- Blocked FG, Safety – End
- Punt – Start/End
- Blocked Punt – Start/End
- Blocked Punt, Downs – Start/End
- Blocked Punt, Safety – End
- Downs – Start/End
- Interception – Start/End
- Fumble – Start/End
- Fumble, Safety – End
- Missed FG – End
- Muffed FG – Start/End
- Muffed Punt – Start
- Muffed Kickoff – Start
- Kickoff – Start
- Own Kickoff – Start
- Onside Kick – Start
- Kickoff, No Play – Start
- End of Half – End
- End of Game – End
Q: What are the event types I can expect to see in the feeds?
A: Here are the valid event types:
- setup
- timeout
- comment
- period_end
- game_over
Q: What are the play types I can expect to see in the feeds?
A: Here are the valid play types:
- pass
- rush
- faircatch_kick
- extra_point
- conversion
- free_kick
- kickoff
- punt
- field_goal
- penalty
Q: What are the point after score types I can expect to see in the feeds?
A: Here are the valid score types:
- extra_point
- conversion
- penalty
Q: What are the possible official assignments I can expect to see in the feeds?
A: Here are the valid official assignments:
- referee
- umpire
- headlinesman
- linejudge
- fieldjudge
- sidejudge
- backjudge
- downjudge
- replayofficial
Q: How are assisted sacks calculated in the feeds?
A: Assisted sacks are credited when two player sack the quarterback. We provide this in the play-by-play feed and game boxscore as an integer. Those sacks are rolled up into the sacks stat and can be a float, so if a player had 3 ast_sacks and 2 sacks in a game his game-level sack number would be 3.5.
Q: What are the possible injury status values I can expect to see in the feeds?
A: Here are the valid injury status values:
- Questionable
- Doubtful
- Out
Q: What are the possible detail categories I can expect to see in the feeds?
A: Here are the valid detail categories:
- aborted_snap
- aborted_snap_recovery
- blocked_kick
- blocked_kick_recovery
- defensive_conversion_fumble_recovery
- defensive_conversion_interception_recovery
- defensive_conversion_recovery
- downed
- extra_point_attempt
- fair_catch
- field_goal
- field_goal_return
- forced_fumble
- fumble
- fumble_out_of_bounds
- kick_off
- kick_off_return
- lateral
- muffed_kick
- onside_kick_off
- onside_kick_off_recovery
- opponent_fumble_recovery
- out_of_bounds
- own_fumble_recovery
- pass_completion
- pass_incompletion
- pass_interception
- pass_interception_return
- pass_reception
- penalty
- punt
- punt_return
- review
- rush
- sack
- safety
- tackle
- touchback
- touchdown
- two_point_attempt
- two_point_pass
- two_point_return
- two_point_rush
Q: What are subjective stats and how are they handled?
A: Subjective stats are variety of data points that go beyond typical stats like yards, pass attempts, and touchdowns. Due to how the data is collected, it requires an operator to re-watch the game, thus there is a delay on when it is provided in the feeds.
These data points are delivered the following Tuesday by the end of the day (6:00 pm ET) and will show up in the existing NFL API feeds. The data is available in both XML and JSON feed formats. As the demand rises for additional data points we will continue to refine the data set collected.
Q: Which statistics are subjective?
A: Here are the valid subjective statistics:
- Batted Passes
- Broken Tackles
- Catchable Pass
- Defender Blitz
- Defensive Completion
- Defensive Target
- Dropped Pass
- Fake Field Goal
- Fake Punt
- Hang Time
- Hash Mark
- Huddle
- Hurry
- Incompletion Type
- Kneel down
- Knockdown
- Left Tightends
- Men in Box
- Missed Tackle
- On Target Throws
- Onside Attempt
- Onside Success
- Pass Route
- Play Action
- Play Direction
- Players Rushed
- Pocket Location
- Pocket Time
- QB at Snap
- QB Blitz
- QB Hurry
- QB Knockdown
- Right Tightends
- Run Pass Option
- Running Lane
- Scramble
- Screen Pass
- TE Location
- Team Blitz
- Yards After Contact
Q: When can I expect NFL draftees to populate in the Prospects endpoint?
A: Prospects are typically added in mid to late March, after the draft order is determined by the NFL.
Q: How is the data within the Draft feeds populated?
A: Sportradar’s experts seed players from our NCAA database. We use a variety of sources to generate a comprehensive list of players who expect to be drafted. The list is typically 500+ players.
Q: How is an NFL prospect specified as a top prospect?
A: Top prospects are subjective. We use the same sources for top prospects as we do when creating the initial draft pool.
Return to top
## NFL v5 API Map To best utilize the NFL API v5, you will need several parameters to create your API calls. The map below illustrates how you can obtain the parameters you need. >>To find the team a player was drafted by: >>The Alias maps to the team that drafted the player. >>To find a teams number of defensive sacks: >>The teams number of defensive sacks is displayed. Primary and additional feeds only require dates or human-readable parameters, while other feeds require a global unique identifier (GUID) to identify the game, team, or player that the feed will describe. The primary feeds provide GUIDs for games and teams, while games and teams provide GUIDS for players.## Daily Change Log Provides IDs and timestamps for teams, players, game statistics, schedules, and standings that have been modified on a given date. To receive the data updates, use these unique IDs to pull relevant API feeds.> To generate the Daily Change Log replace {your_api_key} with your API key: “`ruby require ‘uri’ require ‘net/http’ require ‘openssl’ url = URI(“https://api.sportradar.us/nfl/official/trial/v5/en/league/2019/05/24/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”, “/nfl/official/trial/v5/en/league/2019/05/24/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/nfl/official/trial/v5/en/league/2019/05/24/changes.xml?api_key={your_api_key}” “` > The above command returns xml structured like this . Access the Daily Change Log feed by replacing the parameters in the following URL: https://api.sportradar.us/nfl/official/`{access_level}`/`{version}`/`{language_code}`/league/`{year}`/`{month}`/`{day}`/changes.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | ——— | ———– | | `access_level` | Defines the access level of your API key as Production (production), or Trial (trial). | | `version` | Version number of the API you are accessing (current version: v5). | | `language_code` | 2 letter code for supported languages: en (English), de (German), fr (French), it (Italian), es (Spanish), ja (Japanese), nl (Dutch), da (Danish), se (Swedish), no (Norwegian), fi (Finnish), or tr (Turkish). | | `year` | Year in 4 digit format (YYYY). | | `month` | Month in 2 digit format (MM). | | `day` | Day of month 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. https://feed.elasticstats.com/schema/nfl/premium/changelog-v5.0.xsd Return to API map ## Draft Summary Provides pre-draft pick order with live pick selections during the draft. Displays information on draft rounds, picks, teams, and prospects for a given draft year.> To generate the Draft Summary for 2018 replace {your_api_key} with your API key: “`ruby require ‘uri’ require ‘net/http’ require ‘openssl’ url = URI(“https://api.sportradar.us/draft/nfl/trial/v1/en/2019/draft.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”, “/draft/nfl/trial/v1/en/2019/draft.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/draft/nfl/trial/v1/en/2019/draft.xml?api_key={your_api_key}” “` > The above command returns xml structured like this . Access the Draft Summary feed by replacing the parameters in the following URL: https://api.sportradar.us/draft/nfl/`{access_level}`/`{version}`/`{language_code}`/`{year}`/draft.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | ——— | ———– | | `access_level` | Defines the access level of your API key as Production (production), or Trial (trial). | | `version` | Version number of the Draft API you are accessing (current version: v1). NOTE: All draft feeds are currently v1. | | `language_code` | 2 letter code for supported languages: en (English). | | `year` | Year in 4 digit format (YYYY). | | `format` | xml or json. | | `your_api_key` | Your API key. | To retrieve the XML Schema Definition (.XSD) for the Draft Summary, use the following URL. https://feed.elasticstats.com/schema/draft/summary-v1.0.xsd Return to API map ## Game Boxscore Provides game scoring information for each team, including complete play-by-play information for all scoring drives.> To generate the Game Boxscore for the Game ID below replace {your_api_key} with your API key: “`ruby require ‘uri’ require ‘net/http’ require ‘openssl’ url = URI(“https://api.sportradar.us/nfl/official/trial/v5/en/games/030d37cf-b896-4f10-b16e-2a5120fef6cf/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”, “/nfl/official/trial/v5/en/games/030d37cf-b896-4f10-b16e-2a5120fef6cf/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/nfl/official/trial/v5/en/games/030d37cf-b896-4f10-b16e-2a5120fef6cf/boxscore.xml?api_key={your_api_key}” “` > The above command returns xml structured like this . Access the Game Boxscore feed by replacing the parameters in the following URL: https://api.sportradar.us/nfl/official/`{access_level}`/`{version}`/`{language_code}`/games/`{game_id}`/boxscore.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | ——— | ———– | | `access_level` | Defines the access level of your API key as Production (production), or Trial (trial). | | `version` | Version number of the API you are accessing (current version: v5). | | `language_code` | 2 letter code for supported languages: en (English), de (German), fr (French), it (Italian), es (Spanish), ja (Japanese), nl (Dutch), da (Danish), se (Swedish), no (Norwegian), fi (Finnish), or tr (Turkish). | | `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. https://feed.elasticstats.com/schema/nfl/premium/boxscore-v5.0.xsd Return to API map ## Game Roster Provides complete game roster information for each team, including game status and player profile data.> To generate the Game Roster for the Game ID below replace {your_api_key} with your API key: “`ruby require ‘uri’ require ‘net/http’ require ‘openssl’ url = URI(“https://api.sportradar.us/nfl/official/trial/v5/en/games/030d37cf-b896-4f10-b16e-2a5120fef6cf/roster.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”, “/nfl/official/trial/v5/en/games/030d37cf-b896-4f10-b16e-2a5120fef6cf/roster.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/nfl/official/trial/v5/en/games/030d37cf-b896-4f10-b16e-2a5120fef6cf/roster.xml?api_key={your_api_key}” “` > The above command returns xml structured like this . Access the Game Roster feed by replacing the parameters in the following URL: https://api.sportradar.us/nfl/official/`{access_level}`/`{version}`/`{language_code}`/games/`{game_id}`/roster.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | ——— | ———– | | `access_level` | Defines the access level of your API key as Production (production), or Trial (trial). | | `version` | Version number of the API you are accessing (current version: v5). | | `language_code` | 2 letter code for supported languages: en (English), de (German), fr (French), it (Italian), es (Spanish), ja (Japanese), nl (Dutch), da (Danish), se (Swedish), no (Norwegian), fi (Finnish), or tr (Turkish). | | `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 Roster use the following URL. https://feed.elasticstats.com/schema/nfl/premium/roster-v5.0.xsd Return to API map ## Game Statistics Provides extensive team and player level game statistics for each team.> To generate the Game Statistics for the Game ID below replace {your_api_key} with your API key: “`ruby require ‘uri’ require ‘net/http’ require ‘openssl’ url = URI(“https://api.sportradar.us/nfl/official/trial/v5/en/games/030d37cf-b896-4f10-b16e-2a5120fef6cf/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”, “/nfl/official/trial/v5/en/games/030d37cf-b896-4f10-b16e-2a5120fef6cf/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/nfl/official/trial/v5/en/games/030d37cf-b896-4f10-b16e-2a5120fef6cf/statistics.xml?api_key={your_api_key}” “` > The above command returns xml structured like this . Access the Game Statistics feed by replacing the parameters in the following URL: https://api.sportradar.us/nfl/official/`{access_level}`/`{version}`/`{language_code}`/games/`{game_id}`/statistics.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | ——— | ———– | | `access_level` | Defines the access level of your API key as Production (production), or Trial (trial). | | `version` | Version number of the API you are accessing (current version: v5). | | `language_code` | 2 letter code for supported languages: en (English), de (German), fr (French), it (Italian), es (Spanish), ja (Japanese), nl (Dutch), da (Danish), se (Swedish), no (Norwegian), fi (Finnish), or tr (Turkish). | | `game_id` | ID for a given game. | | `format` | xml or json. | | `your_api_key` | Your API key. | To retrieve the XML Schema Definition (.XSD) for Game Statistics use the following URL. https://feed.elasticstats.com/schema/nfl/premium/statistics-v5.0.xsd Return to API map ## League Hierarchy Provides top-level information for each team, including conference and division distinction, venue information, and team colors.> To generate the League Hierarchy replace {your_api_key} with your API key: “`ruby require ‘uri’ require ‘net/http’ require ‘openssl’ url = URI(“https://api.sportradar.us/nfl/official/trial/v5/en/league/hierarchy.xml?api_key={your_api_key}”) http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body “` “`python import http.client conn = http.client.HTTPSConnection(“api.sportradar.us”) conn.request(“GET”, “/nfl/official/trial/v5/en/league/hierarchy.xml?api_key={your_api_key}”) res = conn.getresponse() data = res.read() print(data.decode(“utf-8”)) “` “`shell curl -X GET “https://api.sportradar.us/nfl/official/trial/v5/en/league/hierarchy.xml?api_key={your_api_key}” “` > The above command returns xml structured like this . Access the League Hierarchy feed by replacing the parameters in the following URL: https://api.sportradar.us/nfl/official/`{access_level}`/`{version}`/`{language_code}`/league/hierarchy.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | ——— | ———– | | `access_level` | Defines the access level of your API key as Production (production), or Trial (trial). | | `version` | Version number of the API you are accessing (current version: v5). | | `language_code` | 2 letter code for supported languages: en (English), de (German), fr (French), it (Italian), es (Spanish), ja (Japanese), nl (Dutch), da (Danish), se (Swedish), no (Norwegian), fi (Finnish), or tr (Turkish). | | `format` | xml or json. | | `your_api_key` | Your API key. | To retrieve the XML Schema Definition (.XSD) for the League Hierarchy use the following URL. https://feed.elasticstats.com/schema/nfl/premium/hierarchy-v5.0.xsd Return to API map ## Play-By-Play Provides a live play-by-play timeline, including possession and location information as well as all team and player statistics earned on each play.> To generate the Play-By-Play for the Game ID below replace {your_api_key} with your API key: “`ruby require ‘uri’ require ‘net/http’ require ‘openssl’ url = URI(“https://api.sportradar.us/nfl/official/trial/v5/en/games/030d37cf-b896-4f10-b16e-2a5120fef6cf/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”, “/nfl/official/trial/v5/en/games/030d37cf-b896-4f10-b16e-2a5120fef6cf/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/nfl/official/trial/v5/en/games/030d37cf-b896-4f10-b16e-2a5120fef6cf/pbp.xml?api_key={your_api_key}” “` > The above command returns xml structured like this . Access the Play-By-Play feed by replacing the parameters in the following URL: https://api.sportradar.us/nfl/official/`{access_level}`/`{version}`/`{language_code}`/games/`{game_id}`/pbp.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | ——— | ———– | | `access_level` | Defines the access level of your API key as Production (production), or Trial (trial). | | `version` | Version number of the API you are accessing (current version: v5). | | `language_code` | 2 letter code for supported languages: en (English), de (German), fr (French), it (Italian), es (Spanish), ja (Japanese), nl (Dutch), da (Danish), se (Swedish), no (Norwegian), fi (Finnish), or tr (Turkish). | | `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. https://feed.elasticstats.com/schema/nfl/premium/pbp-v5.0.xsd Return to API map ## Player Profile Provides player biographical information, draft information, and seasonal statistics for the regular season and postseason.> To generate a Player Profile for the Player ID below replace {your_api_key} with your API key: “`ruby require ‘uri’ require ‘net/http’ require ‘openssl’ url = URI(“https://api.sportradar.us/nfl/official/trial/v5/en/players/0acdcd3b-5442-4311-a139-ae7c506faf88/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”, “/nfl/official/trial/v5/en/players/0acdcd3b-5442-4311-a139-ae7c506faf88/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/nfl/official/trial/v5/en/players/0acdcd3b-5442-4311-a139-ae7c506faf88/profile.xml?api_key={your_api_key}” “` > The above command returns xml structured like this . Access the Player Profile feed by replacing the parameters in the following URL: https://api.sportradar.us/nfl/official/`{access_level}`/`{version}`/`{language_code}`/players/`{player_id}`/profile.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | ——— | ———– | | `access_level` | Defines the access level of your API key as Production (production), or Trial (trial). | | `version` | Version number of the API you are accessing (current version: v5). | | `language_code` | 2 letter code for supported languages: en (English), de (German), fr (French), it (Italian), es (Spanish), ja (Japanese), nl (Dutch), da (Danish), se (Swedish), no (Norwegian), fi (Finnish), or tr (Turkish). | | `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. https://feed.elasticstats.com/schema/nfl/premium/profile-v5.0.xsd Return to API map ## Prospects Provides a list of upcoming or historical draft prospects for a given year.> To generate the Prospects for the year below replace {your_api_key} with your API key: “`ruby require ‘uri’ require ‘net/http’ require ‘openssl’ url = URI(“https://api.sportradar.us/draft/nfl/trial/v1/en/2019/prospects.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”, “/draft/nfl/trial/v1/en/2019/prospects.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/draft/nfl/trial/v1/en/2019/prospects.xml?api_key={your_api_key}” “` > The above command returns xml structured like this . Access the Prospects feed by replacing the parameters in the following URL: https://api.sportradar.us/draft/nfl/`{access_level}`/`{version}`/`{language_code}`/`{year}`/prospects.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | ——— | ———– | | `access_level` | Defines the access level of your API key as Production (production), or Trial (trial). | | `version` | Version number of the Draft API you are accessing (current version: v1). NOTE: All draft feeds are currently v1. | | `language_code` | 2 letter code for supported languages: en (English). | | `year` | Year in 4 digit format (YYYY). | | `format` | xml or json. | | `your_api_key` | Your API key. | To retrieve the XML Schema Definition (.XSD) for the Prospects use the following URL. https://feed.elasticstats.com/schema/draft/prospects-v1.0.xsd Return to API map ## Season Schedule Provides complete schedule information for a given season, including venue and broadcast info, and scoring results by quarter.> To generate the Schedule for the Season and Year below replace {your_api_key} with your API key: “`ruby require ‘uri’ require ‘net/http’ require ‘openssl’ url = URI(“https://api.sportradar.us/nfl/official/trial/v5/en/games/2019/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”, “/nfl/official/trial/v5/en/games/2019/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/nfl/official/trial/v5/en/games/2019/reg/schedule.xml?api_key={your_api_key}” “` > The above command returns xml structured like this . Access the Season Schedule feed by replacing the parameters in the following URL: https://api.sportradar.us/nfl/official/`{access_level}`/`{version}`/`{language_code}`/games/`{year}`/`{nfl_season}`/schedule.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | ——— | ———– | | `access_level` | Defines the access level of your API key as Production (production), or Trial (trial). | | `version` | Version number of the API you are accessing (current version: v5). | | `language_code` | 2 letter code for supported languages: en (English), de (German), fr (French), it (Italian), es (Spanish), ja (Japanese), nl (Dutch), da (Danish), se (Swedish), no (Norwegian), fi (Finnish), or tr (Turkish). | | `year` | Year in 4 digit format (YYYY). | | `nfl_season` | Preseason (PRE), Regular Season (REG), or Post-Season (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. https://feed.elasticstats.com/schema/nfl/premium/schedule-v5.0.xsd Return to API map ## Seasonal Statistics Provides complete team and player seasonal statistics for a given season and season type.> To generate the Seasonal Statistics for the Season, Year, and Game ID below replace {your_api_key} with your API key: “`ruby require ‘uri’ require ‘net/http’ require ‘openssl’ url = URI(“https://api.sportradar.us/nfl/official/trial/v5/en/seasons/2019/REG/teams/0d855753-ea21-4953-89f9-0e20aff9eb73/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”, “/nfl/official/trial/v5/en/seasons/2019/REG/teams/0d855753-ea21-4953-89f9-0e20aff9eb73/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/nfl/official/trial/v5/en/seasons/2019/REG/teams/0d855753-ea21-4953-89f9-0e20aff9eb73/statistics.xml?api_key={your_api_key}” “` > The above command returns xml structured like this . Access the Seasonal Statistics feed by replacing the parameters in the following URL: https://api.sportradar.us/nfl/official/`{access_level}`/`{version}`/`{language_code}`/seasons/`{year}`/`{nfl_season}`/teams/`{team_id}`/statistics.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | ——— | ———– | | `access_level` | Defines the access level of your API key as Production (production), or Trial (trial). | | `version` | Version number of the API you are accessing (current version: v5). | | `language_code` | 2 letter code for supported languages: en (English), de (German), fr (French), it (Italian), es (Spanish), ja (Japanese), nl (Dutch), da (Danish), se (Swedish), no (Norwegian), fi (Finnish), or tr (Turkish). | | `year` | Year in 4 digit format (YYYY). | | `nfl_season` | Preseason (PRE), Regular Season (REG), or Post-Season (PST). | | `team_id` | ID of a given team. | | `format` | xml or json. | | `your_api_key` | Your API key. | To retrieve the XML Schema Definition (.XSD) for the Seasonal Statistics use the following URL. https://feed.elasticstats.com/schema/nfl/premium/statistics-v5.0.xsd Return to API map ## Seasons Provides a list of all available seasons, including preseasons and postseasons.> To generate the list of Seasons replace {your_api_key} with your API key: “`ruby require ‘uri’ require ‘net/http’ require ‘openssl’ url = URI(“https://api.sportradar.us/nfl/official/trial/v5/en/league/seasons.xml?api_key={your_api_key}”) http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body “` “`python import http.client conn = http.client.HTTPSConnection(“api.sportradar.us”) conn.request(“GET”, “/nfl/official/trial/v5/en/league/seasons.xml?api_key={your_api_key}”) res = conn.getresponse() data = res.read() print(data.decode(“utf-8”)) “` “`shell curl -X GET “https://api.sportradar.us/nfl/official/trial/v5/en/league/seasons.xml?api_key={your_api_key}” “` > The above command returns xml structured like this . Access the Seasons feed by replacing the parameters in the following URL: https://api.sportradar.us/nfl/official/`{access_level}`/`{version}`/`{language_code}`/league/seasons.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | ——— | ———– | | `access_level` | Defines the access level of your API key as Production (production), or Trial (trial). | | `version` | Version number of the API you are accessing (current version: v5). | | `language_code` | 2 letter code for supported languages: en (English), de (German), fr (French), it (Italian), es (Spanish), ja (Japanese), nl (Dutch), da (Danish), se (Swedish), no (Norwegian), fi (Finnish), or tr (Turkish). | | `format` | xml or json. | | `your_api_key` | Your API key. | To retrieve the XML Schema Definition (.XSD) for the Seasons use the following URL. https://feed.elasticstats.com/schema/nfl/premium/seasons-v5.0.xsd Return to API map ## Team Draft Summary Provides pre-draft pick order with live pick selections during the draft for a given team.> To generate a Team Draft Summary for the Team ID below replace {your_api_key} with your API key: “`ruby require ‘uri’ require ‘net/http’ require ‘openssl’ url = URI(“https://api.sportradar.us/draft/nfl/trial/v1/en/2019/teams/d5a2eb42-8065-4174-ab79-0a6fa820e35e/draft.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”, “/draft/nfl/trial/v1/en/2019/teams/d5a2eb42-8065-4174-ab79-0a6fa820e35e/draft.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/draft/nfl/trial/v1/en/2019/teams/d5a2eb42-8065-4174-ab79-0a6fa820e35e/draft.xml?api_key={your_api_key}” “` > The above command returns xml structured like this . Access the Team Draft Summary feed by replacing the parameters in the following URL: https://api.sportradar.us/draft/nfl/`{access_level}`/`{version}`/`{language_code}`/`{year}`/teams/`{team_id}`/draft.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | ——— | ———– | | `access_level` | Defines the access level of your API key as Production (production), or Trial (trial). | | `version` | Version number of the Draft API you are accessing (current version: v1). NOTE: All draft feeds are currently v1. | | `language_code` | 2 letter code for supported languages: en (English). | | `year` | Year in 4 digit format (YYYY). | | `team_id` | ID of a given team. | | `format` | xml or json. | | `your_api_key` | Your API key. | To retrieve the XML Schema Definition (.XSD) for the Team Draft Summary use the following URL. https://feed.elasticstats.com/schema/draft/summary-v1.0.xsd Return to API map ## Team Profile Provides franchise team information, as well as a roster of active players.> To generate a team profile for the Team ID below replace {your_api_key} with your API key: “`ruby require ‘uri’ require ‘net/http’ require ‘openssl’ url = URI(“https://api.sportradar.us/nfl/official/trial/v5/en/teams/0d855753-ea21-4953-89f9-0e20aff9eb73/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”, “/nfl/official/trial/v5/en/teams/0d855753-ea21-4953-89f9-0e20aff9eb73/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/nfl/official/trial/v5/en/teams/0d855753-ea21-4953-89f9-0e20aff9eb73/profile.xml?api_key={your_api_key}” “` > The above command returns xml structured like this . Access the Team Profile feed by replacing the parameters in the following URL: https://api.sportradar.us/nfl/official/`{access_level}`/`{version}`/`{language_code}`/teams/`{team_id}`/profile.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | ——— | ———– | | `access_level` | Defines the access level of your API key as Production (production), or Trial (trial). | | `version` | Version number of the API you are accessing (current version: v5). | | `language_code` | 2 letter code for supported languages: en (English), de (German), fr (French), it (Italian), es (Spanish), ja (Japanese), nl (Dutch), da (Danish), se (Swedish), no (Norwegian), fi (Finnish), or tr (Turkish). | | `team_id` | ID of a given team. | | `format` | xml or json. | | `your_api_key` | Your API key. | To retrieve the XML Schema Definition (.XSD) for the Team Profile use the following URL. https://feed.elasticstats.com/schema/nfl/premium/team-v5.0.xsd Return to API map ## Team Roster Provides franchise team information, as well as the complete roster of players.> To generate a Team Roster for the Team ID below replace {your_api_key} with your API key: “`ruby require ‘uri’ require ‘net/http’ require ‘openssl’ url = URI(“https://api.sportradar.us/nfl/official/trial/v5/en/teams/0d855753-ea21-4953-89f9-0e20aff9eb73/full_roster.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”, “/nfl/official/trial/v5/en/teams/0d855753-ea21-4953-89f9-0e20aff9eb73/full_roster.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/nfl/official/trial/v5/en/teams/0d855753-ea21-4953-89f9-0e20aff9eb73/full_roster.xml?api_key={your_api_key}” “` > The above command returns xml structured like this . Access the Team Roster feed by replacing the parameters in the following URL: https://api.sportradar.us/nfl/official/`{access_level}`/`{version}`/`{language_code}`/teams/`{team_id}`/full_roster.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | ——— | ———– | | `access_level` | Defines the access level of your API key as Production (production), or Trial (trial). | | `version` | Version number of the API you are accessing (current version: v5). | | `language_code` | 2 letter code for supported languages: en (English), de (German), fr (French), it (Italian), es (Spanish), ja (Japanese), nl (Dutch), da (Danish), se (Swedish), no (Norwegian), fi (Finnish), or tr (Turkish). | | `team_id` | ID of a given team. | | `format` | xml or json. | | `your_api_key` | Your API key. | To retrieve the XML Schema Definition (.XSD) for the Team Roster use the following URL. https://feed.elasticstats.com/schema/nfl/premium/team-v5.0.xsd Return to API map ## Top Prospects Provides a list of the top prospects for a given year.> To generate the Top Prospects for the year below replace {your_api_key} with your API key: “`ruby require ‘uri’ require ‘net/http’ require ‘openssl’ url = URI(“https://api.sportradar.us/draft/nfl/trial/v1/en/2019/top_prospects.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”, “/draft/nfl/trial/v1/en/2019/top_prospects.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/draft/nfl/trial/v1/en/2019/top_prospects.xml?api_key={your_api_key}” “` > The above command returns xml structured like this . Access the Top Prospects feed by replacing the parameters in the following URL: https://api.sportradar.us/draft/nfl/`{access_level}`/`{version}`/`{language_code}`/`{year}`/top_prospects.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | ——— | ———– | | `access_level` | Defines the access level of your API key as Production (production), or Trial (trial). | | `version` | Version number of the Draft API you are accessing (current version: v1). NOTE: All draft feeds are currently v1. | | `language_code` | 2 letter code for supported languages: en (English). | | `year` | Year in 4 digit format (YYYY). | | `format` | xml or json. | | `your_api_key` | Your API key. | To retrieve the XML Schema Definition (.XSD) for the Top Prospects use the following URL. https://feed.elasticstats.com/schema/draft/prospects-v1.0.xsd Return to API map ## Trades Provides summary details of all in-draft trades.> To generate the Trades for the year below replace {your_api_key} with your API key: “`ruby require ‘uri’ require ‘net/http’ require ‘openssl’ url = URI(“https://api.sportradar.us/draft/nfl/trial/v1/en/2019/trades.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”, “/draft/nfl/trial/v1/en/2019/trades.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/draft/nfl/trial/v1/en/2019/trades.xml?api_key={your_api_key}” “` > The above command returns xml structured like this . Access the Trades feed by replacing the parameters in the following URL: https://api.sportradar.us/draft/nfl/`{access_level}`/`{version}`/`{language_code}`/`{year}`/trades.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | ——— | ———– | | `access_level` | Defines the access level of your API key as Production (production), or Trial (trial). | | `version` | Version number of the Draft API you are accessing (current version: v1). NOTE: All draft feeds are currently v1. | | `language_code` | 2 letter code for supported languages: en (English). | | `year` | Year in 4 digit format (YYYY). | | `format` | xml or json. | | `your_api_key` | Your API key. | To retrieve the XML Schema Definition (.XSD) for Trades use the following URL. https://feed.elasticstats.com/schema/draft/trades-v1.0.xsd Return to API map ## Weekly Depth Charts Provides depth chart information for each team for a given week.> To generate the Weekly Depth Charts enter the Year, Season, Week below, and replace {your_api_key} with your API key: “`ruby require ‘uri’ require ‘net/http’ require ‘openssl’ url = URI(“https://api.sportradar.us/nfl/official/trial/v5/en/seasons/2019/REG/02/depth_charts.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”, “/nfl/official/trial/v5/en/seasons/2019/REG/02/depth_charts.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/nfl/official/trial/v5/en/seasons/2019/REG/02/depth_charts.xml?api_key={your_api_key}” “` > The above command returns xml structured like this . Access the Weekly Depth Charts feed by replacing the parameters in the following URL: https://api.sportradar.us/nfl/official/`{access_level}`/`{version}`/`{language_code}`/seasons/`{year}`/`{nfl_season}`/`{nfl_season_week}`/depth_charts.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | ——— | ———– | | `access_level` | Defines the access level of your API key as Production (production), or Trial (trial). | | `version` | Version number of the API you are accessing (current version: v5). | | `language_code` | 2 letter code for supported languages: en (English), de (German), fr (French), it (Italian), es (Spanish), ja (Japanese), nl (Dutch), da (Danish), se (Swedish), no (Norwegian), fi (Finnish), or tr (Turkish). | | `year` | Year in 4 digit format (YYYY). | | `nfl_season` | Preseason (PRE), Regular Season (REG), or Post-Season (PST). | | `nfl_season_week` | The number of weeks into the season in 2 digit format (WW). | | `format` | xml or json. | | `your_api_key` | Your API key. | To retrieve the XML Schema Definition (.XSD) for the Weekly Depth Charts use the following URL. https://feed.elasticstats.com/schema/nfl/premium/depth_charts-v5.0.xsd Return to API map ## Weekly Injuries Provides a list of injured players for each team for a given week, including practice status.> To generate the Weekly Injuries enter the Year, Season, Week below, and replace {your_api_key} with your API key: “`ruby require ‘uri’ require ‘net/http’ require ‘openssl’ url = URI(“https://api.sportradar.us/nfl/official/trial/v5/en/seasons/2019/REG/02/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”, “/nfl/official/trial/v5/en/seasons/2019/REG/02/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/nfl/official/trial/v5/en/seasons/2019/REG/02/injuries.xml?api_key={your_api_key}” “` > The above command returns xml structured like this . Access the Weekly Injuries feed by replacing the parameters in the following URL: https://api.sportradar.us/nfl/official/`{access_level}`/`{version}`/`{language_code}`/seasons/`{year}`/`{nfl_season}`/`{nfl_season_week}`/injuries.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | ——— | ———– | | `access_level` | Defines the access level of your API key as Production (production), or Trial (trial). | | `version` | Version number of the API you are accessing (current version: v5). | | `language_code` | 2 letter code for supported languages: en (English), de (German), fr (French), it (Italian), es (Spanish), ja (Japanese), nl (Dutch), da (Danish), se (Swedish), no (Norwegian), fi (Finnish), or tr (Turkish). | | `year` | Year in 4 digit format (YYYY). | | `nfl_season` | Preseason (PRE), Regular Season (REG), or Post-Season (PST). | | `nfl_season_week` | The number of weeks into the season in 2 digit format (WW). | | `format` | xml or json. | | `your_api_key` | Your API key. | To retrieve the XML Schema Definition (.XSD) for the Weekly Injuries use the following URL. https://feed.elasticstats.com/schema/nfl/premium/injuries-v5.0.xsd Return to API map ## Weekly Schedule Provides complete schedule information for a given week of the season, including venue, weather conditions, broadcast info, and scoring results by quarter.> To generate the Weekly Schedule for the Year, Season, and Week below replace {your_api_key} with your API key: “`ruby require ‘uri’ require ‘net/http’ require ‘openssl’ url = URI(“https://api.sportradar.us/nfl/official/trial/v5/en/games/2019/REG/02/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”, “/nfl/official/trial/v5/en/games/2019/REG/02/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/nfl/official/trial/v5/en/games/2019/REG/02/schedule.xml?api_key={your_api_key}” “` > The above command returns xml structured like this . Access the Weekly Schedule feed by replacing the parameters in the following URL: https://api.sportradar.us/nfl/official/`{access_level}`/`{version}`/`{language_code}`/games/`{year}`/`{nfl_season}`/`{nfl_season_week}`/schedule.`{format}`?api_key=`{your_api_key}` | Parameter | Description | | ——— | ———– | | `access_level` | Defines the access level of your API key as Production (production), or Trial (trial). | | `version` | Version number of the API you are accessing (current version: v5). | | `language_code` | 2 letter code for supported languages: en (English), de (German), fr (French), it (Italian), es (Spanish), ja (Japanese), nl (Dutch), da (Danish), se (Swedish), no (Norwegian), fi (Finnish), or tr (Turkish). | | `year` | Year in 4 digit format (YYYY). | | `nfl_season` | Preseason (PRE), Regular Season (REG), or Post-Season (PST). | | `nfl_season_week` | The number of weeks into the season in 2 digit format (WW). | | `format` | xml or json. | | `your_api_key` | Your API key. | To retrieve the XML Schema Definition (.XSD) for the Weekly Schedule use the following URL. https://feed.elasticstats.com/schema/nfl/premium/schedule-v5.0.xsd Return to API map ## Push Feeds >To best utilize Push feeds, we have included code samples in Ruby, Java and Python which provide an example of a way you can consume the feeds. Using these samples will output the feeds content to STDOUT.For Java, we have also provided a Stream Client to assist your integration.Note: In the provided Java sample, replace “URL GOES HERE” with the desired Push feed URL. “`ruby require ‘httpclient’ module Sportradar module HTTP module Stream class Client attr_reader :url, :logger def initialize(url, publisher, logger) @url = url @logger = logger @publisher = publisher @client = ::HTTPClient.new(:agent_name => ‘SportsData/1.0’) end def start @thread ||= Thread.new do logger.debug “Starting loop” @client.get_content(url, :follow_redirect => true) do |chunk| @publisher.publish(::JSON.parse(chunk)) if @publisher end logger.debug “finished loop” end end def stop @thread.terminate if @thread end end end end end “` “`java package com.sportradar.http.stream.client; import org.junit.After; import org.junit.Before; import org.junit.Test; public class StreamClientTest { private StreamClient client; private static String SERVICE_URL = “