Documentation Index
Fetch the complete documentation index at: https://docs.oddspapi.io/llms.txt
Use this file to discover all available pages before exploring further.
What it streams
Metadata about which bookmakers are offering odds for a given fixture, and whether those odds are active, stale, suspended, or rotated. This stream complements theodds channel by giving you per-bookmaker status for each fixtureId.
Routing
- Entity key:
payload.fixtureId - Filters:
sportIds,tournamentIds,fixtureIds,bookmakers - Access: determined by your
apiKey - Bookmaker-gated: ✅ Yes
Payload structure
| Field | Type | Description |
|---|---|---|
fixtureId | string | The fixture this update applies to |
bookmakers | object | Map of <bookmaker> → metadata object |
bookmakers.<bk>.bookmaker | string | Bookmaker slug (e.g. "stake", "pinnacle") |
bookmakers.<bk>.bookmakerFixtureId | string | null | Optional bookmaker-side ID (may be a slug or compound string) |
bookmakers.<bk>.fixturePath | string | null | Optional bookmaker path or UI route (if supported) |
bookmakers.<bk>.hasOdds | boolean | True if the bookmaker currently offers any odds |
bookmakers.<bk>.staleOdds | boolean | Critical for trading. True if the connection to this bookmaker was lost and odds freshness can no longer be guaranteed |
bookmakers.<bk>.staleOddsResponseCode | number | null | HTTP status code returned during staleness check |
bookmakers.<bk>.suspended | boolean | True if this bookmaker’s odds are suspended |
bookmakers.<bk>.participantsRotated | boolean | True if this bookmaker’s home/away assignment differs from the OddsPapi baseline (see below) |
bookmakers.<bk>.meta | object | null | Optional metadata (bookmaker-specific) |
bookmakers.<bk>.updatedAt | string | Last update timestamp (ISO 8601) |
Example message
Critical fields for automated trading
staleOdds — odds freshness guarantee
When staleOdds = true, the connection between OddsPapi and this bookmaker has been lost or interrupted. This means:
- Odds you received earlier may no longer reflect the bookmaker’s current prices
- No further updates can be guaranteed until the connection is restored
- You should immediately pause any automated betting or arbitrage logic for this bookmaker
- Treat all existing odds from this bookmaker as unvalidated until
staleOddsreturns tofalse
staleOddsResponseCode provides the HTTP status code (if any) that triggered the staleness detection — useful for debugging connectivity issues.
participantsRotated — home/away mapping
When participantsRotated = true, the bookmaker treats a different team as the home team than OddsPapi does. In other words, participant1 (home) and participant2 (away) are swapped at this bookmaker compared to the OddsPapi baseline fixture.
This is critical for:
- Moneyline / 1x2 markets — the “home” and “away” outcome meanings are reversed
- Spread / handicap markets — the sign of the spread is flipped
- Any automated strategy that maps outcomes by participant position rather than participant ID
true.
Notes
- If a bookmaker is not present in
bookmakers, assume no current odds available for that fixture. - Use this channel as a pre-filter before processing any odds from the
oddschannel. - Combine
staleOdds,suspended, andhasOddsto determine whether a bookmaker’s odds should be trusted at any given moment.