Skip to main content
Markets are not a fixed list per sport — they are generated from a deterministic decomposition, so the same bet resolves to the same identifiers everywhere. This page covers what exists and how to enumerate it; the mechanics are in Markets and outcomes.

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 a marketId the outcomes are only the sides of that exact line.
  • marketId equals the market’s first outcomeId, and marketLength is the number of sides — so the outcomes under one marketId form 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 via period, using one shared vocabulary across all sports: fulltime, result, overtime, penalties, numbered periods p1p12, combined segments (p1+p2, fulltime+overtime, …), and sub-period keys for games within a set (p1g1p5g13, 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 a playerProp flag, and prices for player markets carry a non-zero playerId:
The 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 as HALFWIN / 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.