Binary markets
YES / NO on a single question. Settled through
CTFExchange
against ConditionalTokens.Neg-risk markets
2 or more mutually exclusive outcomes. Settled through
NegRiskAdapterNegRiskCtfExchange.
Crypto markets
Price and market-data questions on BTC, ETH and other crypto
instruments — the
crypto rule block, the product catalog, and the
underlying-price curve endpoint.Up/Down windows
Short-dated
Up / Down markets on a recurring window grid — the
cryptoWindow block and series navigation.Lifecycle
PAUSED, SUSPENDED,
POSTPONED), and a market can be VOIDED from any status up to
DISPUTED.
See Market status for the full
state machine.
Listing markets
Increment
offset by limit for each page. The response carries
hasMore — true while a further page exists — but no total or
nextOffset.
With sort=activity or sort=shares on the default list,
closed=true or status=OPEN, the order is recomputed about every 15
seconds, and pages read within that interval are usually cut from the
same ordering, so a quick walk rarely repeats a market. A row’s
tradeCount / totalShares can be a few seconds newer than its
position. On any walk, a market that changes status between two pages
drops out and moves the later rows up by one, so the row after it can
be missed: de-duplicate by symbol.
Crypto markets carry two additional blocks on the same shape —
crypto (the machine-readable price rule) and cryptoWindow
(Up/Down window facts). Both are null on every non-crypto market,
so a client that ignores them is unaffected. See
Crypto markets.Polymarket-equivalent fields
Market types
marketType is the canonical bet type of a market — a closed enum, or
null. It is the same value on GET /api/markets, on the markets[]
embedded in GET /api/events, and on GET /api/me/positions.
Three rules before you branch on it:
nullis normal, not an error. Manual and legacy markets — including some older crypto Up/Down windows — carry no type. Treatnullas “uncategorised”. To detect a crypto market, branch on thecryptoblock being non-null, never onmarketType— see Crypto markets.- The set grows. New sports and bet types are added over time. Map unknown values to a generic “other” bucket rather than rejecting the market.
- It is display and categorisation only. Settlement reads the provider criteria independently, so the type never changes how a market resolves.
A market’s moneyline reuses the generic outcome type regardless of
sport: a baseball, boxing or American-football winner market is
MATCH_WINNER, not a sport-prefixed value. Only the sport-specific
lines and props carry a prefix.
On-chain identifiers
conditionId / questionId are the bytes32 hex values from
ConditionalTokens. yesTokenId
/ noTokenId are the ERC-1155 position ids you sign over in your
EIP-712 Order typed data. All four are null until the market’s
deployment is confirmed (status PRE_MARKET or beyond).
A neg-risk group is a set of sibling markets, each a YES/NO market on
one outcome of the group. Each sibling carries its own yesTokenId /
noTokenId once deployed, and the same ids appear in outcomes[]
(outcomeIndex 0 = YES, 1 = NO). See
Neg-risk markets.
See Events overview for how markets group
under events and how to filter the public catalog.
Individual market detail
match, teamA, teamB, competition, tags, scheduledAt),
call GET /api/events/{slug} with the event slug from the parent grouping
(see Events overview).
Orderbook snapshot
symbol. For live book updates, use the
token_book WebSocket channel — polling is rate-limited and
latency-inferior. See Orderbook.