Home · Vocabularies

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

IdNameShapeSides
market:moneylineMoneylinebinary/n-wayhome, away, (draw)
market:spreadPoint Spread / Handicaphandicaphome, away
market:totalTotal (Over/Under)over-underover, under
market:team-totalTeam Totalover-underover, under (per participant)
market:draw-no-betDraw No Betbinaryhome, away
market:double-chanceDouble Chancen-wayhome-or-draw, away-or-draw, home-or-away

Score props

IdNameShapeSides
market:correct-scoreCorrect Scorecorrect-scorehomeTotal / awayTotal; leftover other
market:both-teams-to-scoreBoth Teams To Scoreyes-noyes, no
market:odd-even-totalTotal Odd/Evenyes-noodd, even
market:winning-marginWinning Marginn-wayparticipant + outcome line or atLeast; leftover other
market:race-toRace To (N points)binaryhome, away

Game props

IdNameShapeSides
market:first-to-scoreFirst To Scoren-wayhome, away, none
market:will-there-be-overtimeOvertime Yes/Noyes-noyes, no
market:half-time-full-timeHalf-Time/Full-Timen-wayhalfTime + fullTime (home, away, draw)

Player props

IdNameShapeSides
market:player-pointsPlayer Pointsover-underover, under
market:player-assistsPlayer Assistsover-underover, under
market:player-reboundsPlayer Reboundsover-underover, under
market:player-anytime-scorerAnytime Scoreryes-noplayer + yes (no optional); no leftover other; no market line
market:player-passing-yardsPassing Yardsover-underover, under
market:player-shots-on-targetShots On Targetover-underover, under

Outrights

IdNameShapeSides
market:outright-winnerTournament / Outright Winnern-wayparticipant
market:to-make-finalTo Reach The Finalyes-noyes, no
market:group-winnerGroup Winnern-wayparticipant

Combinations

IdNameShapeSides
market:same-game-parlaySame-Game Parlaycompositereferences other market outcomes
market:parlayParlay / Accumulatorcompositecross-fixture legs
market:unknownCatch-all (Q34)Consumers MUST accept unrecognised market:* values

Notes

  • Shape drives how a client renders and how a settlement grades — a handicap market always has a line; an over-under always has over/under outcomes and a line; n-way enumerates participant outcomes. A yes/no player board (anytime scorer) has player on each row and omits market line.
  • A concrete priced selection is identified by (fixture, marketType, segment, line, side, basis) — see the odds_change schema. basis is what the market counts (goals, corners); it is not a new market:* 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.

IdName
sport:soccerSoccer
sport:basketballBasketball
sport:baseballBaseball
sport:american-footballAmerican Football
sport:ice-hockeyIce Hockey
sport:tennisTennis
sport:golfGolf
sport:mmaMixed Martial Arts
sport:boxingBoxing
sport:cricketCricket
sport:rugby-unionRugby Union
sport:rugby-leagueRugby League
sport:volleyballVolleyball
sport:table-tennisTable Tennis
sport:esportsEsports
sport:athleticsAthletics (track & field)
sport:motorsportMotorsport
sport:unknownCatch-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):

IdEvent
athletics:100m100 metres
athletics:110m-hurdles110 metre hurdles
athletics:long-jumpLong jump
athletics:high-jumpHigh jump
athletics:marathonMarathon
athletics:decathlonDecathlon
athletics:4x100m-relay4 × 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 prefixSlices
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-1inning-9 · extra-innings · first-7-innings
segment:tennis:full-time · set-1set-5 · set-<n>-game-<m> (per-game markets) · tiebreak-<n>
segment:<sport>: volleyball / table tennis / badmintonfull-time · set-1set-7 (volleyball to 5; table tennis to 7; badminton to 3)
segment:mma: · segment:boxing:full-time · round-1round-12
segment:golf:full-time · round-1round-4 · front-9 · back-9 · hole-1hole-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