Skip to content

Markets

A Market is a betting offer within a sport event. The SDK exposes six kinds, all sport-specific. Each one has a stable kind string you narrow on to access its fields — see Sport discrimination.

market.kind === 'market:basketball_match.moneyline'

Win/lose head-to-head, by period.

FieldTypeNotes
homeTeamstring
awayTeamstring
periodBasketballPeriodSee periods below.
selectionKind'home/away'Two outcomes.

Selection results: 'home', 'away'.

market.kind === 'market:basketball_match.handicap'

Point spread applied to the home team.

FieldTypeNotes
homeTeamstring
awayTeamstring
periodBasketballPeriod
handicapnumberNegative = home favored. e.g. -7.5 means home wins by ≥ 8 to cover.
selectionKind'home/away'

The same match typically has many handicap markets simultaneously, one per available line — -10.5, -9.5, -8.5, etc. All exposed as separate Market entries on the parent event.

market.kind === 'market:basketball_match.total'

Combined points over/under a threshold.

FieldTypeNotes
homeTeamstring
awayTeamstring
periodBasketballPeriod
scope'match' | 'home' | 'away'Whose points: combined, home only, or away only.
cutnumberTotal points threshold, e.g. 224.5.
selectionKind'over/under'

Selection results: 'over', 'under'.

market.kind === 'market:basketball_match.player_prop_over_under'

Player statistical line — points, rebounds, assists, etc.

FieldTypeNotes
playerNamestring
propTypePlayerPropTypeSee list below.
cutnumberThreshold for the prop.
selectionKind'over/under'

PlayerPropType values: points, rebounds, assists, threes, steals, blocks, points_rebounds, points_assists, rebounds_assists, points_rebounds_assists, other.

market.kind === 'market:football_match.moneyline'

Three-way result: home win, draw, or away win.

FieldTypeNotes
homeTeamstring
awayTeamstring
selectionKind'home/draw/away'

Selection results: 'home', 'draw', 'away'.

market.kind === 'market:tennis_match.moneyline'

Head-to-head match winner.

FieldTypeNotes
competitor1string
competitor2string
selectionKind'competitor1/competitor2'

Selection results: 'competitor1', 'competitor2'.

BasketballPeriod is a string-literal union:

'full_match'
'1st_half' | '2nd_half'
'1st_quarter' | '2nd_quarter' | '3rd_quarter' | '4th_quarter'
'overtime'

Most NBA markets have entries for full_match, both halves, and all four quarters. Overtime appears only when relevant.

Each market carries isSynthetic: boolean. true means the SDK derived this market rather than the bookmaker reporting it directly (e.g. a moneyline implied from a 0-handicap spread). Treat synthetic and reported markets the same way for reading — the distinction matters mainly for analytics on which originals the bookmaker actually publishes.

  • market.selectionsReadonlyMap<SelectionId, Selection>.
  • market.getSelection(id) — single lookup.
  • market.getSelectionByResult(result) — find by outcome (e.g. getSelectionByResult('over')).
  • market.calculateMargin() — bookmaker margin (overround) computed from current quotes.