Frequently Asked Questions



Scrambled Data

What does "scrambled" data mean?

Our Free Trial has some values that are “scrambled,” or a value that is randomly adjusted up or down between 5% and 20% from the actual value. Certain data points like scores and game stats are scrambled, while other data points, like schedules, teams and players are not scrambled.

Why scramble your data?

By scrambling certain data points, like scores, stats and odds, allows us to give away our Free Trial without ever expiring so that customers can do a full assessment of our feeds and start integration before ever having to pay for an upgrade to one of our Premium API Subscriptions.

What is scrambled vs what is accurate?

Check the 5th column in our Data Dictionary to see if a specific data point is scrambled or accurate.

FREE TRIAL OVERVIEW

Commercial APIs - This Free Trial never expires. It gives access to all endpoints/operations (albeit with some data points scrambled), 1,000 API calls per month, and a 10-minute delay on live updates. Use this for an initial assessment of our APIs and to start integration. If all looks good, Contact Us to discuss the pricing of our paid APIs.

What if I need more API calls for my API Free Trial?

If you would prefer to get more API calls, you can request a Developer Subscription which is the same as the Free Trial except (a) it comes with 100,000 API calls per month (b) a Developer Subscription API key will work for any of the sports we cover.

AVAILABLE SPORTS & LEAGUES

What specific sports and leagues do you cover?

AVAILABLE DATA FEEDS

What data feeds do you offer for each sport, and what data points are available within each feed?

Our data feeds are segmented into three groups:

  1. Free: what is offered for free/accurate via our Free Trial, including things such as:
    • Schedules
    • Standings
    • Teams
    • Players/Rosters
  2. Core Feeds:
    • Tier 1: Scores
    • Tier 2: Team Stats
    • Tier 3: Player Stats
    • Tier 4: Play by Play
  3. Supplemental Feeds:
    • Fantasy
    • Aggregated Odds
    • Team / Player Props
    • News
    • Headshots

To see what data points are available for each of these feeds, check out our Data Dictionary.

AVAILABLE API SUBSCRIPTIONS

What types of subscriptions are offered for the various APIs and feeds you offer?

Post-Game Subscription - allows access to any data before and after a game, but does not allow for access to any live in-game data while games are in progress.

Real-Time Subscription - allows access to the data at all times, including before and after each game, and access to live in-game updates.

INTEGRATION GUIDES & TOOLS

What tools can you offer developers above and beyond just access to the API?

We've put together the following tools and resources to help you get the most out of SportsDataIO. As always, API documention and the ability to preview our endpoints can be found on our developer portal.

What guides can you offer to a beginner who is just learning about using APIs?

The following guides can help you get rolling with SportsDataIO. In addition, there is a plethora of online courses and articles on building APIs. Some of the big name providers of such courses are PluralSight and Lynda.

Timezones & Additional Information

Which time zones do you use for the various leagues and sports you cover?

We use Eastern Time Zone (EST) for all leagues/sports except for soccer, which uses UTC.

For MLB, how do you handle postponed & suspended games?

Postponed Games
If an MLB game is postponed due to weather (or any other reason), we set Game.Status = "Postponed" for the game in question. Postponed games are essentially canceled, as they have no chance to be played to completion (unlike Suspended games, see below). When the MLB announces the date/time of the make-up game, we create a new Game record for the make-up game. In order to tie the postponed & make-up games together, we set the following fields on the both Game records: RescheduledGameID and RescheduledFromGameID

Suspended Games
If an MLB game is suspended due to weather (or any other reason), we set Game.Status = "Suspended" for the game in question. Suspended games are halted, but still have a chance to be played to completion. If a Suspended game resumes, we set Game.Status = "InProgress" and continue to cover the game. If a Suspended game is called off, then one of the two scenarios will follow. (read more about MLB game suspensions here)

  • Suspended Game is Postponed Before Becoming a Regulation Game
    Based on the MLB Rulebook, if the game does NOT meet certain criteria (see below), then it is declared "No Game" and it is postponed, as if it has never played. We'll set Game.Status = "Postponed" and then proceed with the rules for postponed games.

    If a game is called, it is a regulation game: (1) If five innings have been completed; (2) If the home team has scored more runs in four or four and a fraction half-innings than the visiting team has scored in five completed half-innings; (3) If the home team scores one or more runs in its half of the fifth inning to tie the score.

  • Suspended Game Becomes a Regulation Game
    Based on the MLB Rulebook, if the game meets certain criteria (see below), then it is declared an official game, and it is to be resumed at a later date where the game left off. Therefore, the Game record remains in our database with Game.Status = "Suspended" until play is resumed at a later date (sometimes as late as several weeks later). When the game resumes play, the Game record gets set with Game.Status = "InProgress" and everything continues as a game normally would. In this scenario, the Game.GameID, Game.Day, and Game.DateTime never change.

    If a game is called, it is a regulation game: (1) If five innings have been completed; (2) If the home team has scored more runs in four or four and a fraction half-innings than the visiting team has scored in five completed half-innings; (3) If the home team scores one or more runs in its half of the fifth inning to tie the score.

For NFL, how do you handle postponed games and other schedule changes?

Prior to 2020 NFL Season (COVID affected), the NFL would rarely make significant changes to their schedule, other than flexing games to different times on the same day. However, the 2020 season was heavily affected by COVID, so we are looking to clarify how we'll be handling such schedule changes. Our policies on this matter are very similar to how MLB behaves, but slightly different, as explained below.

If an NFL game is postponed/rescheduled due to COVID, or any other reason, and the rescheduled game occurs in the same week as the originally scheduled game, then we will keep the same ScoreID/GameKey, and simply update the record to indicate the new date & time. However, if the rescheduled game occurs in a different week than the originally scheduled game, then we will mark the original record as Score.Status = "Postponed" and create a new Score record for the rescheduled game.

The logic for determining whether or not we create a new Score record is fairly straightforward. If the Season, SeasonType, Week, AwayTeam and HomeTeam for the rescheduled game are all the same as the originally scheduled game, then we'll keep the existing Score record. If one of the aforementioned fields is different, we would create a new Score record and mark the originally scheduled game as postponed.

A week in the NFL season would naturally span games from Thursday through Tuesday. If the NFL decides to schedule a game on a Wednesday, we will follow the lead of the NFL to determine the week to which the game should be assigned.

Any games that have been postponed or canceled will have their projection records removed from the game altogether.

For NFL, how do I pull schedules/scores for the postseason?

To pull postseason/playoff data, you'll need to pass 2018POST as the season parameter to the endpoint in question.

For example, to pull the schedule for the NFL playoffs wildcard round, please call the NFL Scores endpoint as follows.
https://api.sportsdata.io/v3/nfl/scores/json/scoresbyweek/2018post/1