Live Scores & Realtime

When realtime is enabled for your deployment, the widget maintains a streaming connection (WebSocket) and updates cards in place - odds tick, parlay prices re-price, and in-play events show live game state. No polling, no page refreshes.

Realtime is enabled per deployment by the Odditt team and may not be available on your plan - check with your Odditt contact if you're unsure. Once it is on, two embed-level switches control what each iframe does:

ParameterTypeDefaultDescription
showLiveScoresbooleanpreset value (false)Show live game state (LIVE pill, clock, score) on in-play events. URL param overrides the preset's showLiveScores field.
realtimebooleantruerealtime=false disables all streaming for this embed - live odds, parlay pricing, and live scores - and the widget renders with its initially fetched data only.
⚠️

Don't run two scoreboards on one page

We strongly urge against enabling live scores on a widget embedded in a live event page that already shows its own score, clock, or game tracker. Two independent pipelines will never tick in perfect lockstep - a one-possession score difference or a clock a few seconds apart is instantly visible to users and reads as "one of these is wrong," even when both are merely seconds apart in latency. On those pages, set showLiveScores=false (or leave it off) and let your own tracker own game state - the widget's odds behavior is unaffected. Keep the widget's live-score display for surfaces that have no game tracker of their own: home feeds, league hubs, discovery pages.

What Updates in Realtime

  • Single-flow odds (affiliate mode) - the widget tracks the best available price per bet across books and updates the displayed odds as they move (ticks are batched, so the UI updates smoothly rather than flickering).
  • Parlay prices (affiliate mode) - multi-leg cards re-price their combined odds live as leg prices move. Same-game parlays are the exception: they display leg coverage rather than a live combined price.
  • Live game state - see below (only when showLiveScores is on; applies in every widget mode).
📘

Odds updates depend on the widget mode

Streaming odds ticks reflect the best price across books, which only makes sense for
affiliate mode's comparison model. In operator mode,
odds refresh through the quote flow instead - the widget re-prices flows against your lines,
so the price shown is always one your bet slip will honor. Live game state streams in every mode.

The composition of the feed does not change in realtime: cards are not added or removed mid-session. The feed refreshes when the user changes filters or the page reloads.

Live Game State Display

When showLiveScores is on, in-play event cards gain:

  • A LIVE pill with a blinking dot, the current period, and the game clock. When play is stopped, the dot and clock freeze and turn amber.
  • The score, ordered with the bettor's team first when the bet is team-linked.
  • Sport-specific details - a possession indicator and down & distance for American football.

showLiveDetail - the secondary strip (MLB)

The preset field showLiveDetail (no URL parameter) adds a second line of game state below the score for baseball: the bases diamond, balls-strikes-outs count, and the current batter/pitcher matchup. It requires showLiveScores to be on. Leagues that don't provide count data simply render nothing extra.

Preset fieldTypeDefaultDescription
showLiveScoresbooleanfalseMaster toggle for live game-state display (overridable per embed via the URL param)
showLiveDetailbooleanfalseMLB bases/count/matchup strip; requires showLiveScores

Example

<!-- Live scores on, realtime pricing on (default) -->
<iframe
  src="https://widget.example.com/?preset=brand_dark_v2&showLiveScores=true"
  width="100%"
  height="480"
  frameborder="0"
  style="border: none;"
></iframe>

<!-- Static embed: no streaming at all -->
<iframe
  src="https://widget.example.com/?preset=brand_dark_v2&realtime=false"
  ...
></iframe>
📘

Playground

The playground previews the live-scores treatment with a synthetic example card so you can theme it, but it never opens a live streaming connection.

Next Steps


Did this page help you?