Skip to main content
Omnibook runs continuous 60-second binary rounds on the BTC price. One round is open for trading at a time per series. Understanding when orders are accepted — and when they are cancelled for you — is essential for bot design.

Round timeline

When a round freezes, anything still resting on the book is cancelled for you by the venue. You do not need to cancel manually unless you want out earlier.
Gotchas that look like bugs
Find the active round:
A status of trading means the round accepts orders. Anything else returns 409 with a market-state error (market_frozen, trading_paused, etc.).

No exchange-wide kill switch (v1)

GET /v1/exchange/status returns exchange_active: true always in v1. There is no working exchange-wide pause flag yet. Operational pauses are per-round — watch round status, not exchange_active.

cancel_on_pause

Set cancel_on_pause: true on orders you do not want to survive a pause:
Without it, resting orders remain until the round freezes (when the venue cancels them) or you cancel explicitly.

Cancel-all

Cancel every open order across all markets:
The body must be empty. A non-empty body returns 400 unexpected_body — this is deliberate. A batch-cancel request that loses its /batch path segment must not wipe your entire book.
Cancel-all charges one write token per cancelled order (same as individual cancels).

Batch cancel

Cancel up to 20 orders by id:
Body: { "order_ids": ["16777291", "16777292"] }.

WebSocket round events

Subscribe to the global rounds channel for live lifecycle events (create, open, freeze, settle). See Channels.