- GitHub: OmniBook-HQ/python-sdk-v1
- PyPI:
omnibook
Install
Prerequisites
- Sign in at omnibook.xyz.
- Deposit USDC (bot keys cannot withdraw).
- Create a key under Settings → API keys. Copy the API key and secret (shown once).
https://api.omnibook.xyz), not the browser session
proxy. Pass the 64-character hex secret from Settings, the client
hex-decodes it to the raw 32-byte HMAC key for you (legacy base64 secrets still
work).
Quick start
3500 = 35.00¢). Do not send 1–99. Helpers live
in omnibook.ticks — see Ticks, pips, and subcents.
Place an order
504 sequencing timeout, retry with the same client_order_id, see
Orders.
Async
WebSocket
One signed connection multiplexes public and private channels. Passmarket_ids
for orderbook_snapshot / orderbook_delta and trades. Live channels also include oracle,
rounds, and user. (ticker is not implemented.)
oracle and rounds are global across all nine series — the SDK hands you
every frame. Filter on msg["msg"]["feed"] and msg["msg"]["category"]
yourself.
Environments
Errors
The SDK raises typed exceptions from the venue envelope:
Branch on
exc.code, not the message. Full list: Errors.
What the SDK covers
- Exchange status / schedule / retention
- Account limits (scopes, read/write/cancel buckets, trailing volume, batch cap)
- Markets, orderbook, trades
- Rounds (with
categoryfilter) and oracle price (feed 0 only — see above) - Portfolio balance, positions, fills, orders, queue position
- Place / batch / cancel / cancel-batch / cancel-all / decrease
- Pip tick helpers (
cents_to_tick,on_grid,implied_ask,first_trading_market) - Dead-man switch (arm / disarm)
- Deposit address (read)
- WebSocket subscribe / unsubscribe / update_subscription / stream
Running the tests
From the SDK repository:post_only
sizes (pip ticks, e.g. 100 = 1.00¢) and cancel in teardown.