United Market is now live on BNB Smart Chain mainnet. We just launched — start trading on-chain prediction markets today.
List Markets
search, not q. Other filters: category, tagSlug, subTagSlug, groupId, groupSlug, groupSlugPrefix, ungrouped, betTypeName, status (OPEN / CLOSED / RESOLVED / CANCELLED), clobMarketStatus, sortBy (newest / volume / endingSoon). limit / offset are aliases for pageSize / page. The envelope is { data, pagination } (page / pageSize, default 60, max 250), not a bare array.
The homepage listing is grouped by event:
{ kind: "single", market } or { kind: "group", groupId, group, markets }. Pagination counts events, not child markets.
Sports scores
{ scores: [...] }. An unknown slug returns { scores: [] }, not 404. Live updates also arrive on Socket.IO join:sports → sports:score.
Get Market Detail
polymarketSlug, status, and trading information. There is no slug field on a market.
Get Trading Snapshot
Get Orderbook
{ market, orderbooks: { yes, no }, orderbooksByOutcome } with aggregated buys / sells levels (price, size, numOrders). WebSocket ob:snapshot still uses bids / asks. A common pattern is:
- Load
GET /markets/{id}/tradingwhen the user opens the market page. - Subscribe to WebSocket updates using the market
conditionId. - Refetch
GET /markets/{id}/orderbookafterorderbook:updateif local state needs to recover.
GET /markets/{id}/best-bids?excludeMaker=<wallet> instead of the full book.
Get Ticker
Get Price History
Get Recent Trades
{ fills: [...] }, not a bare array. Use trades for activity feeds, fills tables, and public market history.