What it streams
Realtime odds updates for outcomes within markets, scoped to a specificfixtureId.
Odds are grouped by bookmaker and keyed by a unique oddsId per outcome.
Each entry represents a single oddsId (one price for one outcome).
Routing
- Entity key:
payload.fixtureId - Filters:
sportIds,tournamentIds,fixtureIds,bookmakers - Access: determined by your
apiKey - Bookmaker-gated: ✅ Yes
Delivery semantics
- This channel is high throughput
- Updates are latest-state only
- The gateway may coalesce or drop intermediate updates under load
- Do not assume tick-by-tick completeness
Payload structure
oddsId:outcome object (full schema)
Each odds entry is an outcome, with the following fields:| Field | Type | Description | |
|---|---|---|---|
bookmaker | string | Bookmaker slug (e.g. "stake", "pinnacle", "polymarket") | |
outcomeId | integer | Outcome identifier | |
playerId | integer | Player ID (0 for non-player markets) | |
price | number | Decimal odds | |
active | boolean | Whether this outcome is currently available | |
marketActive | boolean | null | Whether the entire market is active | |
mainLine | boolean | null | Whether this is the bookmaker’s main line | |
marketId | integer | Market identifier | |
bookmakerMarketId | string | null | Native bookmaker market ID | |
bookmakerOutcomeId | string | null | Native bookmaker outcome ID | |
bookmakerChangedAt | number | null | Bookmaker-provided change timestamp (epoch ms) | |
priceFractional | `string | ` | Fractional odds (e.g. "5/2") |
priceAmerican | `integer | ` | American odds (e.g. -110, +250) |
limit | number | null | Maximum accepted stake (if provided) | |
betslip | string | null | Optional bookmaker betslip or deeplink token | |
meta | object | null | Bookmaker-specific metadata (orderbooks, ladders, etc.) | |
changedAt | number | Gateway change timestamp (epoch ms, UTC) |
Notes on timestamps
changedAtis always present and represents when the gateway accepted the updatebookmakerChangedAt(when present) reflects the bookmaker’s own timestamp- These values may differ — do not assume equality
Advanced metadata (meta)
Some bookmakers (e.g. prediction markets / exchanges) provide rich metadata.
Example:
meta contents may include:
- Orderbook ladders (
back/lay) - Liquidity hints
- Internal sizing or tick metadata
meta is bookmaker-specific and may evolve.
Example: traditional bookmaker odds
Example: prediction market odds (extended fields)
Implementation guidance
- Always key storage by
- Group outcomes by
marketId(see Concepts) for:- arbitrage detection
- overround calculations
- probability normalization
- Treat
active=falseormarketActive=falseas hard stops - Preserve unknown fields in
metato remain forward-compatible