Odds Comparison Futures

Frequently Asked Questions
Quick Access
Postman Collection XSD Schema
Download
## Odds Comparison Futures API Overview The Futures API provides aggregated odds data for a wide variety of futures (or outrights) markets. All major leagues are available, with top US bookmakers configured. The API is consistent in structure, format, and behavior with the other General Sport APIs. Primary feeds will return books, categories, sports, and tournaments offered. Additional feeds provide a huge selection of futures markets broken down by category, competition, and stage.
API API Version
Odds Comparison Futures
Note: Authentication is required for all API calls.
## Odds Comparison Futures API Map To best utilize the Odds Comparison Futures API, you will need several parameters to create your API calls. The map below illustrates how you can obtain the parameters you need. >

Example:

>To find the outright odds for the World Series champion: >
  1. Call the Sports resource and make note of the Sport Id for your event
  2. Call the Sport Competitions endpoint, using the Sport Id
  3. Find the Competition Id (sr:competition:109) for MLB within the results
  4. Call the Competition Futures endpoint using your located Competition Id
  5. The outright odds for the World Series champ are displayed
Primary feeds require only a Sport parameter, while other feeds may require dates, IDs or other human-readable parameters to identify the category, sport, sport event or tournament that the feed will describe. The primary feeds provide IDs for categories, competitions and stages. Mapping feeds provide a list of IDs for players, competitions, sport events, teams, and stages which are mapped between General Sport IDs and League Specific IDs. The mapping feeds have limited results per page. To get additional results you may need to use the optional query string parameters “start” and “limit” which are detailed in the affected feeds below. ## Books Returns a list of configured bookmakers and their IDs.
TTL / Cache: 300 seconds
Update Frequency: As Necessary
Content Type: XML or JSON
Market & Book Info Data Points: Book Id Book Name
```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.com/oddscomparison-futures/trial/v2/en/books.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.com") conn.request("GET", "/oddscomparison-futures/trial/v2/en/books.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.com/oddscomparison-futures/trial/v2/en/books.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Books feed by replacing the parameters in the following URL: https://api.sportradar.com/oddscomparison-futures/`{access_level}`/`{version}`/`{language_code}`/books.`{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: v2). | | `language_code` | Supported Locales | | `format` | xml or json. | | `your_api_key` | Your API key. | Return to top ## Category Futures Provides a list of futures available for a given category.
Note: Pagination will often be required to pull all data within this feed. By default, the feed will return 5 futures.
TTL / Cache: 300 seconds
Update Frequency: As Necessary
Content Type: XML or JSON
Market & Book Info Data Points: Book External Market Id
Book External Sport Event Id
Book Id
Book Name
Book Removed
Market Id
Market Name
Outcome Info Data Points: Competitor Id
Competitor Name
External Outcome Id
Field Id
Odds American
Odds Decimal
Odds Fraction
Open Odds - American
Open Odds - Decimal
Open Odds - Fraction
Outcome Id
Player Id
Player Name
Removed
Type
```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.com/oddscomparison-futures/trial/v2/en/categories/sr:category:15/futures.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.com") conn.request("GET", "/oddscomparison-futures/trial/v2/en/categories/sr:category:15/futures.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.com/oddscomparison-futures/trial/v2/en/categories/sr:category:15/futures.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Category Futures feed by replacing the parameters in the following URL: https://api.sportradar.com/oddscomparison-futures/`{access_level}`/`{version}`/`{language_code}`/categories/`{category_id}`/futures.`{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: v2). | | `language_code` | Supported Locales | | `category_id` | Id of a given category. | | `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-prematch/trial/v2/en/categories/sr:category:15/futures.xml?api_key={your_api_key}&start=0&limit=5")

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-prematch/trial/v2/en/categories/sr:category:15/futures.xml?api_key={your_api_key}&start=0&limit=5")

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
curl -L GET 'api.sportradar.us/oddscomparison-prematch/trial/v2/en/categories/sr:category:15/futures.xml?api_key={your_api_key}&start=0&limit=5'
In addition to the URL parameters listed above, you can paginate the market 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 (&).
Replace placeholders with the following query parameters: | Parameter | Description | | --------- | ----------- | | `start` | Number to start the list of results from.
Example: start=0 | | `limit` | Number to limit the number of results. Minimum value is 1, maximum value is 5.
Example: limit=5 | | `live` | Boolean value to return live/non-live markets
Example: live=true or live=false | Return to top ## Competition Futures Provides a list of futures available for a given competition.
Note: Pagination will often be required to pull all data within this feed. By default, the feed will return 5 futures.
TTL / Cache: 300 seconds
Update Frequency: As Necessary
Content Type: XML or JSON
Market & Book Info Data Points: Book External Market Id
Book External Sport Event Id
Book Id
Book Name
Book Removed
Market Id
Market Name
Outcome Info Data Points: Competitor Id
Competitor Name
External Outcome Id
Field Id
Odds American
Odds Decimal
Odds Fraction
Open Odds - American
Open Odds - Decimal
Open Odds - Fraction
Outcome Id
Player Id
Player Name
Removed
Type
```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.com/oddscomparison-futures/trial/v2/en/competitions/sr:category:132/futures.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.com") conn.request("GET", "/oddscomparison-futures/trial/v2/en/competitions/sr:category:132/futures.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.com/oddscomparison-futures/trial/v2/en/competitions/sr:category:132/futures.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Competition Futures feed by replacing the parameters in the following URL: https://api.sportradar.com/oddscomparison-futures/`{access_level}`/`{version}`/`{language_code}`/competitions/`{competition_id}`/futures.`{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: v2). | | `language_code` | Supported Locales | | `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-prematch/trial/v2/en/competitions/sr:category:132/futures.xml?api_key={your_api_key}&start=0&limit=5")

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-prematch/trial/v2/en/competitions/sr:category:132/futures.xml?api_key={your_api_key}&start=0&limit=5")

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
curl -L GET 'api.sportradar.us/oddscomparison-prematch/trial/v2/en/competitions/sr:category:132/futures.xml?api_key={your_api_key}&start=0&limit=5'
In addition to the URL parameters listed above, you can paginate the market 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 (&).
Replace placeholders with the following query parameters: | Parameter | Description | | --------- | ----------- | | `start` | Number to start the list of results from.
Example: start=0 | | `limit` | Number to limit the number of results. Minimum value is 1, maximum value is 5.
Example: limit=5 | | `live` | Boolean value to return live/non-live markets
Example: live=true or live=false | Return to top ## Competition Mappings Provides competition ID mapping between League Specific and General Sport ID types.
TTL / Cache: 600 seconds
Update Frequency: As Necessary
Content Type: XML or JSON
Mapping Info Data Points: External Id Id
```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.com/oddscomparison-futures/trial/v2/en/competitions/mappings.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.com") conn.request("GET", "/oddscomparison-futures/trial/v2/en/competitions/mappings.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.com/oddscomparison-futures/trial/v2/en/competitions/mappings.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Competition Mappings feed by replacing the parameters in the following URL: https://api.sportradar.com/oddscomparison-futures/`{access_level}`/`{version}`/`{language_code}`/competitions/mappings.`{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: v2). | | `language_code` | Supported Locales | | `format` | xml or json. | | `your_api_key` | Your API key. | Return to top ## Competitor Mappings Provides competitor ID mapping between League Specific and General Sport ID types.
TTL / Cache: 600 seconds
Update Frequency: As Necessary
Content Type: XML or JSON
Mapping Info Data Points: External Id Id
```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.com/oddscomparison-futures/trial/v2/en/competitors/mappings.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.com") conn.request("GET", "/oddscomparison-futures/trial/v2/en/competitors/mappings.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.com/oddscomparison-futures/trial/v2/en/competitors/mappings.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Competitor Mappings feed by replacing the parameters in the following URL: https://api.sportradar.com/oddscomparison-futures/`{access_level}`/`{version}`/`{language_code}`/competitors/mappings.`{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: v2). | | `language_code` | Supported Locales | | `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-futures/trial/v2/en/competitors/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.com")

conn.request("GET", "/oddscomparison-futures/trial/v2/en/competitors/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.com/oddscomparison-futures/trial/v2/en/competitors/mappings.xml?api_key={your_api_key}&start=0&limit=1000'
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 (&).
Replace placeholders with the following query parameters: | Parameter | Description | | --------- | ----------- | | `start` | Number to start the list of results from.
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 Mappings Provides player ID mapping between League Specific and General Sport ID types.
TTL / Cache: 600 seconds
Update Frequency: As Necessary
Content Type: XML or JSON
Mapping Info Data Points: External Id Id
```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.com/oddscomparison-futures/trial/v2/en/players/mappings.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.com") conn.request("GET", "/oddscomparison-futures/trial/v2/en/players/mappings.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.com/oddscomparison-futures/trial/v2/en/players/mappings.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Player Mappings feed by replacing the parameters in the following URL: https://api.sportradar.com/oddscomparison-futures/`{access_level}`/`{version}`/`{language_code}`/players/mappings.`{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: v2). | | `language_code` | Supported Locales | | `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-futures/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.com")

conn.request("GET", "/oddscomparison-futures/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.com/oddscomparison-futures/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 (&).
Replace placeholders with the following query parameters: | Parameter | Description | | --------- | ----------- | | `start` | Number to start the list of results from.
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 Categories Returns a list of categories for a sport ID that have odds available.
TTL / Cache: 300 seconds
Update Frequency: As Necessary
Content Type: XML or JSON
Category & Sport Info Data Points: Category Country Code Category Id Category Name
```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.com/oddscomparison-futures/trial/v2/en/sports/sr:sport:2/categories.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.com") conn.request("GET", "/oddscomparison-futures/trial/v2/en/sports/sr:sport:2/categories.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.com/oddscomparison-futures/trial/v2/en/sports/sr:sport:2/categories.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Sport Categories feed by replacing the parameters in the following URL: https://api.sportradar.com/oddscomparison-futures/`{access_level}`/`{version}`/`{language_code}`/sports/`{sport_id}`/categories.`{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: v2). | | `language_code` | Supported Locales | | `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
Update Frequency: As Necessary
Content Type: XML or JSON
Category & Sport Info Data Points: Category Country Code Category Id Category Name
Competition Info Data Points: Competition Futures
Competition Gender
Competition Id
Competition Markets
Competition Name
Competition Player Props
```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.com/oddscomparison-futures/trial/v2/en/sports/sr:sport:2/competitions.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.com") conn.request("GET", "/oddscomparison-futures/trial/v2/en/sports/sr:sport:2/competitions.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.com/oddscomparison-futures/trial/v2/en/sports/sr:sport:2/competitions.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Sport Competitions feed by replacing the parameters in the following URL: https://api.sportradar.com/oddscomparison-futures/`{access_level}`/`{version}`/`{language_code}`/sports/`{sport_id}`/competitions.`{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: v2). | | `language_code` | Supported Locales | | `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 League Specific and General Sport ID types.
TTL / Cache: 600 seconds
Update Frequency: As Necessary
Content Type: XML or JSON
Mapping Info Data Points: External Id Id
```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.com/oddscomparison-futures/trial/v2/en/sport_events/mappings.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.com") conn.request("GET", "/oddscomparison-futures/trial/v2/en/sport_events/mappings.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.com/oddscomparison-futures/trial/v2/en/sport_events/mappings.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Sport Event Mappings feed by replacing the parameters in the following URL: https://api.sportradar.com/oddscomparison-futures/`{access_level}`/`{version}`/`{language_code}`/sport_events/mappings.`{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: v2). | | `language_code` | Supported Locales | | `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-futures/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.com")

conn.request("GET", "/oddscomparison-futures/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.com/oddscomparison-futures/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 (&).
Replace placeholders with the following query parameters: | Parameter | Description | | --------- | ----------- | | `start` | Number to start the list of results from.
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 Stages Returns a list of stages and categories for a sport ID that have odds available.
TTL / Cache: 300 seconds
Update Frequency: As Necessary
Content Type: XML or JSON
Category & Sport Info Data Points: Category Country Code Category Id Category Name
Competition Info Data Points: Stage Id
Stage Description
Stage Scheduled Stage Scheduled End
```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.com/oddscomparison-futures/trial/v2/en/sports/sr:sport:9/stages.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.com") conn.request("GET", "/oddscomparison-futures/trial/v2/en/sports/sr:sport:9/stages.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.com/oddscomparison-futures/trial/v2/en/sports/sr:sport:9/stages.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Sport Stages feed by replacing the parameters in the following URL: https://api.sportradar.com/oddscomparison-futures/`{access_level}`/`{version}`/`{language_code}`/sports/`{sport_id}`/stages.`{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: v2). | | `language_code` | Supported Locales | | `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
Update Frequency: As Necessary
Content Type: XML or JSON
Category & Sport Info Data Points: Sport Id Sport Name Sport Type
```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.com/oddscomparison-futures/trial/v2/en/sports.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.com") conn.request("GET", "/oddscomparison-futures/trial/v2/en/sports.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.com/oddscomparison-futures/trial/v2/en/sports.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Sports feed by replacing the parameters in the following URL: https://api.sportradar.com/oddscomparison-futures/`{access_level}`/`{version}`/`{language_code}`/sports.`{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: v2). | | `language_code` | Supported Locales | | `format` | xml or json. | | `your_api_key` | Your API key. | Return to top ## Stage Mappings Provides stage ID mapping between League Specific and General Sport ID types.
TTL / Cache: 600 seconds
Update Frequency: As Necessary
Content Type: XML or JSON
Mapping Info Data Points: External Id Id
```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.com/oddscomparison-futures/trial/v2/en/stages/mappings.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.com") conn.request("GET", "/oddscomparison-futures/trial/v2/en/stages/mappings.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.com/oddscomparison-futures/trial/v2/en/stages/mappings.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. Access the Stage Mapping feed by replacing the parameters in the following URL: https://api.sportradar.com/oddscomparison-futures/`{access_level}`/`{version}`/`{language_code}`/stages/mappings.`{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: v2). | | `language_code` | Supported Locales | | `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-futures/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.com")

conn.request("GET", "/oddscomparison-futures/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.com/oddscomparison-futures/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 (&).
Replace placeholders with the following query parameters: | Parameter | Description | | --------- | ----------- | | `start` | Number to start the list of results from.
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: We present date only values in the ISO 8601 standard format.

Example: 2013-04-03

For more information: https://en.wikipedia.org/wiki/ISO_8601

Q: What time zone 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-futures/trial/v2/openapi/swagger/index.html

Q: 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: How long are odds stored and provided?

A: Odds are removed from all endpoints after 24 hours of their completion. This will include competition and sport event information.

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