Overview
Markets are the core data model in V2. Each market represents a type of bet (moneyline, spread, total, player props, etc.) with participants, lines, and prices from each sportsbook.Default Market IDs
When you call event endpoints without specifyingmarket_ids, the API defaults to 1,2,3:
To get player props, team totals, or other market types, you must explicitly pass their IDs. For example,
market_ids=29 for Player Points or market_ids=94 for Team Totals. See the full Market IDs reference.For a visual breakdown of how markets, participants, lines, and prices nest together, see the Data Model. For the complete list of market IDs and sport availability, see Market IDs. For delta-based polling of market prices, see the Efficient Polling guide.
Endpoints
GET /api/v2/markets — List all market definitions
GET /api/v2/markets — List all market definitions
Returns every canonical market definition with its ID, name, period info, and whether the line value represents a participant name.This is a reference endpoint — it returns the market catalog, not live prices. Use it to build a mapping of market IDs to display names.
Response fields
Example Response
GET /api/v2/markets/delta — Market price delta feed
GET /api/v2/markets/delta — Market price delta feed
Returns market line price changes (new, updated, removed) since the specified
last_id. This is the most efficient way to keep your odds data up to date via polling.Parameters
Bootstrap only from a known-zero-delay events snapshot that explicitly reports
X-Data-Delay-Seconds: 0, using its positive meta.delta_last_id; do not substitute 0 for a missing or invalid cursor. The event snapshot expands core market_ids=1,2,3 to include the in-play IDs. This delta endpoint filters IDs literally, so include 41,42,43 when polling full-game core live updates. Delta rows retain their actual market IDs.Example Response
GET /api/v2/markets/history — Price history by market line price IDs
GET /api/v2/markets/history — Price history by market line price IDs
Returns the price history for specific market line prices. You need the
market_line_price_id values from a prior event or delta response.Parameters
Example Response
Amarket_line_price_id identifies one sportsbook’s price on one line value, so a line ID never changes its line. Rows 90003 and 90004 show the main spread moving from -3.5 to -4.5: the is_main_line flag leaves line 12345 and arrives on line 12346 at the same timestamp.GET /api/v2/markets/participants — Get market participants
GET /api/v2/markets/participants — Get market participants
Lists teams, players, or result sides for the requested event and markets. Use
participant_id from this response, rather than id, to filter a participant-specific chart.For totals (market 3), request participant_type=TYPE_RESULT to discover the Over and Under sides. Markets 1 and 2 use TYPE_TEAM participants. When market_ids is omitted, it defaults to 1,2,3.Parameters
Example Response
This is an illustrative response with example record IDs and timestamps; useparticipant_id for a chart request.GET /api/v2/events/{eventID}/markets — Available markets for an event
GET /api/v2/events/{eventID}/markets — Available markets for an event
GET /api/v2/events/{eventID}/markets/history — Market history for an event
GET /api/v2/events/{eventID}/markets/history — Market history for an event
Returns recorded price-history rows for an event. Results are newest first and are subject to the historical access included with your plan.
Parameters
There is no paging cursor or truncation flag. If a response reaches the limit, narrow the market, sportsbook, or time window; it is not guaranteed to contain every matching row.
Example Response
GET /api/v2/events/{eventID}/markets/{marketID}/history — Line chart data for a specific market
GET /api/v2/events/{eventID}/markets/{marketID}/history — Line chart data for a specific market
Returns time-series price data suitable for charting line movement on a single market. More granular than the general history endpoint. To chart one side, first discover participants for the same event and market, then pass its public The response has no pagination cursor or truncation flag. Narrow the filters or time window when the total point count reaches
participant_id. For totals (market 3), discover TYPE_RESULT Over/Under and request each side separately. The response is grouped by affiliate and can otherwise contain points for more than one participant; main_line=true keeps only points that were the main line when written.Parameters
limit.Example Response
The chart-optimized response groups data points intoseries keyed by affiliate ID and orders points oldest first. Each point uses shorthand fields: t (timestamp), l (line value), p (price), m (main-line flag, always present), and optional c (closed-at timestamp). A series can include multiple participants and line values: use the public canonical participant_id to select a side, line to pin one value, or both. main_line=true alone does not isolate a participant side.Available Markets by Sport and Date
You can also discover which markets are available for a sport on a given date:Market Data Model
Each market in an event response follows this structure:prices object is keyed by affiliate_id (sportsbook). A price value of 0.0001 indicates the line is off the board.