Skip to main content
The Markets resource provides access to market information, pricing, and order book data. Markets represent individual tradeable contracts within an event.

Methods

MethodEndpointDescription
list(params?)GET /v1/marketsList markets with filtering
retrieve(id)GET /v1/market/id/{id}Get market by ID
retrieveBySlug(slug)GET /v1/market/slug/{slug}Get market by slug
book(slug)GET /v1/markets/{slug}/bookGet full order book
bbo(slug)GET /v1/markets/{slug}/bboGet best bid/offer
settlement(slug)GET /v1/markets/{slug}/settlementGet settlement price

list

Fetch a paginated list of markets with optional filters.
const markets = await client.markets.list({
  limit: 20,
  active: true,
  categories: ['sports', 'crypto'],
});

for (const market of markets.markets) {
  console.log(`${market.slug}: ${market.question}`);
}

Parameters

ParameterTypeDescription
limitnumberMaximum results to return
offsetnumberPagination offset
activebooleanFilter by active trading status
closedbooleanFilter by closed status
archivedbooleanFilter by archived status
categoriesstring[]Filter by category slugs
sportsMarketTypesstring[]Filter by sports market type (MONEYLINE, SPREAD, TOTAL, PROP)
volumeNumMinnumberMinimum trading volume
liquidityNumMinnumberMinimum liquidity

Response Fields

FieldTypeDescription
idnumberUnique market identifier
slugstringURL-friendly identifier
questionstringMarket question
descriptionstringDetailed description
activebooleanWhether market accepts orders
lastTradePricenumberMost recent trade price
bestBidnumberBest bid price
bestAsknumberBest ask price
volumestringTotal trading volume
liquiditystringCurrent liquidity

retrieveBySlug

Get a single market by its URL slug.
const market = await client.markets.retrieveBySlug('btc-100k-2025');

console.log(`Question: ${market.question}`);
console.log(`Status: ${market.active}`);
console.log(`Last Price: ${market.lastTradePrice}`);

book

Get the full order book with all bid and offer levels.
const book = await client.markets.book('btc-100k-2025');

console.log(`State: ${book.marketData.state}`);
console.log(`Bids: ${book.marketData.bids.length}`);
console.log(`Offers: ${book.marketData.offers.length}`);

for (const bid of book.marketData.bids.slice(0, 5)) {
  console.log(`  $${bid.px.value} x ${bid.qty}`);
}

Response Fields

FieldTypeDescription
marketSlugstringMarket identifier
bidsarrayBuy orders (highest price first)
offersarraySell orders (lowest price first)
statestringMarket state (OPEN, SUSPENDED, etc.)
statsobjectMarket statistics

bbo

Get best bid/offer only. Use this lightweight endpoint when you only need top-of-book prices.
const bbo = await client.markets.bbo('btc-100k-2025');

const data = bbo.marketDataLite;
console.log(`Best Bid: $${data.bestBid.value}`);
console.log(`Best Ask: $${data.bestAsk.value}`);
console.log(`Last Trade: $${data.lastTradePx.value}`);

Response Fields

FieldTypeDescription
bestBidAmountBest (highest) bid price
bestAskAmountBest (lowest) ask price
lastTradePxAmountLast trade price
bidDepthnumberNumber of bid levels
askDepthnumberNumber of ask levels
openIntereststringCurrent open interest

settlement

Get the settlement price for a resolved market.
const settlement = await client.markets.settlement('btc-100k-2025');

console.log(`Settlement: $${settlement.settlement}`);
Settlement values are typically 0.00 (No) or 1.00 (Yes).
For real-time market data, use the WebSocket markets stream instead of polling.