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

TermWhat it means
FlowA 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 FlowA 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 FlowA 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 FlowA 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).
TrendA 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 rateThe 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 rateThe 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 trendA fact flow built without conditions - the trend over the raw window, no qualifier. include_only_basic_trends restricts the feed to these.
ConditionA 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".
LegOne bet inside a flow. A single has one leg; a parlay has two or more.
ParlayA 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 typeThe 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 typeThe bet structure of a flow: singles, parlay, or same_game_parlay.
LikelihoodA coarse probability bucket on each flow - likely, possible, or longshot - filterable via likelihood_type.
NarrativeThe 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 FlowsThe /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

TermWhat it means
EventA scheduled game or match, with teams and a start time. The anchor everything else hangs off.
Betting marketThe 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 categoryA grouping of related markets (filterable via betting_market_category_ids), useful for scoping a feed to a family of bets.
Betting market positionThe 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 positionOne 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 valueThe 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 linesThe 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 typeWhat a market is about: player, team, or event (a game total is an event-level market). Filterable via betting_market_entity_type.
Event periodThe 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 formatsThe 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 probabilityThe 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 multiplierProfit 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

TermWhat it means
Reference endpointsThe /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 IDThe 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 keyA 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 regionA 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 tagsTags 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 tagsThe 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 registryThe 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 contentZodiac and horoscope-themed content. Excluded from the feed by default; opt in with include_star_sign_content.

API Mechanics

TermWhat it means
API keyYour credential, sent as the X-API-Key header on every request. Issued at onboarding - one for sandbox, one for production.
Sandboxhttps://sandbox.odditt.com - a development environment with realistic data for building and testing. Production is https://api.odditt.com.
JWT / OAuth2 client credentialsThe token-based alternative to sending your API key on every call: exchange credentials for a short-lived bearer token. See Advanced Authentication.
PaginationList endpoints return results in pages, navigated with page and page_size. See Pagination.
Rate limitingRequest ceilings per minute, hour, and day. Exceeding one returns 429; back off and retry. See Rate Limiting.
X-Language headerAsk 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.
CachingMost endpoints serve responses cached server-side for about 2 minutes, which sets a floor on useful polling frequency. See Caching.

The Widget

TermWhat it means
WidgetOdditt's embeddable Bet Discovery Widget: flows rendered as scrollable, swipeable cards inside an iframe on your site or app.
Widget instanceYour dedicated widget deployment at its own subdomain, pre-configured for your account at onboarding.
Embed originA domain registered to your instance. The widget only renders inside registered origins - a blank iframe usually means an unregistered one.
Iframe parametersURL query parameters on the embed (lang, country, preset, productMode, ...) that configure a single embed. See Iframe Parameters.
PresetA 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.
PlaygroundThe design environment where widget themes are built against a live preview, then saved and deployed as presets. See Playground.
Widget modeWhat 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 modeWhat 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 quoteIn 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 / buttonPayloadWhatever 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 eventsMessages 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 / feedThe two layout modes: a horizontal swipeable card strip with step arrows, or a vertical infinite-scroll feed.
Color modeDark or light rendering; every preset carries a full color theme for both, per flow type.
Betslip modeHow 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).
RealtimeA 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 scoresThe 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 SDKsFlutter, 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

TermWhat it means
OperatorA brand that takes the bets: a sportsbook, DFS platform, or prediction market.
Affiliate modeThe 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 cartThe 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.
OfferAn affiliate deal attached to an operator row - tagline, bullets, fine print - surfaced with an "Offer Available" pill and expandable detail.
Link inventoryThe 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-outThe 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 reportingThe reporting endpoints that let you reconcile click-outs against your affiliate network. See Affiliate API.

Next Steps


Did this page help you?