Controlled vocabularies
This page is the id list computers use. For what the words mean in plain language, start with the taxonomy. The technical contract is the specification.
Readable, versioned ids. Short on the wire, formal as urn:openbook: in the spec. Market types, sports and segments follow.
OpenBook controlled vocabulary — market types
Version 0.1.0-draft. This is the core contribution of OpenBook — the cross-vendor market taxonomy that does not exist anywhere else today. Each entry is a canonical market:* id, its shape, and the sides its outcomes take. Segments (1st-half, inning-1, …) are applied separately via reference_segment, not baked into the market id.
For what these words mean without ids, see ../docs/taxonomy.md.
Main lines
| Id | Name | Shape | Sides |
|---|---|---|---|
market:moneyline | Moneyline | binary/n-way | home, away, (draw) |
market:spread | Point Spread / Handicap | handicap | home, away |
market:total | Total (Over/Under) | over-under | over, under |
market:team-total | Team Total | over-under | over, under (per participant) |
market:draw-no-bet | Draw No Bet | binary | home, away |
market:double-chance | Double Chance | n-way | home-or-draw, away-or-draw, home-or-away |
Score props
| Id | Name | Shape | Sides |
|---|---|---|---|
market:correct-score | Correct Score | correct-score | homeTotal / awayTotal; leftover other |
market:both-teams-to-score | Both Teams To Score | yes-no | yes, no |
|---|---|---|---|
market:odd-even-total | Total Odd/Even | yes-no | odd, even |
market:winning-margin | Winning Margin | n-way | participant + outcome line or atLeast; leftover other |
market:race-to | Race To (N points) | binary | home, away |
Game props
| Id | Name | Shape | Sides |
|---|---|---|---|
market:first-to-score | First To Score | n-way | home, away, none |
market:will-there-be-overtime | Overtime Yes/No | yes-no | yes, no |
market:half-time-full-time | Half-Time/Full-Time | n-way | halfTime + fullTime (home, away, draw) |
Player props
| Id | Name | Shape | Sides |
|---|---|---|---|
market:player-points | Player Points | over-under | over, under |
market:player-assists | Player Assists | over-under | over, under |
market:player-rebounds | Player Rebounds | over-under | over, under |
market:player-anytime-scorer | Anytime Scorer | yes-no | player + yes (no optional); no leftover other; no market line |
market:player-passing-yards | Passing Yards | over-under | over, under |
market:player-shots-on-target | Shots On Target | over-under | over, under |
Outrights
| Id | Name | Shape | Sides |
|---|---|---|---|
market:outright-winner | Tournament / Outright Winner | n-way | participant |
market:to-make-final | To Reach The Final | yes-no | yes, no |
market:group-winner | Group Winner | n-way | participant |
Combinations
| Id | Name | Shape | Sides |
|---|---|---|---|
market:same-game-parlay | Same-Game Parlay | composite | references other market outcomes |
market:parlay | Parlay / Accumulator | composite | cross-fixture legs |
market:unknown | Catch-all (Q34) | — | Consumers MUST accept unrecognised market:* values |
Notes
- Shape drives how a client renders and how a settlement grades — a
handicapmarket always has aline; anover-underalways hasover/underoutcomes and aline;n-wayenumeratesparticipantoutcomes. A yes/no player board (anytime scorer) hasplayeron each row and omits marketline. - A concrete priced selection is identified by
(fixture, marketType, segment, line, side, basis)— see the odds_change schema.basisis what the market counts (goals, corners); it is not a newmarket:*id. - This list is deliberately small in v0.1. It grows through
../CONTRIBUTING.md, with stable ids.
Source: vocabularies/market_types.md
OpenBook controlled vocabulary — sports
Version 0.1.0-draft. Each entry is a canonical sport:* id and its display name. Human map: ../docs/taxonomy.md. Additions go through the process in ../CONTRIBUTING.md; ids are stable and never re-pointed once published.
| Id | Name |
|---|---|
sport:soccer | Soccer |
sport:basketball | Basketball |
sport:baseball | Baseball |
sport:american-football | American Football |
sport:ice-hockey | Ice Hockey |
sport:tennis | Tennis |
sport:golf | Golf |
sport:mma | Mixed Martial Arts |
sport:boxing | Boxing |
sport:cricket | Cricket |
sport:rugby-union | Rugby Union |
sport:rugby-league | Rugby League |
sport:volleyball | Volleyball |
sport:table-tennis | Table Tennis |
sport:esports | Esports |
sport:athletics | Athletics (track & field) |
sport:motorsport | Motorsport |
sport:unknown | Catch-all when the sport is not in this list (Q34). Publishers SHOULD use this rather than inventing an id. Consumers MUST still accept unrecognised sport:* values. |
Disciplines (sub-sport granularity)
Some sports carry disciplines beneath them. Athletics is the worked example — the point is that OpenBook names them readably, where a source like the Olympic Data Feed uses opaque codes (ATH, ATM012):
| Id | Event |
|---|---|
athletics:100m | 100 metres |
athletics:110m-hurdles | 110 metre hurdles |
athletics:long-jump | Long jump |
athletics:high-jump | High jump |
athletics:marathon | Marathon |
athletics:decathlon | Decathlon |
athletics:4x100m-relay | 4 × 100 m relay |
A multi-sport Games (the Olympics) is a competition, not a sport: league:athletics:INT:olympics with a season per Games (season:league:athletics:INT:olympics:2024-paris), and one league per sport contested.
Source: vocabularies/sports.md
OpenBook controlled vocabulary — segments
Version 0.3.0-draft. A segment is a slice inside a match. Ids are segment:<sport>:<slice>; the formal form is urn:openbook:segment:<sport>:<slice>. Every sport has full-time (the whole contest as graded, including any overtime rules the league's ruleset states) and regulation where the distinction matters. Vendors number these differently (Pinnacle period 0 is the full contest — except in hockey); OpenBook names them.
For what a segment is in plain language, see ../docs/taxonomy.md.
| Sport prefix | Slices |
|---|---|
segment:soccer: | full-time · 1st-half · 2nd-half · regulation · extra-time · extra-time-1st-half · extra-time-2nd-half · penalties |
segment:basketball: | full-time · regulation · 1st-half · 2nd-half · 1st-quarter · 2nd-quarter · 3rd-quarter · 4th-quarter · overtime |
segment:american-football: | full-time · regulation · 1st-half · 2nd-half · 1st-quarter · 2nd-quarter · 3rd-quarter · 4th-quarter · overtime |
segment:ice-hockey: | full-time (OT and shootout included) · regulation (60 minutes) · 1st-period · 2nd-period · 3rd-period · overtime · shootout |
segment:baseball: | full-time · 1st-half (innings 1–5) · inning-1 … inning-9 · extra-innings · first-7-innings |
segment:tennis: | full-time · set-1 … set-5 · set-<n>-game-<m> (per-game markets) · tiebreak-<n> |
segment:<sport>: volleyball / table tennis / badminton | full-time · set-1 … set-7 (volleyball to 5; table tennis to 7; badminton to 3) |
segment:mma: · segment:boxing: | full-time · round-1 … round-12 |
segment:golf: | full-time · round-1 … round-4 · front-9 · back-9 · hole-1 … hole-18 |
segment:motorsport: | Qualifying, Sprint and Race are separate fixtures. Internal slices: full-session · q1 · q2 · q3 · lap-<n> · first-lap |
segment:cricket: | full-match · 1st-innings · 2nd-innings · over-<n> · powerplay |
segment:rugby-union: · segment:rugby-league: | full-time · 1st-half · 2nd-half · regulation · extra-time |
segment:athletics: | final · heat-<n> · semi-final-<n> · attempt-<n> (jumps/throws) · lap-<n> |
Catch-all: segment:unknown:unknown (Q34). Consumers MUST accept unrecognised segment:* values.
Additions go through CONTRIBUTING.md; ids are stable once published.
Source: vocabularies/segments.md