Discovering rounds
Predict trading parameters, round timing, and the result are all combined into one pair of endpoints — there is no separate “rounds” or “history” resource.- List rounds: GET
/v1/public/binary/info— a snapshot of up to 300 rounds, newest first, refreshed about once a minute. - Get one round: GET
/v1/public/binary/info/{symbol}— the same fields for a single round, by its exactsymbol.
ACTIVE rounds at the same time — Orderly keeps a handful of upcoming rounds open for trading ahead of their strike (see Rounds and Settlement). To find the round currently in its observation window (the one a “current round” display should show), look for the ACTIVE row where observation_start_at <= server time < expire_at — see Round status and the phase table below for the other ACTIVE rounds still waiting on their strike.
GET
/v1/public/info no longer
returns Predict round symbols, with no flag to opt back into including them — use the Predict info
endpoints above to discover rounds instead.Round status
A round reaching its expiry time does not mean it disappears from the list — it moves through these statuses over time. Whether new orders are still accepted is governed by the order cutoff described in Order Management, not by this status alone.
DELISTED alone doesn’t confirm that an individual trader’s funds have arrived — see Personal settlement completion. A round can also reach DELISTED (or RECYCLING) without ever having opened for trading; such a round may have no result at all.
Result fields
Before a result is published,s1, outcome, settlement_price_per_share, and result_committed_at are all null. s0 may already have a value once the round’s strike is recorded, even while trading continues.
result_committed_at having a value is the only signal that a round’s result has been published — do not infer this from status or from s1/outcome alone. result_committed_at only means the outcome is known; it does not mean funds have been credited to any individual account. Personal settlement completion is a separate signal — see Positions and Settlement.
Frontend phase table
A typical frontend derives a display phase fromstatus, observation_start_at, expire_at, and the result fields, rather than expecting a dedicated phase field from the API.
Use server time — the outermost
timestamp field on the response — for “the current time”
below, not the client’s local clock.
This last row is a personal, account-level signal, not a round phase — it has no corresponding round
status of its own. A round reaching DELISTED does not by itself mean an individual trader’s funds have arrived. See Personal settlement completion.
Polling for the result
There is no push notification for a round’s result — poll GET/v1/public/binary/info/{symbol}:
- Start polling once the round reaches
expire_at, every 2 seconds plus 0 to 1 second of random jitter. - After 30 seconds of the result still being
null, back off to every 10 seconds. - Stop as soon as the result fields have a value.
Order book
GET/v1/orderbook/{symbol} returns the existing asks and bids arrays in UP terms, plus two additive fields for Predict symbols:
down_asksis derived from UPbids(price = $1 minus the UP bid price, same quantity).down_bidsis derived from UPasks(price = $1 minus the UP ask price, same quantity).- All four arrays come from the same snapshot and share one
timestamp; Orderly computes the DOWN side server-side, so you don’t need to derive it yourself for this endpoint. - Non-Predict symbols never return
down_asksordown_bids.
<binary_symbol>@orderbook and <binary_symbol>@orderbookupdate WebSocket topics carry the same additive down_asks and down_bids fields for Predict symbols; see WebSocket API: Orderbook and Order Book Update. The <binary_symbol>@bbo topic adds down_bid and down_ask the same way — see WebSocket API: BBO.
Underlying price data
A Predict round’s strike and expiry price are drawn from the underlying index, not from the round’s own order book:- Kline for the underlying: GET
/v1/klinewithsymbol=PERP_BTC_USDC. Requesting kline for a round’s own symbol returns empty rows; always query the underlying symbol instead. - Underlying index price: subscribe to
SPOT_BTC_USDC@indexpricefor live updates. See WebSocket API: Index Price. - A round’s own index price is not pushed on the public WebSocket — there is no live topic for it. For the round’s current index price, poll GET
/v1/public/futures/{symbol}(index_price); for historical index price data over a time range, use GET/v1/public/index_pricebelow.
index_price_symbol field tells you which underlying symbol a round is priced against. This field is a PERP_{underlying}_USDC value (for example PERP_BTC_USDC) and can’t be pasted directly into a WebSocket topic name — the underlying index topic is SPOT_BTC_USDC@indexprice, as shown above.
Index price history
GET/v1/public/index_price returns 1-second-granularity index price points for a time range:
- Public endpoint; no authentication required.
- Rate limit: 10 requests per second per IP.
- The queried range must fall within the last 24 hours, and must span at least 1 second and at most 10 minutes.
- Returns at most
limitrows (default and maximum 1000), earliest first; there is no pagination.
Funding fields
Predict rounds return the same funding-related fields as perpetual futures (GET/v1/public/funding_rates, GET /v1/public/funding_rate/{symbol}, GET /v1/public/funding_rate_history), but the values are always zero — Orderly Predict has no funding mechanism. These fields are kept for response-shape compatibility with existing integrations; do not surface them to traders as a real funding rate.
Multi-round quotes
To show best bid/ask across many rounds at once (for example, on a rounds picker), subscribe to the existingbbos topic rather than polling Predict info or the order book per round. bbos returns UP-side best bid/ask for every live symbol once per second; compute the DOWN-side quote client-side as $1 minus the UP price. A newly created round’s symbol may take up to about 2 minutes to start appearing in bbos, since the gateway only reloads its symbol list on that cadence; don’t assume a symbol appears there the instant it’s created. See WebSocket API: BBOs.
What index, mark, and trade price are not
index_priceon a round is not the order book midpoint.- None of
index_price,mark_price, or the public trade price feed are ever the strike (S0) or expiry price (S1) used for settlement. - S0 and S1 are authoritative as published by Predict info — read them from there rather than recomputing them yourself from the index price history endpoint above; once published, the values Predict info returns are fixed and won’t be recalculated or overwritten on query.
Endpoints that don’t apply to Predict rounds
See WebSocket API: Price Changes for the topic-level detail.
Related pages
- Order Management — place, edit, and cancel orders, including the DOWN conversion.
- WebSocket API: Orderbook and BBO — real-time UP/DOWN quotes for a single round.
- WebSocket API: BBOs — best bid/ask across many rounds at once.
- WebSocket API: Index Price — live updates for the underlying index.