Skip to main content

Market API

The Market API provides access to market information, pricing, and settlement data.

Endpoints

MethodEndpointDescription
GET/v1/marketsGet all markets with filtering
GET/v1/market/id/{id}Get market by ID
GET/v1/market/slug/{slug}Get market by slug
GET/v1/markets/sides/{marketSideId}Get market side by ID
GET/v1/markets/{marketId}/sidesGet market sides by market ID
GET/v1/markets/{slug}/bookGet full market order book and stats
GET/v1/markets/{slug}/bboGet best bid/offer (lightweight)
GET/v1/markets/{slug}/settlementGet market settlement price

Key Market Fields

FieldDescription
idUnique market identifier
slugURL-friendly identifier
questionMarket question
descriptionDetailed market description
categoryMarket category
subcategoryMarket subcategory
activeWhether market is accepting orders
closedWhether market has closed
archivedWhether market is archived

Pricing Fields

FieldDescription
lastTradePriceMost recent trade price
bestBidBest bid price
bestAskBest ask price
spreadCurrent bid-ask spread
oneDayPriceChange24-hour price change
oneWeekPriceChange7-day price change

Volume & Liquidity

FieldDescription
liquidityCurrent market liquidity
liquidityNumLiquidity as number
volumeTotal trading volume
volumeNumVolume as number
volume24hr24-hour volume
volume1wk7-day volume
volume1mo30-day volume

Sports Market Fields

FieldTypeDescription
sportsMarketTypeV2string (enum)Type: MONEYLINE, SPREAD, TOTAL, or PROP
gameIdstringSports provider game ID
linenumberLine value for spread/total markets

Filtering Markets

Query markets with various filters:
GET /v1/markets?active=true&categories=sports&limit=50

Pagination & Ordering

ParameterTypeDescription
limitintegerMaximum number of markets to return per page. Default varies by endpoint. Example: 50
offsetintegerNumber of markets to skip for pagination. Use with limit to page through results. Example: 100 to skip the first 100
orderBystring[]Fields to sort results by. Supports multiple fields for multi-level sorting. Example: ["volumeNum", "createdAt"]
orderDirectionstringSort direction for the orderBy fields. Values: asc (ascending) or desc (descending). Default: desc

Status Filters

ParameterTypeDescription
activebooleanFilter markets by active trading status. true returns only markets currently accepting orders, false returns inactive markets
closedbooleanFilter markets by closed status. true returns only markets that have closed (resolved or expired), false returns open markets
archivedbooleanFilter markets by archived status. true returns only archived/hidden markets, false excludes archived markets from results

Category & Type Filters

ParameterTypeDescription
categoriesstring[]Filter by market categories. Example: ["sports", "politics", "crypto"]
marketTypesstring[]Filter by market format types. Example: ["binary", "scalar"]
sportsMarketTypesenum[]Filter by sports market type. Values: SPORTS_MARKET_TYPE_MONEYLINE (winner), SPORTS_MARKET_TYPE_SPREAD (point spread), SPORTS_MARKET_TYPE_TOTAL (over/under), SPORTS_MARKET_TYPE_PROP (player/game props)
tagIdintegerFilter markets associated with a specific tag ID. Returns markets that have this tag applied
relatedTagsbooleanWhen true and tagId is provided, also includes markets with tags related to the specified tag
includeTagbooleanWhen true, includes full tag information in the response for each market
cyombooleanFilter “Create Your Own Market” submissions. true returns only user-submitted markets, false excludes them

ID Filters

ParameterTypeDescription
idinteger[]Filter by specific market IDs. Returns only markets matching these numeric IDs. Example: [123, 456, 789]
slugstring[]Filter by market URL slugs. Returns only markets matching these slug identifiers. Example: ["will-team-a-win", "super-bowl-winner"]
questionIdsstring[]Filter by question IDs (UUIDs). Returns markets associated with these question identifiers
gameIdstringFilter by sports game ID from the data provider. Returns all markets associated with a specific sporting event

Volume & Liquidity Filters

ParameterTypeDescription
volumeNumMinnumberMinimum total trading volume in USD. Only returns markets with volumeNum >= this value. Example: 1000.00
volumeNumMaxnumberMaximum total trading volume in USD. Only returns markets with volumeNum <= this value. Example: 100000.00
liquidityNumMinnumberMinimum available liquidity in USD. Only returns markets with liquidityNum >= this value. Example: 500.00
liquidityNumMaxnumberMaximum available liquidity in USD. Only returns markets with liquidityNum <= this value. Example: 50000.00
rewardsMinSizenumberMinimum order size eligible for liquidity rewards. Filters to markets where reward-eligible orders must be at least this size

Date Filters

All date parameters accept ISO 8601 format strings (e.g., 2025-01-20T00:00:00Z).
ParameterTypeDescription
startDateMinstring (ISO 8601)Filter markets with a start date on or after this timestamp. Example: 2025-01-01T00:00:00Z
startDateMaxstring (ISO 8601)Filter markets with a start date on or before this timestamp. Example: 2025-12-31T23:59:59Z
endDateMinstring (ISO 8601)Filter markets with an end/expiration date on or after this timestamp
endDateMaxstring (ISO 8601)Filter markets with an end/expiration date on or before this timestamp

Market Sides

Each market has sides representing the possible outcomes. Query market sides:
GET /v1/markets/{marketId}/sides

Market Side Fields

FieldDescription
idMarket side ID
marketSideTypeType (ERC1155 or INSTRUMENT)
identifierMarket side identifier
descriptionSide description
longWhether this is the long side
participantIdAssociated participant ID
Real-Time Market DataFor real-time price updates and order book data, use the WebSocket Markets Stream instead of polling the REST API.

Market Book (Full)

Get real-time order book data and market statistics for a specific market:
GET /v1/markets/{slug}/book

Path Parameters

ParameterTypeRequiredDescription
slugstringYesMarket slug identifier

Response

{
  "marketData": {
    "marketSlug": "will-team-a-win",
    "bids": [
      { "px": { "value": "0.55", "currency": "USD" }, "qty": "1000" },
      { "px": { "value": "0.54", "currency": "USD" }, "qty": "500" }
    ],
    "offers": [
      { "px": { "value": "0.56", "currency": "USD" }, "qty": "750" },
      { "px": { "value": "0.57", "currency": "USD" }, "qty": "1200" }
    ],
    "state": "MARKET_STATE_OPEN",
    "stats": {
      "lastTradePx": { "value": "0.55", "currency": "USD" },
      "openPx": { "value": "0.50", "currency": "USD" },
      "highPx": { "value": "0.58", "currency": "USD" },
      "lowPx": { "value": "0.48", "currency": "USD" },
      "sharesTraded": "50000",
      "openInterest": "125000",
      "notionalTraded": { "value": "27500.00", "currency": "USD" }
    },
    "transactTime": "2025-01-20T12:30:45.123Z"
  }
}

Market Data Fields

FieldTypeDescription
marketSlugstringMarket identifier
bidsarrayBuy orders (highest price first)
offersarraySell orders (lowest price first)
statestringCurrent market state
statsobjectMarket statistics
transactTimestringTimestamp of data

Book Entry

FieldTypeDescription
pxAmountPrice level
qtystringQuantity available at this price

Market States

StateDescription
MARKET_STATE_OPENMarket is open for trading
MARKET_STATE_PREOPENMarket is in pre-open phase
MARKET_STATE_SUSPENDEDTrading temporarily suspended
MARKET_STATE_HALTEDTrading halted
MARKET_STATE_EXPIREDMarket has expired
MARKET_STATE_TERMINATEDMarket terminated
MARKET_STATE_MATCH_AND_CLOSE_AUCTIONMarket in closing auction

Market Stats

FieldTypeDescription
openPxAmountOpening price
closePxAmountClosing price
highPxAmountHigh price
lowPxAmountLow price
lastTradePxAmountLast trade price
indicativeOpenPxAmountIndicative opening price (pre-open)
settlementPxAmountSettlement price
sharesTradedstringTotal shares traded
notionalTradedAmountTotal notional value traded
lastTradeQtystringLast trade quantity
openIntereststringCurrent open interest
currentPxAmountCurrent market price

Market BBO (Lightweight)

Get best bid/offer and basic market statistics in a lightweight format. Use this endpoint when you only need top-of-book prices without the full order book depth.
GET /v1/markets/{slug}/bbo

Path Parameters

ParameterTypeRequiredDescription
slugstringYesMarket slug identifier

Response

{
  "marketDataLite": {
    "marketSlug": "will-team-a-win",
    "currentPx": { "value": "0.55", "currency": "USD" },
    "lastTradePx": { "value": "0.55", "currency": "USD" },
    "bestBid": { "value": "0.54", "currency": "USD" },
    "bestAsk": { "value": "0.56", "currency": "USD" },
    "bidDepth": 5,
    "askDepth": 4,
    "sharesTraded": "50000",
    "openInterest": "125000",
    "settlementPx": { "value": "0.00", "currency": "USD" }
  }
}

Market Data Lite Fields

FieldTypeDescription
marketSlugstringMarket identifier
currentPxAmountCurrent market price
lastTradePxAmountPrice of the most recent trade
bestBidAmountBest (highest) bid price
bestAskAmountBest (lowest) ask price
bidDepthintegerNumber of price levels on the bid side
askDepthintegerNumber of price levels on the ask side
sharesTradedstringTotal shares traded
openIntereststringCurrent open interest
settlementPxAmountSettlement price (if resolved)

When to Use BBO vs Book

EndpointUse Case
/v1/markets/{slug}/bboDisplay current prices, check spreads, lightweight polling
/v1/markets/{slug}/bookView full order book depth, analyze liquidity at each level
Real-Time UpdatesFor continuous order book updates, use the WebSocket Markets Stream instead of polling these endpoints.

Settlement

After a market resolves, query the settlement price:
GET /v1/markets/will-x-happen/settlement
Response:
{
  "slug": "will-x-happen",
  "settlement": 1.00
}
Settlement values are typically 0.00 (No) or 1.00 (Yes).