Glossary
Every product has its own vocabulary; this page translates ours. Terms are grouped by theme - content, the betting data model, identifiers, API mechanics, the widget, and the affiliate flow - with links to the guide that covers each in depth.
Content & Flows
| Term | What it means |
|---|---|
| Flow | A single piece of Odditt content: a card built around one real, takeable bet (or, for parlays, several). Flows are what the API delivers and what the widget renders. |
| Fact Flow | A bet plus a computed historical trend - "Over 24.5 points in 8 of his last 10" - with the numbers to back it up. Rendered in a collapsed base variant or an expanded variant with a bar chart and split tabs (fact_flow_type); the full per-split data can also be fetched on demand via Get fact flow graph data. |
| Fun Flow | A bet plus three emoji-tagged facts about its player, team, or matchup - a star sign and what it stands for, a jersey number, a nickname, a birthplace, a draft-day story, a stadium quirk. No trend or chart; personality is the hook. |
| Plain Flow | A bet with no content layer at all - no trend, no conditions, no emoji facts. The contrast in one line: a fact flow says "Over 24.5 - hit in 8 of his last 10"; a fun flow says "Over 24.5 - a Capricorn, born in Akron, wears #23"; a plain flow just says "Over 24.5 (+110)". In the API, plain flows are exposed only as parlays (plain_flow_parlay). |
| Trend | A statistical pattern computed for a bet over a specific window of games. Six windows exist: last 5, last 10, and last 20 games (L5 / L10 / L20), head-to-head vs. tonight's opponent (H2H), this season (SZN), and last season (LAST SZN). Each card surfaces one window by default - chosen per flow to favor what users will find most interesting - and expanded fact flows show the rest as split tabs. |
| Hit rate | The share of games in a trend's window in which the trend came through: 8 of the last 10 is an 80% hit rate. Filter on it with min_hit_rate_threshold / max_hit_rate_threshold (integer percentages, 0-100). |
| Full hit rate | The full_hit_rate filter restricts the feed to fact flows whose surfaced trend window has hit in every game of that window (a 5-for-5 last-5 qualifies the same as a 20-for-20 last-20). |
| Basic trend | A fact flow built without conditions - the trend over the raw window, no qualifier. include_only_basic_trends restricts the feed to these. |
| Condition | A qualifier that narrows the games a trend is computed over - and gets written into the narrative. Real condition families: home or away games; stadium traits (altitude, small or big stadiums, neutral sites); weather (rain, snow, extreme heat, wind); the calendar (month, day of week, holidays, morning/afternoon/night games); days of rest for the player, team, or opponent; win and loss streaks on either side; conference and division matchups; geographic rivals; and revenge angles (facing a former team, coach, or teammate - or the team that drafted them, or passed on them). They turn "won 5 of the last 10 vs. Atlanta" into "won 5 of the last 10 vs. Atlanta played in small stadiums". |
| Leg | One bet inside a flow. A single has one leg; a parlay has two or more. |
| Parlay | A multi-leg combination generated by Odditt around a theme - each parlay is a named content grouping (its title is the theme) with full narrative context per leg. A same-game parlay (SGP) draws every leg from one event; in payloads it carries the shared event and, where available, a correlation-adjusted price. |
| Flow type | The content category of a flow. As a filter value: fact, fun, or plain. In payloads, combined with the bet structure: fact_flow, fun_flow, fact_flow_parlay, fun_flow_parlay, plain_flow_parlay. |
| Bet type | The bet structure of a flow: singles, parlay, or same_game_parlay. |
| Likelihood | A coarse probability bucket on each flow - likely, possible, or longshot - filterable via likelihood_type. |
| Narrative | The written copy on a card. Generated by deterministic, rules-based templates (not an LLM), so it is fast, consistent, and reproducible - and localized per user. |
| Mixed Flows | The /v1/trends/mixed-flows endpoint: all flow types interleaved in one pre-mixed, paginated feed. The easiest way to get a diverse feed. |
| Flows (endpoint) | The /v1/trends/flows endpoint: the same content separated by type, one flow type per request - for UIs with separate sections or type-specific thresholds. |
The Betting Data Model
| Term | What it means |
|---|---|
| Event | A scheduled game or match, with teams and a start time. The anchor everything else hangs off. |
| Betting market | The kind of bet: moneyline, spread, totals, a player prop like "3 Pointers Made". Markets are defined per sport and identified by betting_market_id; enumerated at /v1/references/betting-markets. |
| Betting market category | A grouping of related markets (filterable via betting_market_category_ids), useful for scoping a feed to a family of bets. |
| Betting market position | The side of a market you can take: Over, Under, Home, Away, Yes, No. Identified by betting_market_position_id; enumerated at /v1/references/betting-market-positions. |
| Event betting market position | One concrete, takeable bet: one event, one market, one side, one subject (player, team, or the event itself), one line - "LeBron Over 24.5 Points tonight". This is what a leg points at, via event_betting_market_position_id. |
| Line value | The number in the bet - the 24.5 in "Over 24.5". Payloads carry it both numeric (line_value) and as a display string (display_line_value). Correct-score style markets use an exact_score string instead of a numeric line. |
| Main line / alt lines | The main line is a book's primary line for a market; every other offered line on the same market is an alternative line. include_alt_lines (default true) controls whether alt-line flows appear in the feed. |
| Market entity type | What a market is about: player, team, or event (a game total is an event-level market). Filterable via betting_market_entity_type. |
| Event period | The slice of the game a bet applies to: full game, first half, first quarter. Defined per sport and enumerated at /v1/references/event-periods. |
| Odds formats | The same price, several ways: american ("+255"), decimal (3.55), fractional ("51/20"). The widget adds multiplier (2.55x) for DFS surfaces and probability (28.2%) for prediction markets. |
| Implied probability | The chance of winning implied by the price: 1 ÷ decimal odds, delivered rounded to 3 decimals. Treat the delivered fields as authoritative rather than recomputing from the (2-decimal) decimal odds. |
| Payout multiplier | Profit per unit staked: decimal odds − 1. A 3.55 decimal price pays 2.55× the stake in profit. |
operator_ids (on a flow) | The operators currently pricing that bet. On a parlay it is the intersection across legs - the books that can price every leg. |
Entities & Identifiers
| Term | What it means |
|---|---|
| Reference endpoints | The /v1/references/* family that enumerates the entities in the system - sports, leagues, teams, players, markets, positions, periods, regions - so you can map them to your own catalog. |
| Numeric ID | The canonical identifier for every entity (sport_id, league_id, team_id, player_id, event_id, ...). These are what you store, map to your own catalog, and filter on - they don't change. |
| External key | A human-readable slug (nfl, nba) accepted by many filters where available. Convenient for exploring and for readable examples, but keys can repeat across scopes (a market key like totals exists in several sports) - so store and match on numeric IDs in your own systems, and treat keys as a browsing convenience. |
| Subnational region | A state or province code (e.g. NJ, ON) used together with country for geo-aware behavior - which operators can appear, what is legal to show. Enumerated at /v1/references/subnational-regions. |
| Content tags | Tags describing what a flow is about - the narrative angle it was actually built from (hot streak, rivalry, weather angle, revenge game). Filter with content_tag_type_ids. |
| Metadata tags | The wider set of structural attributes in a flow's scope - league, market family, player attributes - inherited from the event, player, or team. Every content tag is also a metadata tag, so filtering on metadata alone finds everything. Filter with metadata_tag_type_ids. |
| Tag registry | The hierarchy you discover tags in: a dimension at the root (e.g. event, metadata), tag types beneath it (which can nest), and concrete tag values at the leaves. Walk it via the tag-dimension, search, and children endpoints - see Segmentation & Tags. |
| Star-sign content | Zodiac and horoscope-themed content. Excluded from the feed by default; opt in with include_star_sign_content. |
API Mechanics
| Term | What it means |
|---|---|
| API key | Your credential, sent as the X-API-Key header on every request. Issued at onboarding - one for sandbox, one for production. |
| Sandbox | https://sandbox.odditt.com - a development environment with realistic data for building and testing. Production is https://api.odditt.com. |
| JWT / OAuth2 client credentials | The token-based alternative to sending your API key on every call: exchange credentials for a short-lived bearer token. See Advanced Authentication. |
| Pagination | List endpoints return results in pages, navigated with page and page_size. See Pagination. |
| Rate limiting | Request ceilings per minute, hour, and day. Exceeding one returns 429; back off and retry. See Rate Limiting. |
X-Language header | Ask for trend narratives in another language (es-419, it, pt-BR). Granular codes resolve to the closest supported language; unsupported values fall back to English. See Localization. |
| Caching | Most endpoints serve responses cached server-side for about 2 minutes, which sets a floor on useful polling frequency. See Caching. |
The Widget
| Term | What it means |
|---|---|
| Widget | Odditt's embeddable Bet Discovery Widget: flows rendered as scrollable, swipeable cards inside an iframe on your site or app. |
| Widget instance | Your dedicated widget deployment at its own subdomain, pre-configured for your account at onboarding. |
| Embed origin | A domain registered to your instance. The widget only renders inside registered origins - a blank iframe usually means an unregistered one. |
| Iframe parameters | URL query parameters on the embed (lang, country, preset, productMode, ...) that configure a single embed. See Iframe Parameters. |
| Preset | A saved theme-plus-configuration JSON, hosted by Odditt and loaded by name (?preset=brand_dark_v2). Precedence is per field: deployment-level fields like widgetMode and productMode are preset-owned, while presentation fields like oddsFormat, currency, colorMode, and layoutMode can be overridden per embed via the URL. See Presets. |
| Playground | The design environment where widget themes are built against a live preview, then saved and deployed as presets. See Playground. |
| Widget mode | What a tap on a card does: operator hands off to your own bet slip; affiliate opens a comparison cart. Set per deployment. See Widget Modes. |
| Product mode | What a card looks like: sportsbook, dfs, or prediction_market - each with its own default odds format, market scope, and vocabulary (DFS shows MORE/LESS entries and "Slips"; prediction markets show probabilities and "Combos"). See Product Modes. |
| Live quote | In operator-mode deployments with live quoting enabled, the widget asks your backend for your current odds on a bet just before showing it - so the price on screen is always one your bet slip will honor. Cards that can't be quoted are quietly dropped rather than shown stale. |
Bet ticket / buttonPayload | Whatever token, ID, or deeplink your own bet slip needs to add a bet when the user taps. You supply it in your live-quote response; the widget hands it back to your page unchanged in the BET_CLICKED event (null when live quoting isn't enabled or you didn't return one). |
| postMessage events | Messages the widget emits to your host page: WIDGET_READY, WIDGET_EMPTY, WIDGET_ERROR, BET_CLICKED, GRAPH_EXPANDED, GRAPH_COLLAPSED, PAGE_LOADED, and FILTER_CHANGED. See Widget Events for every payload shape. |
| Carousel / feed | The two layout modes: a horizontal swipeable card strip with step arrows, or a vertical infinite-scroll feed. |
| Color mode | Dark or light rendering; every preset carries a full color theme for both, per flow type. |
| Betslip mode | How the card's CTA behaves: static (a fixed label like "ADD TO BETSLIP") or payout (a live "BET $10 TO WIN $25" built from the odds and a configurable amount). |
| Realtime | A streaming connection that updates visible cards in place, with no polling. Streaming odds ticks (best price across books) apply in affiliate mode; operator-mode prices refresh through the quote flow instead; live game state streams in every mode. realtime=false turns all streaming off for an embed. See Live Scores & Realtime. |
| Live scores | The in-play game-state display on event cards - LIVE pill, period and clock, score - toggled with showLiveScores. The showLiveDetail preset field adds a baseball-specific strip (bases, count, matchup). See Live Scores & Realtime. |
| Mobile SDKs | Flutter, React Native, iOS, and Android wrappers around the widget with typed callbacks (e.g. onBetClicked) instead of raw postMessage. See Mobile SDKs. |
The Affiliate Flow
| Term | What it means |
|---|---|
| Operator | A brand that takes the bets: a sportsbook, DFS platform, or prediction market. |
| Affiliate mode | The widget mode for publishers: tapping a card opens a comparison cart, and a second click sends the user out to a chosen operator through a tracked link. |
| Comparison cart | The panel listing each eligible operator's price for the tapped bet side by side - logo, name, line, and odds per row - overlaid with your best offer per operator. Only operators legal in the embed's country/region appear. Built by the Affiliate API. |
| Offer | An affiliate deal attached to an operator row - tagline, bullets, fine print - surfaced with an "Offer Available" pill and expandable detail. |
| Link inventory | The per-operator, per-device links (web, app/universal) you register so the cart always has somewhere valid to send the user. Operators with no usable link for the user's device are hidden. |
| Click-out | The tracked exit: the cart's Bet Now / Claim Offer buttons open the operator's site or app in a new tab (required for app handoff on mobile), with your click identifier appended at click time for attribution. |
| Click reporting | The reporting endpoints that let you reconcile click-outs against your affiliate network. See Affiliate API. |
Next Steps
- Getting Started - from API key to live data in under a minute
- Guides overview - the full map of concept guides
- Widget Overview - the widget's flow types, modes, and layouts
- Iframe Parameters - every parameter an embed accepts, in one reference
Updated about 1 hour ago
Did this page help you?

