Browse by category below. Select any group or question to jump straight to it. Use your browser's find (Ctrl/Cmd + F) to search the page.
Table of Contents
Getting Started
Coverage
What sports are covered?
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.
Discovering the sports and competitions with odds, and reading the per-competition coverage flags, is walked through on API Basics in the Odds Comparison Integration Guide.
What competitions are covered?
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.
Integration
How do I use the Change Log endpoint?
Sport Event Markets Change Log 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 sport_event_markets_odds_change attribute. This can be used to trigger calls to the Sport Event Markets endpoint.
Monitoring Odds Changes in the Odds Comparison Integration Guide builds the full change-log polling loop, including how to reconcile after a gap longer than the five-minute window.
How can I find the values for various enum data points within the API?
For the most up-to-date values, please see the Schema section of the OpenAPI specification here.
What format are date fields presented in?
Date values are presented in the ISO 8601 standard format.
Timestamp fields are in UTC. These could include scheduled start times or play-by-play event timestamps. Examples: scheduled="2024-02-11T23:30:00+00:00", created_at="2024-02-11T23:43:20+00:00"
Date-only fields reflect local league convention and are not UTC-adjusted. These could include season start dates and birth dates. Examples: start_date="2024-08-16", date_of_birth="1984-09-22"
Timestamps across the API are covered on API Basics in the Odds Comparison Integration Guide; the date window of the Daily Schedules feed is on Pulling Prematch Odds.
How do I locate the TTL (Time to Live)/cache on an API endpoint?
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
Every feed's TTL, with recommended polling cadences and the bookmaker price refresh cycle per package, is charted on Update Frequencies in the Odds Comparison Integration Guide.
Odds Data
Odds Availability
What is the refresh rate of the Prematch data?
We check for changes to the data every 60 seconds.
The refresh cycle for each package sits beside the TTL chart on Update Frequencies in the Odds Comparison Integration Guide.
Why do some outcomes show nonsensical odds?
If an outcome is flagged as removed="true" and is displaying decimal odds of 1.00, then 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.
The removed lifecycle at book and outcome level is explained on Odds Comparison Fundamentals in the Odds Comparison Integration Guide.
What happens if a bookmaker suspends/removes a market or outcome?
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.
Pulling Prematch Odds in the Odds Comparison Integration Guide shows how suspended books appear on a live board and how to treat them.
Closing Lines
How do I tell what the closing odds/line was?
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.
Pulling Prematch Odds in the Odds Comparison Integration Guide shows the retained prices read as closing lines, and Tracking Live Odds covers where in-play prices continue once the pre-match board comes down.
Mapping
What is the best method to map IDs from the Odds Comparison API to other Sportradar APIs?
The Mapping API is the recommended solution for linking entity IDs across Sportradar products. It supports mapping for competitions, competitors, players, seasons, and sport events, and is designed to scale across multiple APIs without the need to paginate through large feeds.
If you need to map IDs specifically within the Odds Comparison API, dedicated Mapping feeds are also available. These feeds provide ID mappings for players, competitions, sport events, teams, and stages between General Sport IDs and League Specific IDs.
ID Handling in the Odds Comparison Integration Guide walks through joining odds to the League Specific APIs, and the Mapping API Integration Guide covers the entity-level lookups.
Why would a player ID (ex. sr:player:830531) appear more than once in the Player Mappings endpoint?
sr:player:830531) appear more than once in the Player Mappings endpoint?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 UFL APIs.
Repeated mapping entries per player are explained on ID Handling in the Odds Comparison Integration Guide.
More questions?Reach out to [email protected] for further assistance.
