Sportradar Store
What is the Sportradar Store about?

Sportradar Store is a new way to access our selection of sports data products. The store offers interactive product previews, ordering options and self-service configuration – all in one place. We currently offer sports data widgets for the NFL, NBA, other basketball tournaments and most major soccer leagues as well as API feeds for more than 20 sports and numerous competitions around the world and will continuously add new sports, products and features.

Get your Sportradar products in three easy steps.

Explore - Order - Integrate:

  1. Browse our selection of APIs and Widgets, and add them to your cart.
  2. Select the leagues you want, request a proposal, and shortly after we will contact you with our offer.
  3. Access the key to your Sports API or get the code to configure and integrate your widgets, all within the Sportradar Store.
Do I need to register?

As a visitor, you can browse our product portfolio and explore interactive previews. If you would like to add products to the cart, and request a proposal, you need to register, first. As a registered client, you can request proposals, get automated trial feeds, save your custom themes, and configure all products once you purchased a license.

Did we receive your request for proposal?

Once you have submitted an order, you will see your request in My Orders. You will automatically be sent an order confirmation. Should you not receive an order confirmation, your e-mail address may be faulty or anti-spam software may have blocked our mail. In such cases, please contact our support team.

What happens after submitting a request for proposal?

Our regional sales team will get a notification about your request, and a member of the team will contact you, soon.

Buying products
Can I buy products in the Store?

Currently, you cannot buy products in the Store, directly. You can request a proposal, and a member of the sales team will contact you in due course in order to discuss your needs and wants and set up the right products for your purposes. You can track your order requests under My Orders and access your subscribed products in My Products.

Can I try products from the Store?

We do offer trial periods for our most of our products. You can either get an automated trial (e.g. for APIs) or request a proposal, discuss it with our sales team and then try out our products (e.g. widgets and some APIs) for a certain amount of time.

Why don't you show prices?

At this stage, we do not disclose prices without discussing a client's detailed requirements face-to-face.

How does payment work?

We do not yet offer online payment. After signing a contract, payment is per invoice. Self-service capabilities of the Store will continually be expanded in the future, online subscription and payment following as soon as possible.

How can I get technical support?

If you have technical questions, or issues with your purchased products, please use the contact form you find in the Help & Info section. A member of our support team will contact you, soon.

What are widgets?

Our sports data widgets are powered by our market-leading live data feeds and offer comprehensive real-time content for the most popular sports in the world. They can enrich your digital sports offer with graphically enhanced live sports content and provide your visitors with the latest breaking news, fixtures, statistics or results.

How can I adapt the design of a widget?

You can edit the design of your widget with the styling module in the widget configuration section. Select one of our pre-defined themes, or create your own custom theme. You can select "type" and "primary colour" with the colour picker or by entering the specific hex or rgb value. If you are happy with the result, you can save your theme to re-use it with other widgets. Custom themes are listed with the name you have provided. Please note that custom themes are not hosted by Sportradar, and you have to download and integrate the CSS file to your app or website.

How to integrate widgets?

After signing the contract, you can access the widget configuration and the embed code section in My Widgets. Having configured your data and styling/theme, you can copy or download the embed code. Integrate the code in you app or website. If you use a custom theme, you must also download and integrate the CSS file. Please refer to the widget's technical documentation for any details. After the widget is integrated, the content will be displayed automatically - based on your subscription and the specific widget configuration.

Widget integration - technical documentation

Including widget on page

First you need to include the widgetloader script (SIR widgets only support https protocol). Widgetloader will request additional assets on demand, when widgets start to get included on the page.

By default widgets will use english language. You can specify initial language with a data attribute.

<script type="application/javascript" src="" data-sr-language="en" async></script>

Additionaly you can provide initial matchId and teamId to be used by all widgets. If you set the matchId directly on the widget, it will be fixed to it. If you set it through widgetloader, it will be able to change by selecting matches in matchList or seasonFixtures widgets.

Widgetloader script will expose an API as a global variable. Once loaded it will also search for all elements with data-sr-widget attribute and use the value of that attribute to automatically add widgets to the page. Additional properties can be included as data attributes, where camel case javascript properties need to be converted to dash separated sttribute names.

<div class="sr-widget" data-sr-widget="team.comparison" data-sr-match-id="8736650"></div>

To add widgets later on, or to change anything regarding SIR framework, see public API documentation.

Programatic inclusion

If you want to add widgets via javascript (as opposed to only having divs placed around the page), you can add the following code snippet to the head section of your page:

<script type="text/javascript">
(function(a,b,c,d,e,f,g,h,i){a[e]||(i=a[e]=function(){(a[e].q=a[e].q||[]).push(arguments)},i.l=1*new Date,i.o=f,
)})(window,document,"script","","SIR", {
    language: 'en',
    matchId: '8736650', // default matchId to be used by all widgets

// start using global SIR object
SIR('addWidget', '#myWidgetDiv', 'match.scoreboard');

After this script executes (immediately), global function SIR will immediately be available for you to use. You can immediately add widgets, but they will load once framework and all dependencies are loaded. Click here for complete API documentation. With this snippet you can also change what global variable will framework consume by changing "SIR" parameter of the function to something else.


The preferred way to style widgets is using style generator on the Sportradar store - simpy include the generated file on your page. If you need more fine grained controll over styling, you can write your own styles, but we highly recommend to only style classes with '.srt-' prefix, which are meant for branding. We offer no guarantee that any other classes or internal widget structure won't change in the future - proceed at your own risk. You also need to use at least 2 class selectors for every rule ('.sr-bb' is always available on overy widget), so they are not overridden with our css normalization rules.

.sr-bb .srt-base-1 {
    background-color: #eee;

All widgets' class names are prefixed with 'sr-' or 'srt-' in order to avoid conflict with the rest of your page and we have a css normalization rules of form of '.sr-bb div {}'. Css isolation will only work as intended if the rest of your page isn't using 'sr-' or 'srt-' prefixes and you don't have rules for element selectors (e.g. 'div', 'span').

Simple Example

Here 'team.comparison' widget will automatically be included on the page once the widgetloader finishes loading. It will use the provided matchId prop from the data attribute.

<!DOCTYPE html>
    <title>Widgets test</title>
    <!-- widget container -->
    <div class="sr-widget" data-sr-widget="team.comparison" data-sr-match-id="8736650"></div>

    <!-- include widgetloader script -->
    <script type="application/javascript" src="" data-sr-language="ru" async></script>

Advanced example

In this example, we add a 'team.comparison' widget and change match id every three seconds. When "End this thing" button is clicked, widget is removed from the page

<!DOCTYPE html>
    <title>Widgets test</title>
    <div class="sr-widget"></div>

    <button onclick="endThisThing()" >END THIS THING</button>

    <script type="application/javascript" src="" data-sr-language="ru"></script>
        var matchIds = [7495002, 7495000, 7512390];
        var ix = 0;
        var interval;

        function addOrUpdateWidget(callback) {
            SIR.addWidget('.sr-widget', 'team.comparison', { matchId: matchIds[ix]}, callback);

            if (++ix >= matchIds.length) { ix = 0; }

        addOrUpdateWidget(function() {
            console.log('first widget rendered');

            interval = setInterval(addOrUpdateWidget, 3000);

        function endThisThing() {
            // SIR.removeWidget('.sr-widget');
            // it also accepts dom element:

There is an error message displayed in a widget - What does this mean?

Although we are trying to avoid this as much as possible, it may be the case that you experience some unforseen errors with a widget. We have six indicators which will show up when a widget is not displayed properly, in order to find a quick solution.

W Widget is not licensed. You are trying to show a widget which has not been activated for your account. Please get in touch with your sales contact in order to check whether this is missing in your order or needs to be added to the agreement. 
T  Tournament is not licensed. You are trying to show a tournament which has not been activated for your account. Please get in touch with your sales contact in order to check whether this is missing in your order or needs to be added to the agreement. 
D Domain is not licensed. You are trying to show a widget on a domain which is not licensed for your account. Please get in touch with your sales contact in order to check whether this is missing in your order or needs to be added to the agreement.
P There is no valid package. The widget cannot retrieve any data license from our backend. This could happen when e.g. your trial period has expired and the license is blocked. Please get in touch with your sales contact in order to check the cause.
L Licensing info for some reason didn’t reach the client (ie. client was trying to block licensing request or smth). Please get in touch with your sales contact in order to check the cause.


Data feeds return license error. This error message could be shown, e.g. when the odds feed is invalid and needs to be changed. Please contact our support team in order to let them check the technical setup.

If there is another error message or non at all shown please contact our support team and ideally include a screenshot of what you can (not) see and a screenshot of the browser console (click F12 and choose console).

Which data do you offer for widgets?

We currently offer data widgets for the NFL, NBA, other basketball tournaments and most major soccer leagues, but will continuously add new sports, leagues, and tournaments.

How can I get a data license?

Within the cart configuration process, you can select the data you are planning on presenting in your products. If you want to cover specific competitions, you can either use search, or filter leagues and tournaments. For a broad and convenient coverage, check out our "data packages".

What is a data package?

Data packages are bundles of leagues and tournaments which you can buy together at a very attractive price. You can use any of the included leagues and tournaments (expand package to see details).

Which web domains can I use for displaying widgets?

Products can only be used from web domains that are whitelisted. Within the cart configuration process, you can specify one or more web domains you are planning on using for your products. Once you are subscribed, these domains will be whitelisted, automatically.

Which languages do your widgets support

Sportradar's Widgets are built to function on a scalable level making it easy to change languages and apply them to your needs and user groups. Currently the following languages are available for the different sports and we are working hard in order to extend this list constantly.

Soccer Widgets:

  • English (en), Italian (it), Brazilian (br), German (de), Turkish (tr), Greek (el), Russian (ru), French (fr), Spanish (es), Swedish (se), Simplified Chinese (zh), Arabic (aa), Japanese (ja), Korean (ko)

Basketball / NBA Widgets:

  • English (en), Italian (it), Brazilian (br), German (de), Turkish (tr), Greek (el), Russian (ru), French (fr), Spanish (es), Swedish (se), Simplified Chinese (zh), Arabic (aa), Japanese (ja), Korean (ko)

NFL Widgets:

  • English (en) only

In order to change a language in a widget, just replace the two-letter language code (ISO 639-1) with the relevant equivalent, e.g. "fr" for French.

Which browsers do your widgets support?

All our widgets should work on all the operating systems and browsers starting with the respective versions mentioned below.

OS Windows (7+)
Mac (X10+) 
Android (4.4+) 
iOS (9.3+) 
Windows Phone (8.1+)
Browser Microsoft IE (11+)
Microsoft Edge (13+)
Firefox (45+)
Safari (9+) 
Android Browser (4.0+)
Live Match Trackers
What is data consumption for one match?

Based on our testing, we would estimate for a soccer match in LMT Essential:

500 kb – average initial load for first time users

40kb – average initial load for returning users

25kb  – average load per minute during a live match

What soccer leagues are covered?

The Live Match Tracker visualisation is built to support any match ID, and has fallbacks to present data in various levels of coverage. Our top level of coverage features ball-spotting and is available for most major competitions in the world. Other competitions may only offer data on which team has possession. The lowest level coverage will only show score changes. So while LMT will always load on your site, in some cases there will only be score changes (and of course text that tells user that coverage for this game is limited) or only possession information (attack, dangerous attack, ball safe).

Check out the LMT demo to see what matches look like for the competitions that you're interested in.

What is an API request?

API stands for “Application Programming Interface.” Basically, an API is how computers talk to each other to share data. Web applications will request data through an API, with the path and parameters provided defining what data is returned.

How do I get started sampling feeds?
You can get access to our complete set of data feeds by following these steps:
  1. Register for a Sportradar Store account.
  2. Create a Mashery ID by clicking on the "Trial" button and choose "No, create one".
  3. Go to "My Products" under your account and choose your Trial API key.
When does my trial API key run out?

Trial API keys will last for 90 days. However, we are willing to work with our prospective customers to allow ample time to sample all of our data feeds.

How many requests can I make with my trial API keys?

Each trial key is specific to a single sport, and is limited to 1,000 total calls over a rolling 30 day period.

How do I get access to a higher number of API requests?

Contact our sales colleagues and they will work with you to provide the access level you need to evaluate our products.

Will I be able to see all the data with my trial API key?

A trial key allows you access to the same data as is made available with a production key. A trial key allows you less calls per month as well as less calls per second rate or throttle limit compared to the other tiers. The data itself is not throttled or updated at a lesser frequency between trial and production access levels.

What do the frequency options mean?

In order to give our sales team an indication how much calls per month you want to have for your API, you have to select a frequency option before adding an API to your cart. However, this is only a first indication and the exact call limit will be discussed with our sales team. The call limit also depends on the coverage. E.g. for "basic score" coverage, you don't need a Real-time or Premium frequency since there is not enough data available to use this number of calls. That's why you'll have an individual conversation with one of our sales colleague in order to find the right call limit for your purposes.

Here is a more detailed explanation of the different sports.

Basic Daily updates
  • Game feeds pulled once per game
  • Schedule, standings and rosters pulled several times each week
Standard Updates at key game intervals (ca. every 15 minutes)
  • Game feeds pulled once every 15 minutes
  • Schedule, standings and rosters pulled several times each week
Premium Play-by-play and game stat updates in near real-time
  • Game feeds pulled once every 3 minutes
  • Schedule, standings and rosters pulled every day
Real-Time Real-time updates for all data across web, tablet and mobile applications
  • Game feeds pulled continuously
  • All other feeds pulled several times each day
Where do I find feed documentation?

You can find a detailed documentation for our API feeds here. We have two types of feed documentation. For product managers evaluating our coverage, our documentation page has detailed documents outlining every data point included in each feed. For developers parsing our feeds, we provide XSD files in our API gallery. The link to our documentation page is listed next to your API key.

What happens when I exceed my allocated number of requests?

We use two forms of rate limiting for each API we provide. First, depending on your contract level, we limit how many calls per second we accept from a particular account key to prevent overloading the API from a burst of activity. If you exceed this limit, you will receive an HTTP/1.1 403 error (“Forbidden - Account Over Queries Per Second Limit”) until the next second begins. Second, we specify how many calls each account key can make over a month. If you exceed this limit, we return a 403 error (“Forbidden - Account Over Rate Limit”). It is up to customers to monitor their contracted API usage.

Do I need separate keys for different versions of your APIs?

Yes, each version of our APIs require different keys (e.g., MLB v1 and MLB v2 require separate keys). If you currently have a key to an API that has a new version released, we will create a key for you as part of the new version release. This new key can be viewed on the My Account page when you login to the Sports Data API Portal and will have the same request limits as your key to the previous version. When a new version is created, Sports Data support will send a notification to the email address used to register with our Portal. To view the current versions of all of our APIs, please visit our API Gallery page.

Do I need separate keys for different NFL seasons?

No, with our NFL API, there is no need to have different keys for the preseason, regular season and postseason stats. Your key will allow access to every season by simply adjusting the request path. Please consult the NFL API documentation for further details.

Does Sportradar have a data quality team to ensure accurate data?

We do have a quality team - it is modeled much like a “pit boss” structure you would see in a casino. There are multiple layers of validation (checked against multiple public sources) to make sure that each stat is spot-on with the official league statistic. The data entry analyst has a “pit-boss” that typically has about 6 events he or she monitors. The “pit-boss” validates that the data is matching public sources in a timely manner and addresses issues immediately. There is then a supervisor who is checking on all the pit-bosses to make sure their games are tight as well (and then is available to address any scoring issues or concerns). We automate as much of this process as possible so that the validation (and alerts) highlight inconsistencies quickly and aggressively. The validation process is both automated and checked with human fail-safes to make sure we provide the highest quality possible.

When are NCAA Football polls and game coverage levels set?

The update schedule for college football during the season is:

  • Polls updated: 3:00pm CT Sundays
  • College Football Playoff Rankings is Created for the Week’s Games (9pm CT Tuesdays - beginning in week 10)
  • Schedule updates: Continuous and reviewed 7 days before
When are NFL injuries and transactions updated for NFL Classic?

The injuries, depth charts and transactions are updated on the following schedule through the regular season and postseason:

  • In-Season: W, TH, F, S: Updates by midnight CT (NOTE: Wednesday and Thursday, indicates player status as to whether they practiced or not. Friday report reflects official status for upcoming game: Out, Doubtful, Questionable, or Probable; Sunday morning limited updates up to game time)
  • Trades/transactions: Daily, noon and midnight CT
  • Depth charts: Same as injuries, official 10p CT Friday
  • To get injury information BEFORE Friday night when the games are initialized and the official game injury is posted on Friday night, you will need to iterate through all of the teams (use the hierarchy feed against the roster feed) to pull out all of the currently rostered players practice and injury status (it is always up to date). These are updated each day using a variety of sources for completeness.
Using NFL Classic, when I try to access an NFL game a few weeks out the URLS appear to be broken even though they are valid. Why? 
When we initialize a particular game we are creating the roster, depth charts and injuries for that specific game. Until this initialization process is complete - these links appear broken.
For the NFL Thursday game, we will initialize the game no later than the night before the game at 11:59pm CT, with injury updates and rosters.
Sunday games are initialized on Friday night, no later than 11:59pm CT. Friday night, when the NFL releases the OFFICIAL status - we make our updates, THEN create the games so we have the updated injury and roster status for each game going into the weekend - again as part of the permanent record for the game. Of course, we are updating on Saturday as information becomes available - but generally additional updates mostly are coming in closer to game time.
When are NFL Classic stats made official?

Post game, Sportradar US reviews all statistics and validates that they match official NFL stats. In the game node, the status attribute will change from “inprogess” to “complete” when the game is over. Once the stats have been validated against the league site, the status will change to “closed”. This process will be completed within an hour of the end of the game. It is worth noting that game statistics are often updated during the week (game and seasonal) to correct errors. Sportradar US monitors these changes and updates daily.

When is NFL Classic player participation data updated?

Player participation data (found in the Game Roster feed) is updated within an hour after a game is completed.

For NCAA Football, what defensive stats do you provide?

For “Full” coverage games, we provide INT and Sacks. For “Extended Boxscore” coverage we do not provide defensive stats at this time.

Which feeds will be included with each NCAAFB coverage level?

For all full coverage games, all game centric feeds are available in real time. These include the boxscore, extended boxscore, play by play, play summary, game statistics, etc.

For all extended boxscore games, the play-by-play and play summary feeds are not available. The boxscore and extended boxscore feeds are typically updated every 3-5 minutes. The game statistics and game summary feeds are available within 60 minutes of the official results being posted.
For NFL Classic and NCAAFB games, do the game IDs change?

These are the guidelines our live data entry team follows for NCAAFB and NFL:

  • If a game is rescheduled or postponed for a day/time in the same week, the day and time are updated, and the id stays the same.
  • If a game is rescheduled or postponed for a day/time that is in a different week, the game is recreated, causing the current game to be removed from the schedule and a new id generated for the game in the destination week.
Our recommendation is to frequently parse the schedule feeds storing info as you do now, and then comparing what you have stored to what is in the feed. If you see an ID that is removed for a given week, you can consider that game not available or moved.
For MLB, what is the process for games that are delayed, postponed, etc.?

For MLB games, especially early in the season, weather delays and game postponements are a common occurrence. Click here for a diagram that details how our process works for various types of game delays and movements.

When will the initial March Madness schedule be available?

The initial March Madness schedule will be available within 2 hours after the completion of the Selection Sunday show. Click here for a sample of how the initial schedule will look.

Info & Help
Do you need more Information, or technical support for your products?
Contact Us

Email address*


Phone Number


* required info