Winter Olympics v3

Frequently Asked Questions
API API Version
Winter Olympics v3
Note: Authentication is required for all API calls.
## Daily Results ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/olympics/trial/v3/en/schedules/2100-02-10/results.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", "/olympics/trial/v3/en/schedules/2100-02-10/results.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/olympics/trial/v3/en/schedules/2100-02-10/results.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. This endpoint retrieves the Daily Results. https://api.sportradar.us/olympics/`{access_level}`/`{version}`/`{language_code}`/schedules/`{year}`-`{month}`-`{day}`/results.`{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), Testing (testing), or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v3). | | `language_code` | Optional 2 letter code for supported languages: en (English), ru (Russian), and zh (simplified Chinese). | | `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. | ## Daily Schedule ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/olympics/trial/v3/en/schedules/2100-02-10/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", "/olympics/trial/v3/en/schedules/2100-02-10/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/olympics/trial/v3/en/schedules/2100-02-10/schedule.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. This endpoint retrieves the Daily Schedule. https://api.sportradar.us/olympics/`{access_level}`/`{version}`/`{language_code}`/schedules/`{year}`-`{month}`-`{day}`/schedules.`{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), Testing (testing), or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v3). | | `language_code` | Optional 2 letter code for supported languages: en (English), ru (Russian), and zh (simplified Chinese). | | `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. | ## Discipline Results ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/olympics/trial/v3/en/schedules/sr:sport:49/results.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", "/olympics/trial/v3/en/schedules/sr:sport:49/results.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/olympics/trial/v3/en/schedules/sr:sport:49/results.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. This endpoint retrieves the results by discipline. https://api.sportradar.us/olympics/`{access_level}`/`{version}`/`{language_code}`/schedules/`{sport_id}`/results.`{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), Testing (testing), or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v3). | | `language_code` | Optional 2 letter code for supported languages: en (English), ru (Russian), and zh (simplified Chinese). | | `sport_id` | Id of a given sport. | | `format` | xml or json. | | `your_api_key` | Your API key. | ## Discipline Schedule ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/olympics/trial/v3/en/schedules/sr:sport:4/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", "/olympics/trial/v3/en/schedules/sr:sport:4/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/olympics/trial/v3/en/schedules/sr:sport:4/schedule.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. This endpoint retrieves the schedule by discipline. https://api.sportradar.us/olympics/`{access_level}`/`{version}`/`{language_code}`/schedules/`{sport_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), Testing (testing), or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v3). | | `language_code` | Optional 2 letter code for supported languages: en (English), ru (Russian), and zh (simplified Chinese). | | `sport_id` | Id of a given sport. | | `format` | xml or json. | | `your_api_key` | Your API key. | ## Event Summary ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/olympics/trial/v3/en/sport_events/test:race:0/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", "/olympics/trial/v3/en/sport_events/test:race:0/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/olympics/trial/v3/en/sport_events/test:race:0/summary.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. This endpoint retrieves the Event Summary. https://api.sportradar.us/olympics/`{access_level}`/`{version}`/`{language_code}`/sport_events/`{sport_event_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), Testing (testing), or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v3). | | `language_code` | Optional 2 letter code for supported languages: en (English), ru (Russian), and zh (simplified Chinese). | | `sport_event_id` or `stage_id` | Id of a given sport event or stage. | | `format` | xml or json. | | `your_api_key` | Your API key. | ## Event Timeline ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/olympics/trial/v3/en/sport_events/test:match:0/timeline.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", "/olympics/trial/v3/en/sport_events/test:match:0/timeline.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/olympics/trial/v3/en/sport_events/test:match:0/timeline.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. This endpoint retrieves the Event Timeline. https://api.sportradar.us/olympics/`{access_level}`/`{version}`/`{language_code}`/sport_events/`{sport_event_id}`/timeline.`{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), Testing (testing), or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v3). | | `language_code` | Optional 2 letter code for supported languages: en (English), ru (Russian), and zh (simplified Chinese). | | `sport_event_id` | Id of a given sport event. | | `format` | xml or json. | | `your_api_key` | Your API key. | ## Match Lineups ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/olympics/trial/v3/en/sport_events/test:match:0/lineups.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", "/olympics/trial/v3/en/sport_events/test:match:0/lineups.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/olympics/trial/v3/en/sport_events/test:match:0/lineups.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. This endpoint retrieves the Match Lineups. https://api.sportradar.us/olympics/`{access_level}`/`{version}`/`{language_code}`/sport_events/`{sport_event_id}`/lineups.`{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), Testing (testing), or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v3). | | `language_code` | Optional 2 letter code for supported languages: en (English), ru (Russian), and zh (simplified Chinese). | | `sport_event_id` | Id of a given sport event. | | `format` | xml or json. | | `your_api_key` | Your API key. | ## Medals ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/olympics/trial/v3/en/medals.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", "/olympics/trial/v3/en/medals.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/olympics/trial/v3/en/medals.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. This endpoint retrieves the Medals. https://api.sportradar.us/olympics/`{access_level}`/`{version}`/`{language_code}`/medals.`{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), Testing (testing), or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v3). | | `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. | ## Olympic Schedule ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/olympics/trial/v3/en/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", "/olympics/trial/v3/en/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/olympics/trial/v3/en/schedule.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. This endpoint retrieves the Olympic Schedule. https://api.sportradar.us/olympics/`{access_level}`/`{version}`/`{language_code}`/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), Testing (testing), or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v3). | | `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. | ## Participants ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/olympics/trial/v3/en/participants.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", "/olympics/trial/v3/en/participants.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/olympics/trial/v3/en/participants.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. This endpoint retrieves the Participants. https://api.sportradar.us/olympics/`{access_level}`/`{version}`/`{language_code}`/participants.`{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), Testing (testing), or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v3). | | `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. | ## Records ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/olympics/trial/v3/en/records.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", "/olympics/trial/v3/en/records.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/olympics/trial/v3/en/records.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. This endpoint retrieves the Records. https://api.sportradar.us/olympics/`{access_level}`/`{version}`/`{language_code}`/records.`{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), Testing (testing), or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v3). | | `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. | ## Tournament Standings ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/olympics/trial/v3/en/tournaments/test:tournament:12865/standings.xml?api_key={your_api_key}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPSConnection("api.sportradar.us") conn.request("GET", "/olympics/trial/v3/en/tournaments/test:tournament:12865/standings.xml?api_key={your_api_key}") res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ```shell curl -X GET "https://api.sportradar.us/olympics/trial/v3/en/tournaments/test:tournament:12865/standings.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. This endpoint retrieves the Tournament Standings. https://api.sportradar.us/olympics/`{access_level}`/`{version}`/`{language_code}`/tournaments/`{tournament_id}`/standings.`{format}`?api_key=`{your_api_key}` Replace placeholders with the following query parameters: | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production), Testing (testing), or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v3). | | `language_code` | Optional 2 letter code for supported languages: en (English), ru (Russian), and zh (simplified Chinese). | | `tournament_id` | Id of a given tournament. | | `format` | xml or json. | | `your_api_key` | Your API key. | ## Tournament Team Statistics ```ruby require 'uri' require 'net/http' require 'openssl' url = URI("https://api.sportradar.us/olympics/trial/v3/en/tournaments/test:tournament:12865/teams/test:competitor:39888/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", "/olympics/trial/v3/en/tournaments/test:tournament:12865/teams/test:competitor:39888/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/olympics/trial/v3/en/tournaments/test:tournament:12865/teams/test:competitor:39888/statistics.xml?api_key={your_api_key}" ``` > The above command returns xml structured like this. This endpoint retrieves the Team Tournament Statistics. https://api.sportradar.us/olympics/`{access_level}`/`{version}`/`{language_code}`/tournaments/`{tournament_id}`/teams/`{team_id}`/statistics.`{format}`?api_key=`{your_api_key}` Replace placeholders with the following query parameters: | Parameter | Description | | --------- | ----------- | | `access_level` | Defines the access level of your API key as Production (production), Testing (testing), or Trial (trial). | | `version` | Version number of the API you are accessing (Current Version: v3). | | `language_code` | Optional 2 letter code for supported languages: en (English), ru (Russian), and zh (simplified Chinese). | | `tournament_id` | Id of a given tournament. | | `team_id` | Id of a given team. | | `format` | xml or json. | | `your_api_key` | Your API key. | ## Frequently Asked Questions

Q: What format are date fields presented in?

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

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

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

Q: What are the valid sport event statuses found in the feeds?

A: Here is a list of the valid unit statuses:

  • not_scheduled
  • live
  • postponed
  • delayed
  • canceled
  • ended
  • closed

Q: What are the valid unit statuses found in the Event Results feed?

A: Here is a list of the valid unit statuses:

  • closed
  • complete
  • inprogress
  • scheduled
  • scheduled_break

Q: What are the valid record types?

A: Here is a list of the valid record types:

  • Olympic Record
  • World Record
  • African Record
  • Top 10 All Time
  • Area Record
  • Asian Record
  • Best Olympic Performances (Top 10)
  • European Record
  • North American Record
  • National Record
  • Oceania Record
  • Olympic Decathlon Best
  • Olympic Heptathlon Best
  • Olympic Record Personal Best
  • South American Record
  • Seasonal Best Top 10-2016 Results by July 23
  • World Decathlon Best
  • World Decathlon Junior Best

Q: How do I see the results of a specific run or heat in a given sport/discipline?

A: The Event Summary takes any sport event ID parameter. Find the sport ID, and call the schedule of that sport to find the event ID. Then use the Event Summary endpoint with that sport event ID. Within that endpoint, if the event consists of stages, you will find the stage ids, which you can use as a parameter in the URL of the same endpoint. If there are specific heats within the given stage you may once again use those IDs in the Event Summary endpoint to get the results of that specific heat.

Q: What are the sports IDs for the Winter Olympics?

A: Here is a list of sport IDs used for the Winter Olympics:

  • Alpine Skiing: sr:sport:43
  • Biathlon: sr:sport:44
  • Bobsleigh: sr:sport:45
  • Cross-Country: sr:sport:46
  • Curling: sr:sport:28
  • Figure Skating: sr:sport:102
  • Freestyle Skiing: sr:sport:103
  • Ice Hockey: sr:sport:4
  • Luge: sr:sport:51
  • Nordic Combined: sr:sport:47
  • Short Track: sr:sport:105
  • Skeleton: sr:sport:104
  • Ski Jumping: sr:sport:48
  • Snowboarding: sr:sport:49
  • Speed Skating: sr:sport:50

Q: What are the possible outcome values?

A: Here is a list of the possible outcome values:

  • gold
  • silver
  • bronze
  • q (qualified)
  • penalty
  • dns (did not start)
  • dnf (did not finish)
  • dqb (disqualified for unsportsmanlike behavior)
  • yellow_card
  • red_card

Q: Which events are covered live?

A: Ice Hockey and Curling. All other events have results entered after all heats are completed.

Q: What are the possible probability outcomes?

A: Different markets have different outcomes. The available markets for team vs. team events: (Ice Hockey and Curling)are currently:

  • home_team_winner
  • away_team_winner
  • draw

For all other events, each competitor will have a probability of winning the entire event (gold medal) associated.

Q: How often is the medal table updated?

A: The medals table is updated as soon as the medal winners are official announced by the IOC.

Q: What are all the possible attributes for the result element in the results feeds and event summary feed?

A: Here is a list of General Results:

  • gold
  • silver
  • bronze
  • position
  • time
  • points
  • handicap
  • did_not_finish
  • did_not_start
  • disqualified
  • details

Ski Jumping:

  • distance

Biathlon:

  • misses

Nordic Combined:

  • skijump_points
  • ski_time

Figure Skating:

  • points_short
  • points_short_men
  • points_short_women
  • points_free
  • points_free_men
  • points_free_women
  • points_pairs
  • points_ice_dancing

Q: Why are the results in the samples different from what appears in the documentation?

A: The documentation has been updated to reflect current work in progress, while the samples reflect the former state of the feed. The outcome attribute has been removed and replaced with new Boolean data points. We have added additional data points as reflected above.

Return to top

Docs Navigation