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.
The core data types used are: 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.
The schedule data structure has three base elements, league, games, and event_type.
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
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
Always schedule
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 data structure has three base elements, timestamp, entities, and odds.
When this data was generated
An array containing objects, for player-prop messages all objects in the array have the same structure
entity_type: always player
entity_index: this objects index in the entitles array
player_id: the UUID assigned to this player, unique
sr_player_id: the integer assigned to this player, unique
player_name: the players name
sr_team_id: the integer assigned to this player's team, unique
game_id: the UUID assigned to this game, unique
sr_game_id: the integer assigned to this game, unique
genius_game_id: only used for NFL, 0 for all other leagues
position: this players position on the team
side: this teams side for the game - either away or home
team_id: the UUID assigned to this team, unique
ref: a concatenation of the Don Best Rotation number, zero, and the player's jersey
An array containing objects, for player-prop messages all objects in the array have the same structure
id: an integer assigned to the market, unique
period: the period of the game this market applies to, for player-prop messages, always CG
name: the name of this market, unique to the league
type: the market's type, unique
stats: this player's stat for this market
odds_type: the type of odds, for player-props, always player-props
markets: an array containing objects, for player-props messages all objects in the array have the same structure
target: the target, or handicap, of this market
active: boolean, indicates if this market is tradable or not
live: boolean, indicates if this game has started
key: TARGET (hyphen) ZERO (hyphen) PERIOD (hyphen) TYPE [NOTE: this is the market's type from the odds structure]
rnrs: an array containing objects, for player-props messages there will be two objects with the same structure
t: the target, or handicap, of this market
p: the decimal price of this side
us: the US price of this side
side_type: what side this runner is for - either over or under
entity_group: an array with a single integer value, indicating which entry in the entities array this market applies to
prb: the probability of the side
The outrights data structure has three base elements, timestamp, entities, and odds.
When this data was generated
An array containing objects, for outrights messages all objects in the array have the same structure
entity_type: the type of the entity, either player or, for the NFL, drive
entity_index: this objects index in the entitles array
player_id: the UUID assigned to this player, unique
sr_player_id: the integer assigned to this player, unique
player_name: the players name
sr_team_id: the integer assigned to this player's team, unique
game_id: the UUID assigned to this game, unique
sr_game_id: the integer assigned to this game, unique
genius_game_id: only used for NFL, 0 for all other leagues
position: this players position on the team
side: this teams side for the game - either away or home
team_id: the UUID assigned to this team, unique
An array containing objects, for outrights messages all objects in the array have the same structure
id: an integer assigned to the market, unique
period: the period of the game this market applies to, for outrights messages, always CG
name: the name of this market, unique to the league
type: the market's type, unique
stats: this player's stat for this market
odds_type: the type of odds, for outrights, always outrights
markets: an array containing objects, for outrights messages all objects in the array have the same structure
target: the target, or handicap, of this market
active: boolean, indicates if this market is tradable or not
live: boolean, indicates if this game has started
key: TARGET (hyphen) ZERO (hyphen) PERIOD (hyphen) TYPE [NOTE: this is the market's type from the odds structure]
rnrs: an array containing objects, for outrights messages there will be one object
t: the target, or handicap, of this market
p: the decimal price of this side
us: the US price of this side
side_type: what side this runner is for - always over
entity_group: an array with a single integer value, indicating which entry in the entities array this market applies to
prb: the probability of the side
NOTE: depending on the league and market, Matchups may be offered as 2-way or 3-way. This example is of a three-way, but the structure of the two-way is the same, but with one fewer entry in the rnrs array.
The matchups data structure has three base elements, timestamp, entities, and odds.
When this data was generated
An array containing objects, for matchup messages all objects in the array have the same structure
entity_type: always player
entity_index: this objects index in the entitles array
player_id: the UUID assigned to this player, unique
sr_player_id: the integer assigned to this player, unique
player_name: the players name
sr_team_id: the integer assigned to this player's team, unique
game_id: the UUID assigned to this game, unique
sr_game_id: the integer assigned to this game, unique
genius_game_id: only used for NFL, 0 for all other leagues
position: this players position on the team
side: this teams side for the game - either away or home
team_id: the UUID assigned to this team, unique
ref: a concatenation of the Don Best Rotation number, zero, and the player's jersey
An array containing objects, for matchup messages all objects in the array have the same structure
id: an integer assigned to the market, unique
period: the period of the game this market applies to, for matchup messages, always CG
name: the name of this market, unique to the league
type: the market's type, unique
stats_s1: s1's stat for this market
stats_s2: s2's stat for this market
odds_type: the type of odds, for matchups, always matchups
markets: an array containing objects, for matchups messages all objects in the array have the same structure
target: the target, or handicap, of this market
active: boolean, indicates if this market is tradable or not
live: boolean, indicates if this game has started
key: TARGET (hyphen) ZERO (hyphen) PERIOD (hyphen) TYPE [NOTE: this is the market's type from the odds structure]
rnrs: an array containing objects, for matchups messages there will be two or three objects with the same structure
t: the target, or handicap, of this market
p: the decimal price of this side
us: the US price of this side
side_type: what side this runner is for - either s1, s2 or x - note that for two-way markets, there is no x side
entity_group: an array of integers, indicating which entry/entries in the entities array this market applies to
prb: the probability of the side
The props-result data structure has 8 base elements
The UUID assigned to this player, unique
A string representation of an integer assigned to this player, unique
A string representation of an integer assigned to this player's team, unique
When this data was generated, UTC
The UUID assigned to this game, unique
A string representing an integer assigned to the game, unique
An array containing object with this players results, each object has the same structure
game_id: the UUID assigned to this game, unique
sr_game_id: a string representing an integer assigned to this game, unique
stat: the players stat for this market
isCancelled: boolean, indicates if these lines have been cancelled or not
period: what period of the game these results apply to, for player-props always CG
type: the type for this market, unique to league
id: an integer assigned to this market, unique
name: this markets name
minutes: time this player had on court/field/ice - always zero for MLB
markets: an array containing objects, all object have the same structure
rnrs: an array containing two objects representing the sides
t: the target or handicap
t2: always zero
s: the side, either 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
target2: always zero
Always prop-result
JSON SchemaThe outrights-result data structure has 8 base elements
The UUID assigned to this game, unique
An integer assigned to the game, unique
An integer assigned to this market, unique
The period of the game this result applies to, for outrights, always CG
The name of this market
The type for this market, unique to league
An array containing objects with this market's results, each object has the same structure
rnrs: an array containing an object representing the side
player: an object containing player information
player_id: the UUID assigned to this player, unique
sr_player_id: an integer assigned to this player, unique
minutes: time this player had on court/field/ice - always zero for MLB
stat: the player's stat for this market
t: the target or handicap
target: the target or handicap
s: the player's name
result: the result for this side of this line - Won, Lost, Push, Cancelled
Always outrights-result
JSON SchemaThe matchup-results data structure is an array of objects, each with the same structure
The UUID assigned to this game, unique
An integer assigned to the game, unique
An integer assigned to this market, unique
The period of the game this result applies to, for outrights, always CG
The name of this market
The type for this market, unique to league
An array containing objects with this market's results, each object has the same structure
rnrs: an array of objects representing a matchup's results, for a two-way matchup there will be two objects, and three for a three-way matchup
s1: an array of entities for this side
player_id: he UUID assigned to this player, unique
sr_player_id: An integer assigned to this player, unique
minutes: how long this player played, always 0 for MLB
stat: this player's stat for this market
s2: an array of entities for this side
player_id: he UUID assigned to this player, unique
sr_player_id: An integer assigned to this player, unique
minutes: how long this player played, always 0 for MLB
stat: this player's stat for this market
target: the target for this market, 0 for Moneyline
s: what side this runner represents, s1, s2, or x - note that for two-way matchups there is no x side
t: the target for this market, 0 for Moneyline
result: the result for this side of this line - Won, Lost, Push, Cancelled