Overview
The Bet Discovery Widget is an iframe-embeddable component that displays betting trends, flows, and parlays. Partners embed it into their websites to surface Odditt content with full visual customization.
How It Works
- Embed - add an
<iframe>pointing to your widget instance - Configure - pass query parameters to control theme, filters, language, and scoped entities
- Customize - use the playground to design a theme preset, then deploy it to production
<iframe
src="https://widget.example.com/?preset=brand_dark_v2&lang=en-US&leagueKey=nfl"
width="100%"
height="480"
frameborder="0"
style="border: none;"
></iframe>Flow Types
The widget supports several flow types, automatically detected from the API response:
| Flow Type | Description |
|---|---|
| Fun Flow | Emoji-driven narrative cards |
| Fact Flow (Base) | Collapsed statistical summary |
| Fact Flow (Expanded) | Expanded view with bar charts and split tabs |
| Fun Flow Parlay | Multi-leg fun flow parlays |
| Fact Flow Parlay | Multi-leg fact flow parlays with expandable legs |
| Plain Flow Parlay | Multi-leg parlays without emojis |
Layout Modes
| Mode | Description |
|---|---|
| Carousel | Horizontal scrollable cards with dot navigation |
| Feed | Vertical stacked cards |
Both modes are fully responsive and work inside iframes of any width.
Widget Modes
The widget mode controls what happens when the user taps a card. It is set
per customer in config and does not change at runtime.
| Widget Mode | What the user does | Who uses it |
|---|---|---|
| operator | One click hands off a payload to the partner's own commerce surface (bet slip, entry, order form). | Sportsbooks, DFS operators, prediction markets |
| affiliate | Two clicks: the first opens a cart comparing sportsbooks, the second opens a tracked clicks-out URL. | Publishers, media, affiliates |
| clean | No commerce interaction — narrative cards only, no prices or CTAs (enforced at the API layer). | Editorial, CRM, restricted jurisdictions |
See the Widget Modes guide for the full integration
walkthrough of each mode, and the Affiliate API for the
cart, offers, and link endpoints that power affiliate mode.
Product Modes
The product mode is independent of the widget mode — it controls what the
card looks like: the odds format, which markets are included, and how stat
lines render. A sportsbook in operator mode and a sportsbook in affiliate mode
look identical to the end user; the product mode is what differs between a
sportsbook, a DFS operator, and a prediction market.
| Product Mode | Default odds format | Markets | Stat line example |
|---|---|---|---|
| sportsbook | american (US), decimal, fractional | all | A. Newhook Over 0.5 - Assists (+310) |
| dfs | multiplier (e.g. 2.0x) | overs/unders only | A. Newhook 0.5 - Assists (MORE) |
| prediction_market | percent / probability | all | A. Newhook Over 0.5 - Assists (+310) |
In DFS product mode the API automatically constrains the feed to player
over/under props (betting_market_entity_type=player, position IDs [4, 5]),
strips the "Over"/"Under" prefix from the stat line, and replaces the odds value
with a MORE / LESS label. The underlying canonical Over/Under values and raw
odds remain in the payload. See Iframe Parameters
for the multiplier odds format.
In clean widget mode the product mode is moot — all odds, multipliers,
directional labels, and CTAs are stripped, leaving only the narrative layer.
See the Product Modes guide for the full sportsbook /
DFS / prediction market breakdown and precedence rules.
Key Concepts
- Widget Modes - what a tap does: operator handoff, affiliate cart, or clean narrative-only.
- Product Modes - what the card looks like: sportsbook, DFS, or prediction market.
- Playground - a shared instance where partners design and preview their themes in real time.
- Presets - JSON files that capture all theme and layout settings. Created in the playground and loaded in production via URL.
- Iframe Parameters - query parameters on the iframe
srcURL that control theme, language, filters, and entity scoping. - Widget Events - postMessage events sent to the parent page for bet clicks, pagination, filter changes, and more.
- Live Scores & Realtime - streaming odds updates, live parlay pricing, and in-play game state.
- Integration Recipes - production wiring: theme/language sync, scoping rules, and hiding the section on empty or error.
- Mobile SDKs - native Flutter, React Native, iOS, and Android wrappers with typed events and auto-height.
Next Steps
- Playground - learn how to use the theme customization panel
- Presets - understand how preset loading and hosting works
- Iframe Parameters - full reference of all query parameters
- Widget Events - handle user interactions from the embedded widget
Updated about 15 hours ago

