SIQ's preferred method of data delivery is via Google's Pub/Sub system. Other options availiable are POST via http, and RabbitMQ. This documentation focuses on Pub/Sub, but data structures are the same for all delivery mechanisms.
There are 5 core data types used: Schedule, Player Props, Outrights, Matchups, Player Props Results, Outrights Results, Matchup Results.
SIQ provides API access for all necessary data. After being issued your token, you can pull a lists of leagues, teams per league, the current schedule for a league and the markets for a league. With a game ID you can get the current state of the markets, or if the game is over you can pull the settlement for player props and outrights.
URL | Data |
---|---|
https://api.sportsiq.dev/v1/sport?token={token} | Leagues in our system |
https://api.sportsiq.dev/v1/team/{league id}?token={token} | Teams in a given league |
https://api.sportsiq.dev/v1/market/{league id}?token={token} | Markets for a given league |
https://api.sportsiq.dev/v1/schedule/{league id}?token={token} | Current schedule for the league |
https://api.sportsiq.dev/v1/props/{game id}?token={token} | The markets for this game, contains both player props and outrights |
https://api.sportsiq.dev/v1/propresult/{league id}/{game id}?token={token} | The player prop results for the game (only valid after the game ends) |
https://api.sportsiq.dev/v1/outrightresult/{league id}/{game id}?token={token} | The outrights results for the game (only valid after the game ends) |
The sport API data structure has one base elements, leagues.
An array of objects containing information about the leagues
id: An integer identifier for this league, unique
name: The name of the league
sport: The name of the sport
description: A description of the league
sport_id: An integer identifying the sport
The teams API data structure has two base elements, league and team_ids.
An object containing information about this league
id: An integer identifier for this league, unique
name: The name of the league
An array of objects containing information about the teams
id: the UUID assigned to this team, unique
name: the name of the team
short_name: the short name of the team
city: the city the team is in
The market API data structure has two base elements, league and markets.
And object containing information about this league.
id: An integer identifier for this league, unique
name: The name of the league
description: A description of the league
id: An integer identifier for this market, unique
name: The name of the market
includes_ot: An integer indicating whether or not this market includes over time {0 (not including overtime) or 1 (incudling overtime)}
in_running: An integer indicating whether or not this market is offered in-play {0 (not offered in-play) or 1 (offered in-play)}
prematch: An integer indicating whether or not this market is offered pre-match {0 (not offered pre-match) or 1 (offered pre-match)}
period: The period this market is offered for (all player props and outrights are CG "Complete Game" only)
market_type: An identifier for the makret, unique to league
The schedule data structure has three base elements, league and games
An object containing information about this league
id: the integer assigned to this league, unique {1001, 2001, 3001, 4001}
name: the name of this league {NFL, NBA, NHL, MLB}
sport: an identifier for the sport {National Football League, National Basketball Association, National Hockey League, Major League Baseball}
description: a description of the sport {National Football League, National Basketball Association, National Hockey League, Major League Baseball}
sport_id: the sport's id, unique {1, 2, 3, 4}
category: the sport's category - always USA
An array containing objects, each object has the same structure
id: the UUID assigned to this game, unique
sr_game_id: an integer assigned to this game, unique
genius_id: only used for NFL, 0 for all other leagues
rotation: the Don Best rotation id
scheduled: date and time, in UTC, of the start time for this game
time_change: boolean, has the start time for this game been changed
double_header: boolean, false for all leagues other than MLB, true if this game is part of a double header
radar_status: Bet Radar's status for this game - see note below for possible values and their meanings
donbest_status: deprecated, will be removed from message structure
status : the game's status - see note below for possible values and their meanings
away / home: two objects representing the team in the game, each of the same structure
id: the UUID assigned to this team, unique
sr_team_id: an integer assigned to this team, unique
name: the team's common name
full_name: the team's full name
abbr: the team's abbreviation
city: the team's city
pitcher: only used for MLB, an object indicating who is pitching
id: the UUID assigned to this player, unique
name: the player's name
Possible values for radar_status and status, and their meanings
scheduled | The game is scheduled to occur. |
created | The game has been created and we have begun logging information. |
inprogress | The game is in progress. |
halftime | The game is currently at halftime. |
complete | The game is over, but stat validation is not complete. |
closed | The game is over and the stats have been validated. |
cancelled | The game has been cancelled. No makeup game will be played as a result. |
delayed | The start of the game is currently delayed or the game has gone from in progress to delayed for some reason. |
postponed | The game has been postponed, to be made up at another day and time. Once the makeup game is announced, a new game and ID will be created and scheduled on the announced makeup date. |
time-tbd | The game has been scheduled, but a time has yet to be announced. |
if-necessary | The game will be scheduled if it is required. |
unnecessary | The series game was scheduled to occur, but will not take place due to one team clinching the series early. |
The player props and outrights API data structure has one base element, players.
an array containing objects with the same structure
side: string, home or away
startingPitcher: boolean, in MLB, true if this player is the starting pitcher; false otherwise and for all other leagues
battingOrder: integer, in MLB represents where in the batting order this player is, zero for all other leagues
questionable: boolean, indicates if this player is questionable to play
probable: boolean, indicates if its probable if this player will play
position: string, represents this player's position on the field/court/pitch/ice
suspended: boolean, represents if this player is suspended
game_id: UUID, represents what game this data is for, unique
sr_game_id: integer, represents what game this data is for, unique
genius_game_id: integer, for NFL represents what data this game is for, zero for all other leagues
rotation_id: integer, the Don Best Rotation ID
team_id: UUID, represents what team this player is on, unique
sr_team_id: integer, represents what team this player is on, unique
player_id: UUID, represents the player, unique
sr_player_id: integer, represents the player, unique
player: string, the players name
ui: internal use only
num: integer, the players jersey number
PF: integer, for NBA the number of personal fouls for this player, zero for all other leagues
FT: integer, for NBA the number of free throws for this player, zero for all other leagues
team_id_color: hexadecimal, the colour used to represent the team
props: an object containing this players most recent player props and outrights data
PAHR2 - note that this can be any type
stat: integer, this player's stat for this market, zero for outrights
sequence: internal use only
drive: internal use only
period: string, what period of the game these odds are for, for player props and outrights, always CG
oddsType: string, either player-props or outrights
marketName: string, the name of this market
marketId: integer, represents this market, unique
ladder: internal use only
market: an array containing one object
ui: internal use only
active: boolean, false if the market is suspended and not to be traded
display: internal use only
key: string, TARGET (hyphen) ZERO (hyphen) PERIOD (hyphen) TYPE
ref: integer, a concatenation of the Don Best rotation number, zero, and the players jersey
rot: integer, the Don Best Rotation ID
live: boolean, true if the game is in-play
sh: internal use only
target: float, the target - or handicap - of this market
timestamp: string, what time the data was generated, UTC
rnrs: an array containing one object for outrights, two for player-props
t: float, the target - or handicap - of this market
p: float, the price of the market in decimal
us: integer, the price of the market in US
s: string, the side for this market - always o for outrights, either o or u for player props
ladderIndex: internal use only
pointOffset: internal use only
priceOffset: internal use only
manualPoint: internal use only
manualPriceOffset: internal use only
adminPointOffset: internal use only
adminPriceOffset: internal use only
The player-props results API data structure has three base elements.
A UUID uniquely identifying this game
When this data was generated, UTC
An array of objects
player_id: a UUID uniquely identifying this player
sr_player_id: an integer uniquely identifying this player
timestamp: when this data was generated, UTC
game_id: a UUID uniquely identifying this game
sr_game_id: an integer uniquely identifying this game
odds: an array of objects
game_id: a UUID uniquely identifying this game
sr_game_id: an integer uniquely identifying this game
stat: the player's stat for this markets
isCancelled: is this market cancelled?
period: always CG for player-props
rotation: the Don Best rotation id
ref: rotation - zero - jersey
type: the type of this market, unique to league
id: the id of this market, unique
name: the name of this market
markets: an array of objects
rnrs: an array with two objects
t: the target or handicap for this market
t2: zero
s: O or U
result: the result for this side of this line - Won, Lost, Push, Cancelled
key: TARGET (hyphen) ZERO (hyphen) PERIOD (hyphen) TYPE
target: the target or handicap for this market
target2: zero
The base outrights results API data structure is an array of objects.
A UUID to uniquely identify the game
An integer to uniquely identify the game
An integer to uniquely identify the market
Always CG for outrights
The name of the market
The markets type, unique to league
An array of objects
rnrs: an array of objects
player: an object
player_id: a UUID to uniquely identify this player
sr_player_id: an integer to uniquely identify this player
minutes: null
stat: the players stat for this market
target: the target or handicap for this market
s: the player's name
t: the target or handicap for this market
result: the result - Won, Lost, Push, Cancelled