Horse Racing v2

Frequently Asked Questions
API API Version
Horse Racing v2
Note: Authentication is required for all API calls.
## Horse Racing v2 API Map To best utilize the Horse Racing 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 results for a given race: >
  1. Call the Seasons resource for a list of seasons, making note of the Stage Id for your desired season
  2. Call the Season Schedule using the Stage Id and locate your desired race
  3. Call the Sport Event Summary using your race Stage Id
>The summary for your race is displayed. The primary feed requires only a human-readable parameter to call the endpoint. This feed provides Stage Ids which can be used to generate the profile, summary, and schedule feeds. ## Competitor Profile ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/horseracing/trial/v2/en/competitors/sr:competitor:568029/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", "/horseracing/trial/v2/en/competitors/sr:competitor:568029/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/horseracing/trial/v2/en/competitors/sr:competitor:568029/profile.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. This endpoint retrieves the Competitor Profiles. https://api.sportradar.us/horseracing/`{access_level}`/`{version}`/`{language_code}`/profile.`{format}`?api_key=`{your_api_key}` Replace placeholders with the following query parameters: | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production) or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v2). | | `language_code` | Optional 2 letter code for supported languages: en (English), ru (Russian), and zh (simplified Chinese). | | `format` | xml or json. | | `your_api_key` | Your API key. | Return to API map ## Season Schedule ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/horseracing/trial/v2/en/sport_events/sr:stage:523540/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", "/horseracing/trial/v2/en/sport_events/sr:stage:523540/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/horseracing/trial/v2/en/sport_events/sr:stage:523540/schedule.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. This endpoint retrieves the Season Schedule. https://api.sportradar.us/horseracing/`{access_level}`/`{version}`/`{language_code}`/sport_events/`{stage_id}`/schedule.`{format}`?api_key=`{your_api_key}` Replace placeholders with the following query parameters: | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production) or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v2). | | `language_code` | Optional 2 letter code for supported languages: en (English), ru (Russian), and zh (simplified Chinese). | | `stage_id` | Stage id of a given season. | | `format` | xml or json. | | `your_api_key` | Your API key. | Return to API map ## Seasons ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/horseracing/trial/v2/en/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", "/horseracing/trial/v2/en/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/horseracing/trial/v2/en/seasons.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. This endpoint retrieves the list of available seasons. https://api.sportradar.us/horseracing/`{access_level}`/`{version}`/seasons.`{format}`?api_key=`{your_api_key}` Replace placeholders with the following query parameters: | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production) or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v2). | | `language_code` | Optional 2 letter code for supported languages: en (English), ru (Russian), and zh (simplified Chinese). | | `format` | xml or json. | | `your_api_key` | Your API key. | Return to API map ## Sport Event Summary (Event) ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/horseracing/trial/v2/en/sport_events/sr:stage:523542/summary.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/horseracing/trial/v2/en/sport_events/sr:stage:523542/summary.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.us/horseracing/trial/v2/en/sport_events/sr:stage:523542/summary.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. This endpoint retrieves the summary of an event. https://api.sportradar.us/horseracing/`{access_level}`/`{version}`/`{language_code}`/sport_events/`{stage_id}`/summary.`{format}`?api_key=`{your_api_key}` Replace placeholders with the following query parameters: | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production) or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v2). | | `language_code` | Optional 2 letter code for supported languages: en (English), ru (Russian), and zh (simplified Chinese). | | `stage_id` | Stage id of a given event. | | `format` | xml or json. | | `your_api_key` | Your API key. | Return to API map ## Sport Event Summary (Season) ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/horseracing/trial/v2/en/sport_events/sr:stage:523540/summary.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/horseracing/trial/v2/en/sport_events/sr:stage:523540/summary.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.us/horseracing/trial/v2/en/sport_events/sr:stage:523540/summary.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. This endpoint retrieves the summary of a season. https://api.sportradar.us/horseracing/`{access_level}`/`{version}`/`{language_code}`/sport_events/`{stage_id}`/summary.`{format}`?api_key=`{your_api_key}` Replace placeholders with the following query parameters: | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production) or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v2). | | `language_code` | Optional 2 letter code for supported languages: en (English), ru (Russian), and zh (simplified Chinese). | | `stage_id` | Stage id of a given season. | | `format` | xml or json. | | `your_api_key` | Your API key. | Return to API map ## Frequently Asked Questions

Q: What competitions can be found in the API?

A: We currently cover the Triple Crown and Breeders' Cup.

Q: How far back does the data go?

A: Only the current season.

Q: Are events covered live?

A: No, all results are entered post-event. Results are expected 1-2 hours after the race has completed.

Q: What statistics are in the API?

A: Only time, positions, posts, and lengths where applicable.

Q: When are the competitor lists added to the sport event summaries?

A: Up to a few minutes before the event is run.

Q: How do I know which endpoints to hit?

A: There are only three endpoint "types": Profiles, season-based, and sport event-based. If the variable ID is stage based, you need to check the stage node to see what type it is. If type="season" that ID is only designed to be placed in the season based endpoints. However, if you place a season ID in the sport_event summary endpoint it will return the results at a season level. Every other stage ID including season, or events can be used on the sport_event summary to get results for that stage.

Q: What format are date fields presented in?

A: When we present date only values we present these in the ISO 8601 standard format.
ex: 2013-04-03
We use these for attributes that have date and no time (such as birthdate). For more information: https://en.wikipedia.org/wiki/ISO_8601

Q: What format are the date/time fields presented in?

A: All of our Date/Time attributes are in UTC, presented in the ISO 8601 standard format.
ex: 2013-04-03T18:15:00+00:00
For more information: https://en.wikipedia.org/wiki/ISO_8601

Q: What are the possible stage types that I can expect in the feeds?

A: Here is a list of possible stage types:

  • season
  • sport
  • event
Return to top

Docs Navigation