https://{API_BASE}. Bodies are
JSON; prices and sizes are decimal strings. The auth tier for each endpoint is
noted inline — see API overview for how
each tier works.
Enums used throughout:
side = buy | sell; order type = limit | market;
timeInForce = gtc | ioc | fok; marginMode = isolated | cross.
postOnly rejects an order that would take liquidity; reduceOnly prevents an
order from increasing your position.Market data
Public — no credentials required.List markets
none
GET /perps/markets (alias GET /markets/linear) — all linear markets: spot,
perpetual, and dated futures. Expired dated futures are auto-excluded.array
Response
Order book snapshot
string
required
GET /perps/orderbook/{marketId} — aggregated book snapshot for a perp/linear
market.number
Number of levels to return. Defaults to the full book.
Response
GET /orderbook/{marketId} (alias
GET /options/orderbook/{marketId}), which returns the same { bids, asks }
shape.
Market stats
string
required
GET /perps/market-stats — 24h ticker for one market.string
string
string
string
string
Current 1h funding rate as a percent.
Candles (OHLCV)
string
required
GET /perps/ohlc — candlestick history, TradingView-shaped. e.g. BTC-PERP.string
1 | 5 | 15 | 30 | 60 | 240 | D (default 15).number
Unix seconds. Range capped to 90 days.
number
Unix seconds.
Response
Fees, insurance fund & DVOL
endpoint
Perp fee-tier schedule: array of
{ min30dVolumeUsd, makerBps, takerBps }. A
negative maker bps is a rebate. Your personal tier is reflected in order
preview.endpoint
Options fee schedule.
endpoint
Public insurance-fund balance and summary.
endpoint
30-day implied-volatility index. Query
underlying (default BTC). Returns
{ underlying, dvol, tenorDays: 30, computedAt, sourceTimestamp }.Options board
The option board is the single source for the chain and its implied-volatility surface — every strike carries its mark, IV and Greeks, so there is no separate surface endpoint.string
GET /markets/board — full option chain for an underlying with per-strike
quotes, IV and Greeks. e.g. BTC. Omit for the primary underlying.string
string
string[]
object
Per-expiry
{ forwardPrice, futuresMarketId } — each expiry is priced off its
own forward.array
Board
mark, iv, and delta are OCX reference marks, published for pricing
and risk. The tradable prices are always the order book. See
Options pricing for the concept.Trading — perpetuals & futures
Perps and dated futures share one order API (a dated future is just a market with anexpiry).
Place an order
string
required
string
required
buy | sellstring
required
string
limit (default) | marketstring
Required for
limit.string
gtc | ioc | fokboolean
boolean
string
isolated | crossstring
string
string
string
POST /perps/orders — Session. Returns the order object with resulting
fills and position.
Preview an order
POST /perps/orders/preview — Session or API key. Dry-run an order: margin
required, estimated fee, and approval, with no side effects. Same body shape as
a live order.
string
string
string
string
string
maker | takerstring
Drives your fee tier.
boolean
string
Present when
approved is false.Quotes and bulk quoting
endpoint
Session. Place a two-sided quote in one market:
{ marketId, bid?: { price, quantity, clientOrderId? }, ask?: { ... }, quoteId? }.endpoint
Session or API key. Replace a whole ladder atomically — the market-maker
path. Set
cancelAll: true to cancel your prior quotes and place the new set
in one operation.POST /perps/quotes/bulk
Cancel and close
endpoint
Session. Cancel one resting order.
endpoint
Session or API key. Cancel all your orders, optionally scoped by
{ marketId?, quoteId?, clientOrderId?, marginMode? }. Wire this to your
kill-switch.endpoint
Session. Close a position fully or partially:
{ marketId, quantity?, marginMode?, orderType?, price?, timeInForce? }. Omit
quantity to close fully.Trading — options & spot
Options and spot run on the central limit order-book engine. Single-instrument orders use/orders; multi-leg strategies use /orders/strategy. Each path has
an /options/… alias.
Single order
POST /orders (alias POST /options/orders) — Session.
string
required
string
required
buy | sellstring
required
string
required
string
limit (default) | marketstring
gtc | ioc | fokboolean
boolean
string
POST /orders
POST /orders/preview (alias /options/orders/preview), amend a
resting order with POST /options/orders/{id}/modify ({ price?, quantity? }),
and cancel with POST /orders/{id}/cancel or POST /orders/cancel-all.
Multi-leg strategy
POST /orders/strategy (alias /options/orders/strategy) — Session. Place a
combo (spread, straddle, …). Combos are all-or-none-immediate: every leg must
fully fill or the whole strategy is rejected (per-leg timeInForce is accepted
but ignored — combos are FOK).
string
boolean
boolean
array
required
2–8 legs, each
{ market, side, quantity, price }.POST /orders/strategy
string
boolean
array
Each
{ orderId, fills }.POST /orders/strategy/preview. Two-sided option quotes use
POST /quotes and POST /quotes/bulk (the bulk path accepts an API key).
Account
Read your own orders, positions, trades, and portfolio. Session unless noted.
For live account state, prefer the streams —
GET /perps/stream/events,
GET /options/stream/events, and GET /portfolio/balances/stream — documented
in Streaming.
Wallet
Funds live in four buckets:wallet (deposit/withdraw source), perps,
options, and spot. Move funds between buckets before trading in a venue.
All Session.
Balances
endpoint
{ onchainDepositTotal, walletBalance, perpsBalance, optionsBalance, pendingWithdrawalTotal } — decimal strings.endpoint
Per-asset inventory: array of
{ asset, bucket, available, locked, total }.endpoint
Perp-venue balance and margin view.
Transfer between buckets
string
required
wallet | perps | options | spotstring
required
A distinct bucket.
string
required
Positive; cannot exceed the source balance.
POST /wallet/transfer — atomic and double-entry ledgered.
POST /wallet/transfer
Withdraw
string
required
Must be ≤ your
wallet balance. Transfer back from perps/options/spot first.POST /wallet/withdraw → { "withdrawalId": "…" }. The amount is debited from
wallet immediately and the on-chain payout proceeds asynchronously.
History & settlements
Settlement
status values: pending, processing, sent, confirmed,
failed, insufficient_liquidity.
API keys
Session-only — a key cannot manage keys. Scopes:read, trade.
endpoint
List your keys (metadata only; secrets are never returned):
{ id, name, scope, allowedIps, expiresAt, createdAt, lastUsedAt, status }.endpoint
Create a key. Body
{ name, scope, allowedIps?, expiresInDays? }. Returns the
metadata plus the plaintext secret, shown once only.endpoint
Revoke a key.
POST /perps/me/api-keys