How a market is addressed
Two consequences worth designing around:
- Every distinct line value is its own
marketId. “Over 2.5” and “Over 3.5” are different markets, not two outcomes of one. Within amarketIdthe outcomes are only the sides of that exact line. marketIdequals the market’s firstoutcomeId, andmarketLengthis the number of sides — so the outcomes under onemarketIdform a complete probability space without any extra metadata.
Market families
marketType is an open taxonomy — stable per value, growing over time. Representative types:
This is not the full map — new types are appended as coverage grows, and what exists differs per sport. Enumerate the real map with
GET /markets rather than hard-coding.
Period scoping
Markets are scoped to a segment viaperiod, using one shared vocabulary across all sports: fulltime, result, overtime, penalties, numbered periods p1…p12, combined segments (p1+p2, fulltime+overtime, …), and sub-period keys for games within a set (p1g1…p5g13, currentgame).
What a period means depends on the sport — p1 is a half in soccer, a quarter in NBA basketball, a set in tennis, a map in esports. Use the fixture’s expectedPeriods and periodLength to interpret it. Full list in Enumerations → period.
Player props
Markets carry aplayerProp flag, and prices for player markets carry a non-zero playerId:
outcomeId encodes everything except the player — market type, period, line, and side — so the same prop for two different players shares an outcomeId and differs only in playerId. Discover squads via GET /players.
Enumerating the map
marketName / marketNameShort follow the request’s language prefix and are for display only — branch on marketId, outcomeId, marketType, and period.
Which markets a fixture actually has
GET /markets describes what exists for a sport; what is priced right now for a given fixture comes from the odds themselves. Pull GET /fixtures/odds (or /fixtures/odds/main for main lines only) and group by marketId. Books differ in which markets and which line values they offer, and mainLine marks each book’s headline line.
marketType is append-only: new values appear as coverage grows and never change meaning. Match on the types you support and ignore the rest rather than failing on unknown values.Settlement
Grading follows the same coordinates. Asian quarter lines settle asHALFWIN / HALFLOSS alongside WIN / LOSE / PUSH, and grading is done on the bookmaker-independent selection key {fixtureId}:{outcomeId}:{playerId}. See Enumerations → settlementStatus and Powering a sportsbook.