Odds

Example Odd Object

{
  "odd_id": 72919503,
  "fixture_id": 946305,
  "market_id": 203,
  "bookmaker_id": 2,
  "is_live": 0,
  "label_id": 2,
  "value": 2.1,
  "handicap": 3.5,
  "line": 3.5,
  "last_update": 1768081284,
  "suspend": 1,
  "sp": 1.8,
  "home_score": 0,
  "away_score": 0,
  "status": -1,
  "raw": {},
  "player_id": null,
  "outcome": "Lost",
  "market_description": "Total number of cards in the match",
  "market_name": "Asian Total Cards",
  "label_name": "Over 3.5"
}

Field Definitions

Here are the field definitions for the Odd Object in Markdown format, organized by category for clarity.

Core Identifiers

FieldTypeDescription
odd_idIntegerUnique identifier for this specific odd record.
fixture_idIntegerIdentifier of the match (fixture) this odd belongs to.
market_idIntegerThe category of the bet (e.g., 1 for Match Winner, 22 for Next Goal).
bookmaker_idIntegerThe ID of the bookmaker providing this price.
label_idIntegerInternal identifier for the specific selection type within a market.
player_idInteger / nullNullable. The unique identifier for a player. This is only populated when the odd is related to a specific player performance (e.g., First Goalscorer, Player Shots).

Pricing & Lines

FieldTypeDescription
valueFloatThe current decimal odds (price).
lineFloatThe numerical threshold for the bet (e.g., 2.5 in an Over/Under market).
handicapFloatThe point spread or goal handicap (if applicable).
spFloatStarting Price. The opening odds or the first recorded value for the event.
suspendIntegerBoolean flag (0 or 1). If 1, the odd is currently locked and not tradable.

Match State

FieldTypeDescription
is_liveIntegerIndicates whether the odds are from a live, in-play event (1) or a pre-match event (0).
home_scoreIntegerThe home team's current goal count at the time the odd was generated. Note: This is specific to Asian Handicap and Asian Total markets, representing the "base score" from which the bet is calculated.
away_scoreIntegerThe away team's current goal count at the time the odd was generated. Note: This is specific to Asian Handicap and Asian Total markets, representing the "base score" from which the bet is calculated.
last_updateIntegerUnix timestamp indicating the last time this odd was modified (including changes to price, suspend status, or settlement status).

Localized Display Fields (Enriched)

FieldTypeDescription
statusIntegerThe numerical result code of the bet.
outcomeStringLocalized name of the status (e.g., "Won", "Half Lost", "Void").
market_nameStringLocalized name of the betting market (e.g., "Asian Total Cards").
market_descriptionStringA brief localized explanation of the market rules.
label_nameStringThe human-readable name of the specific pick (e.g., "Over 3.5").

Settlement Status Codes (status)

Settlement Status Tip
The status integer and outcome string are linked. For example, a status of -1 will always return an outcome of "Lost".

StatusOutcomeDescription
2Half WonHalf of the bet won; half was returned as a push.
1WonThe selection was successful.
0PendingThe event is ongoing or settlement is not yet complete.
-1LostThe selection was unsuccessful.
-2Half LostHalf of the stake was lost; half was returned.
-3VoidThe bet was cancelled and the stake was returned.

Deep Integration (raw object)

The raw property is designed for advanced integrations where you need to interact directly with a bookmaker's native system (e.g., for betslip injection or deep-linking).

FieldTypeDescription
rawObjectA container for external provider data. Returns (empty object) by default if no deep integration data is available.

Example raw payload:

"raw": {
    "event_id": 13936816,
    "market_id": 1339290698,
    "selection_id": 3314639099,
    "market_type_id": 18,
    "selection_type_id": 12
}

Deep Linking Note
Use the IDs found within the raw object to map SSTrader selections to the bookmaker's internal IDs. This is essential for features like Add to Betslip or navigating users directly to a specific event on the bookmaker's platform.


Odds Entity Filters

When querying fixtures or odds, you can refine the results by applying specific keys to the odds entity scope. This allows you to limit the data returned to specific bookmakers, markets, or match states.

Available Filter Keys for odds

KeyTypeDescription
bookmakersInteger(s)Filter by one or more Bookmaker IDs.
marketsInteger(s)Filter by specific Market IDs (e.g., 1 for Match Winner).
is_liveBoolean (0/1)1 returns only In-Play odds; 0 returns only Pre-match odds.
suspendBoolean (0/1)1 returns only suspended/locked odds; 0 returns only active odds.

Practical Examples

1. Filter by specific Bookmaker and Markets
To get odds only for Bookmaker 2 and only for Match Winner (1) or Over/Under (3):
?filter[odds]=bookmakers:2;markets:1,3

2. Filter for Active Pre-match Odds
To get odds that are not live and are not suspended:
?filter[odds]=is_live:0;suspend:0

3. Comprehensive Selection
To get odds for Bookmaker 2, within Market 203, that are currently Live and Active:
?filter[odds]=bookmakers:2;markets:203;is_live:1;suspend:0

Summary of Delimiter Logic for Odds

  • OR Logic (Comma): markets:1,3 means "Market 1 OR Market 3".
  • AND Logic (Semicolon): is_live:1;suspend:0 means "Must be Live AND Must be Not Suspended".