Skip to main content

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 the odds 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

FieldTypeDescription
fixtureIdstringThe fixture this update applies to
bookmakersobjectMap of <bookmaker> → metadata object
bookmakers.<bk>.bookmakerstringBookmaker slug (e.g. "stake", "pinnacle")
bookmakers.<bk>.bookmakerFixtureIdstring | nullOptional bookmaker-side ID (may be a slug or compound string)
bookmakers.<bk>.fixturePathstring | nullOptional bookmaker path or UI route (if supported)
bookmakers.<bk>.hasOddsbooleanTrue if the bookmaker currently offers any odds
bookmakers.<bk>.staleOddsbooleanCritical for trading. True if the connection to this bookmaker was lost and odds freshness can no longer be guaranteed
bookmakers.<bk>.staleOddsResponseCodenumber | nullHTTP status code returned during staleness check
bookmakers.<bk>.suspendedbooleanTrue if this bookmaker’s odds are suspended
bookmakers.<bk>.participantsRotatedbooleanTrue if this bookmaker’s home/away assignment differs from the OddsPapi baseline (see below)
bookmakers.<bk>.metaobject | nullOptional metadata (bookmaker-specific)
bookmakers.<bk>.updatedAtstringLast update timestamp (ISO 8601)

Example message

{
  "channel": "bookmakers",
  "type": "UPDATE",
  "payload": {
    "fixtureId": "id1000070367118324",
    "bookmakers": {
      "draftkings": {
        "bookmaker": "draftkings",
        "bookmakerFixtureId": "33999242",
        "fixturePath": "https://sportsbook.draftkings.com/event/33999242",
        "hasOdds": true,
        "staleOdds": false,
        "staleOddsResponseCode": null,
        "suspended": false,
        "participantsRotated": false,
        "meta": null,
        "updatedAt": "2026-04-21T00:51:48.283641+00:00"
      }
    }
  },
  "ts": 1776729708000,
  "entryId": "1776729708000-1"
}

Critical fields for automated trading

staleOdds — odds freshness guarantee

If you are running automated trading or arbitrage strategies on top of OddsPapi, staleOdds is one of the most important fields you must check.
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 staleOdds returns to false
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
If you build on top of OddsPapi, always check this flag and swap your participant mapping for this bookmaker when it is 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 odds channel.
  • Combine staleOdds, suspended, and hasOdds to determine whether a bookmaker’s odds should be trusted at any given moment.