Odds Comparison Player Props
Quick Access | |
Postman Collection | XSD Schema |
Download |
API | API Version |
Odds Comparison | Player Props |
Note: Authentication is required for all API calls. |
Sport | Market Name | Market ID |
Basketball (NBA) | Total points (incl. overtime) | sr:market:921 |
Total assists (incl. overtime) | sr:market:922 | |
Total rebounds (incl. overtime) | sr:market:923 | |
Total 3-point field goals (incl. overtime) | sr:market:924 | |
Total steals (incl. overtime) | sr:market:8000 | |
Total blocks (incl. overtime) | sr:market:8001 | |
Total turnovers (incl. overtime) | sr:market:8002 | |
Total points plus rebounds (incl. overtime) | sr:market:8003 | |
Total points plus assists (incl. overtime) | sr:market:8004 | |
Total rebounds plus assists (incl. overtime) | sr:market:8005 | |
Total points plus assists plus rebounds (incl. overtime) | sr:market:8006 | |
Total blocks plus steals (incl. overtime) | sr:market:8007 | |
Double double (incl. overtime) | sr:market:8008 | |
Triple double (incl. overtime) | sr:market:8009 | |
Baseball (MLB) | Total pitcher strikeouts (incl. extra innings) | sr:market:925 |
Total bases (incl. extra innings) | sr:market:926 | |
Total earned runs (incl. extra innings) | sr:market:928 | |
Total hits (incl. extra innings) | sr:market:9000 | |
Total runs (incl. extra innings) | sr:market:9001 | |
Total runs batted in (incl. extra innings) | sr:market:9002 | |
Total home runs (incl. extra innings) | sr:market:9003 | |
Total singles (incl. extra innings) | sr:market:9004 | |
Total doubles (incl. extra innings) | sr:market:9005 | |
Total triples (incl. extra innings) | sr:market:9006 | |
Total stolen bases (incl. extra innings) | sr:market:9007 | |
Total pitcher outs (incl. extra innings) | sr:market:9008 | |
Total strikeouts (incl. extra innings) | sr:market:9009 | |
Total hits allowed (incl. extra innings) | sr:market:9010 | |
Total home runs allowed (incl. extra innings) | sr:market:9011 | |
To hit a home run | sr:market:9012 | |
Ice Hockey (NHL) | First goalscorer | sr:market:38 |
Last goalscorer | sr:market:39 | |
Anytime goalscorer | sr:market:40 | |
Total shots (incl. overtime) | sr:market:7000 | |
Total assists (incl. overtime) | sr:market:7001 | |
Total points (incl. overtime) | sr:market:7002 | |
Total power play points (incl. overtime) | sr:market:7003 | |
American Football (NFL, NCAA) | Total passing yards (incl. overtime) | sr:market:914 |
Total passing completions (incl. overtime) | sr:market:915 | |
Total passing touchdowns (incl. overtime) | sr:market:916 | |
Total carries (incl. overtime) | sr:market:917 | |
Total rushing yards (incl. overtime) | sr:market:918 | |
Total receiving yards (incl. overtime) | sr:market:919 | |
Total receptions (incl. overtime) | sr:market:920 | |
Total passing interceptions (incl. overtime) | sr:market:6000 | |
Total passing attempts (incl. overtime) | sr:market:6001 | |
First touchdown scorer | sr:market:6014 | |
Anytime touchdown scorer | sr:market:6016 | |
Player to score 2 or more touchdowns | sr:market:6017 | |
Player to score 3 or more touchdowns | sr:market:6018 | |
American Football (NFL) | Longest passing completion (incl. overtime) | sr:market:6002 |
Total passing plus rushing yards (incl. overtime) | sr:market:6003 | |
Longest reception (incl. overtime) | sr:market:6004 | |
Total rushing plus receiving yards (incl. overtime) | sr:market:6005 | |
Longest rush (incl. overtime) | sr:market:6006 | |
Total kicking points (incl. overtime) | sr:market:6007 | |
Total extra points made (incl. overtime) | sr:market:6008 | |
Total field goals made (incl. overtime) | sr:market:6009 | |
Total assists (incl. overtime) | sr:market:6010 | |
Total tackles (incl. overtime) | sr:market:6011 | |
Total tackles plus assists (incl. overtime) | sr:market:6012 | |
Total sacks (incl. overtime) | sr:market:6013 | |
Last touchdown scorer | sr:market:6015 | |
To record a sack (incl. overtime) | sr:market:6019 | |
To record an interception (incl. overtime) | sr:market:6020 | |
To throw an interception (incl. overtime) | sr:market:6021 | |
Soccer | First goalscorer | sr:market:38 |
Last goalscorer | sr:market:39 | |
Anytime goalscorer | sr:market:40 |
Example:
>To find the player props for a sport event on a given day: >- Call the Sports resource and make note of the Sport Id for your event
- Call the Daily Sport Player Props for your given date, using the Sport Id
- Find the Sport Event Id of your event within the results
- Call the Sport Event Player Props using your located Sport Event Id
TTL / Cache: | 300 seconds |
English (en) is the only fully supported language for this API. | | `format` | xml or json. | | `your_api_key` | Your API key. | Return to top ## Competition Mappings Provides competition id mapping between global and US id types.
TTL / Cache: | 600 seconds |
English (en) is the only fully supported language for this API. | | `format` | xml or json. | | `your_api_key` | Your API key. | Return to top ## Competition Schedules Provides scheduling info for all events with props available in a given competition. Note: Data will be removed from this endpoint 24 hours after the end of a day
Note: Pagination will often be required to pull all data within this feed. By default, the feed will return 1 sport event. |
TTL / Cache: | 60 seconds | ||
Update Frequency: | As Necessary | ||
Content Type: | XML or JSON | ||
Competitor Info Data Points: | Abbreviation Age Group Country Country Code |
Gender Id Name |
Qualifier Rotation Number Virtual |
Sport Event Info Data Points: | Sport Event Id Sport Event Replaced By |
Sport Event Resume Time Sport Event Start Time |
Sport Event Start Time Confirmed |
English (en) is the only fully supported language for this API. | | `competition_id` | Id of a given competition. | | `format` | xml or json. | | `your_api_key` | Your API key. | Return to top ### Optional Query String Parameters >Example including optional query string parameters:
require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.com/oddscomparison-player-props/trial/v2/en/competitions/sr:competition:109/schedules.xml?api_key={your_api_key}&start=0&limit=1") 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
import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/oddscomparison-player-props/trial/v2/en/competitions/sr:competition:109/schedules.xml?api_key={your_api_key}&start=0&limit=1") res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
curl -L GET 'api.sportradar.us/oddscomparison-player-props/trial/v2/en/competitions/sr:competition:109/schedules.xml?api_key={your_api_key}&start=0&limit=1'In addition to the URL parameters listed above, you can paginate the competitor 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 (&). |
Example: start=0 | | `limit` | Number to limit the number of results. Minimum and maximum value is 1.
Example: limit=1 | Return to top ## Competitor Mappings Provides competitor id mapping between global and US id types.
TTL / Cache: | 600 seconds |
English (en) is the only fully supported language for this API. | | `format` | xml or json. | | `your_api_key` | Your API key. | Return to top ## Daily Schedules Provides scheduling info for all events with props available for a given sport and date.
Note: Pagination will often be required to pull all data within this feed. By default, the feed will return 1 sport event. |
TTL / Cache: | 60 seconds | ||
Update Frequency: | As Necessary | ||
Content Type: | XML or JSON | ||
Competitor Info Data Points: | Abbreviation Age Group Country Country Code |
Gender Id Name |
Qualifier Rotation Number Virtual |
Sport Event Info Data Points: | Sport Event Id Sport Event Replaced By |
Sport Event Resume Time Sport Event Start Time |
Sport Event Start Time Confirmed |
English (en) is the only fully supported language for this API. | | `sport_id` | ID of a given sport. | | `date` | Date in the following format: YYYY-MM-DD | | `format` | xml or json. | | `your_api_key` | Your API key. | Return to top ### Query String Parameters >Example including optional query string parameters:
require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.com/oddscomparison-player-props/trial/v2/en/sports/sr:sport:3/schedules/2023-03-30/schedules.xml?api_key={your_api_key}&start=0&limit=1") 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
import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/oddscomparison-player-props/trial/v2/en/sports/sr:sport:3/schedules/2023-03-30/schedules.xml?api_key={your_api_key}&start=0&limit=1") res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
curl -L GET 'api.sportradar.us/oddscomparison-player-props/trial/v2/en/sports/sr:sport:3/schedules/2023-03-30/schedules.xml?api_key={your_api_key}&start=0&limit=1'In addition to the URL parameters listed above, you can paginate the response with one or more of the following optional query string parameters. | Parameter | Description | | --------- | ----------- | | `start` | Number to start the list of results from.
Example: start=0 | | `limit` | Number to limit the number of results. Minimum and maximum value is 1. | `live` | Boolean value to return live/non-live markets
Example:
live=true
or live=false
|
Return to top
## Player Mappings
Provides player id mapping between global and US id types.
TTL / Cache: | 600 seconds |
English (en) is the only fully supported language for this API. | | `format` | xml or json. | | `your_api_key` | Your API key. | ### Optional Query String Parameters >Example including optional query string parameters:
require 'uri' require 'net/http' require 'openssl' url = URI("http://api.sportradar.us/oddscomparison-player-props/trial/v2/en/players/mappings.xml?api_key={your_api_key}&start=0&limit=1000") 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
import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/oddscomparison-player-props/trial/v2/en/players/mappings.xml?api_key={your_api_key}&start=0&limit=1000") res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
curl -L GET 'api.sportradar.us/oddscomparison-player-props/trial/v2/en/players/mappings.xml?api_key={your_api_key}&start=0&limit=1000'In addition to the URL parameters listed above, you can paginate the player 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 (&). |
Example: start=0 | | `limit` | Number to limit the number of results. Minimum value is 1, maximum value is 1000.
Example: limit=1000 | Return to top ## Player Props Change Log Returns a list of the latest odds changes.
TTL / Cache: | 1 second |
English (en) is the only fully supported language for this API. | | `format` | xml or json. | | `your_api_key` | Your API key. | Return to top ## Sport Categories Returns a list of categories for a sport ID that have odds available.
TTL / Cache: | 300 seconds |
English (en) is the only fully supported language for this API. | | `sport_id` | ID of a given sport. | | `format` | xml or json. | | `your_api_key` | Your API key. | Return to top ## Sport Competitions Returns a list of competitions for a sport ID that have odds available.
TTL / Cache: | 300 seconds |
English (en) is the only fully supported language for this API. | | `sport_id` | ID of a given sport. | | `format` | xml or json. | | `your_api_key` | Your API key. | Return to top ## Sport Event Mappings Provides sport event id mapping between global and US id types.
TTL / Cache: | 600 seconds |
English (en) is the only fully supported language for this API. | | `format` | xml or json. | | `your_api_key` | Your API key. | ### Optional Query String Parameters >Example including optional query string parameters:
require 'uri' require 'net/http' require 'openssl' url = URI("http://api.sportradar.us/oddscomparison-player-props/trial/v2/en/sport_events/mappings.xml?api_key={your_api_key}&start=0&limit=1000") 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
import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/oddscomparison-player-props/trial/v2/en/sport_events/mappings.xml?api_key={your_api_key}&start=0&limit=1000") res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
curl -L GET 'api.sportradar.us/oddscomparison-player-props/trial/v2/en/sport_events/mappings.xml?api_key={your_api_key}&start=0&limit=1000'In addition to the URL parameters listed above, you can paginate the sport event 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 (&). |
Example: start=0 | | `limit` | Number to limit the number of results. Minimum value is 1, maximum value is 1000.
Example: limit=1000 | Return to top ## Sport Event Player Props Returns a list of player props for a given sport event ID.
TTL / Cache: | 300 seconds |
English (en) is the only fully supported language for this API. | | `sport_event_id` | ID of a given sport event. | | `format` | xml or json. | | `your_api_key` | Your API key. | ### Optional Query String Parameters >Example including optional query string parameters:
require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.com/oddscomparison-player-props/trial/v2/en/sport_events/sr:sport_event:27605772/players_props.xml?api_key={your_api_key}&live=true") 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
import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/oddscomparison-player-props/trial/v2/en/sport_events/sr:sport_event:27605772/players_props.xml?api_key={your_api_key}&live=true") res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
curl -L GET 'api.sportradar.us/oddscomparison-player-props/trial/v2/en/sport_events/sr:sport_event:27605772/players_props.xml?api_key={your_api_key}&live=true'In addition to the URL parameters listed above, you can limit the returned information to live/non-live markets.
Note: Optional query string parameters must be added after your API key with an ampersand (&). |
Example:
live=true
or live=false
|
Return to top
## Sport Stages
Returns a list of stages and categories for a sport ID that have odds available.
TTL / Cache: | 300 seconds |
English (en) is the only fully supported language for this API. | | `sport_id` | ID of a given sport. | | `format` | xml or json. | | `your_api_key` | Your API key. | Return to top ## Sports Returns a list of sports and sport IDs.
TTL / Cache: | 300 seconds |
English (en) is the only fully supported language for this API. | | `format` | xml or json. | | `your_api_key` | Your API key. | Return to top ## Stage Mappings Provides stage id mapping between global and US id types.
TTL / Cache: | 600 seconds |
English (en) is the only fully supported language for this API. | | `format` | xml or json. | | `your_api_key` | Your API key. | ### Optional Query String Parameters >Example including optional query string parameters:
require 'uri' require 'net/http' require 'openssl' url = URI("http://api.sportradar.us/oddscomparison-player-props/trial/v2/en/stages/mappings.xml?api_key={your_api_key}&start=0&limit=1000") 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
import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/oddscomparison-player-props/trial/v2/en/stages/mappings.xml?api_key={your_api_key}&start=0&limit=1000") res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
curl -L GET 'api.sportradar.us/oddscomparison-player-props/trial/v2/en/stages/mappings.xml?api_key={your_api_key}&start=0&limit=1000'In addition to the URL parameters listed above, you can paginate the sport event 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 (&). |
Example: start=0 | | `limit` | Number to limit the number of results. Minimum value is 1, maximum value is 1000.
Example: limit=1000 | Return to top ## 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.
Example: 2013-04-03
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: How can I find the values for various enum data points within the API?
A: For the most up-to-date values, please see the Schema section of the OpenAPI specification here:
https://api.sportradar.com/oddscomparison-player-props/trial/v2/openapi/swagger/index.htmlQ: What sports are covered?
A: The sports coverage varies depending on configured bookmakers offering in that particular point in time. To get a list of available sports call the Sports endpoint.
Q: What competitions are covered?
A: The competition coverage varies depending on configured bookmakers offering in that particular point in time. To get a list of all the competitions for a sport call the Sport Competitions endpoint.
Q: What bookmakers are included for Player Props?
A: Player Props data is available for the following Bookmakers - Draft Kings, William Hill, MGM, Pointsbet, FanDuel.
Q: How can I tell what Competitions have Player Props available?
A: Competitions that have Player Props data available from the last 24 hours and into the future are indicated by player_props="true"
in the Sport Competitions endpoint.
Q: What happens if a bookmaker suspends/removes a market or outcome?
A: Markets that have been suspended/removed are indicated as removed="true" at the book level. Outcomes that have been suspended/removed are indicated by removed="true" at the outcome level.
Q: Is the Player Props data pre-match or live?
A: Currently Player Props data is all pre-match but we are looking to add live player props subject to data availability sometime in the future.
Q: How do I tell what the closing odds/line was?
A: When a game goes live and the pre-match markets have been removed by the bookmaker, we add a removed="true" attribute at the book level and continue to display the last known odds which can be interpreted as the closing line.
Q: Why do some outcomes show nonsensical odds?
A: If an outcome is flagged as removed="true" and is displaying decimal odds of 1.00 then that means that the selection was never offered for betting by the bookmaker. This will often happen on "under" selections where the bookmaker does not want to offer the "under" side of the bet.
Q: How do I use the changelog?
A: The Changelog will display a list of Sport Event IDs which have changed in the last 5 minutes using Unix timestamps. The actual time of the odds change is denoted by the "player_props_odds_change" attribute. This can be used to trigger calls to the Sport Event Players Props endpoint.
Q: What is the refresh rate of the Player Props data?
A: We check for changes to the data every 60 seconds.
Q: Why would a player ID (ex. sr:player:830531) appear more than once in the Player Mappings endpoint?
A: A player may appear in multiple APIs with a separate ID unique to that API. For example, multiple ID mapping entries could occur from the American Football API to the NFL, NCAA Men’s Football, or USFL APIs.
Q: How do I locate the TTL (Time to Live)/cache on an API endpoint?
A: The cache (in seconds) can be accessed in the returned header information on each RESTful API call, under cache-control
.
ex. cache-control: max-age=1, public, s-maxage=1
or
cache-control: public, must-revalidate, max-age=120
Return to top
Docs Navigation
- Documentation
- Football (American Football)
- Football (Soccer)
- Australian Rules Football
- Baseball
- Basketball
- NBA v8
- NBA v7
- NBA v5
- NBA v4
- WNBA v8
- WNBA v7
- WNBA v4
- WNBA v3
- NBA G League v8
- NBA G League v7
- NBA G League v5
- NCAA Men's Basketball v8
- NCAA Men's Basketball v7
- NCAA Men's Basketball v4
- NCAA Men's Basketball v3
- NCAA Women's Basketball v8
- NCAA Women's Basketball v7
- NCAA Women's Basketball v3
- Global Basketball v2
- Global Basketball v1
- Combat Sports
- Cricket
- Editorial Content
- Golf
- Handball
- Hockey
- Images
- Insights
- Insights User Interface
- NBA Insights v2
- NFL Insights v2
- NHL Insights v2
- MLB Insights v2
- NBA Betting Splits v2
- NHL Betting Splits v2
- MLB Betting Splits v2
- NFL Betting Splits v2
- NCAAFB Betting Splits v2
- NCAAMB Betting Splits v2
- NCAAWB Betting Splits v2
- Soccer Betting Splits v2
- NBA Insights v1
- NHL Insights v1
- MLB Insights v1
- NFL Insights v1
- Odds
- Broadcast Graphics
- Racing
- Rugby
- Tennis
- Widgets
- Baseline Sports Coverage
- Badminton v2
- Badminton v1
- Bandy v2
- Bandy v1
- Beach Soccer v2
- Beach Soccer v1
- Curling v2
- Curling v1
- Cycling v2
- Darts v2
- Darts v1
- Field Hockey v2
- Field Hockey v1
- Floorball v2
- Floorball v1
- Futsal v2
- Futsal v1
- Pesapallo v2
- Pesapallo v1
- Snooker v2
- Snooker v1
- Squash v2
- Squash v1
- Table Tennis v2
- Volleyball (Beach) v2
- Volleyball (Beach) v1
- Volleyball (Indoor) v2
- Volleyball (Indoor) v1
- Waterpolo v2
- Waterpolo v1
- Winter Sports v1