Skip to content
Docs
Developers

Realtime API reference

Every public WebSocket channel, generated from the published AsyncAPI contract.

Realtime API

Edel Markets product WebSocket contract, version realtime-contract/v1. The reference lists 18 channels, generated from the published product AsyncAPI.

Connect to /streams/v1/ws on the WebSocket host supplied for your environment. The server sends a heartbeat every 10 seconds. After a sequence_gap or resync_required error, request a fresh snapshot and resubscribe. Connection, ticket and recovery rules are in WebSocket lifecycle.

ChannelAuthenticationSnapshot source
market.tradesnoneno REST snapshot — subscribe and replay from the stream
market.booknoneGET /v1/markets/{marketId}/book
market.tickernoneGET /v1/markets/{marketId}/stats
market.pricenoneno REST snapshot — subscribe and replay from the stream
market.fundingnoneGET /v1/markets/{marketId}/stats
market.statusnoneGET /v1/markets/{marketId}
market.candlesnoneGET /v1/markets/{marketId}/candles
account.ordersrealtime ticket, sent in an auth frame before subscribingGET /v1/accounts/{accountId}/orders
account.fillsrealtime ticket, sent in an auth frame before subscribingGET /v1/accounts/{accountId}/fills
account.durabilityrealtime ticket, sent in an auth frame before subscribingno REST snapshot — subscribe and replay from the stream
account.positionsrealtime ticket, sent in an auth frame before subscribingGET /v1/accounts/{accountId}/positions
account.pnlrealtime ticket, sent in an auth frame before subscribingno REST snapshot — subscribe and replay from the stream
account.marginrealtime ticket, sent in an auth frame before subscribingGET /v1/accounts/{accountId}
account.balancerealtime ticket, sent in an auth frame before subscribingGET /v1/accounts/{accountId}
account.withdrawalsrealtime ticket, sent in an auth frame before subscribingno REST snapshot — subscribe and replay from the stream
account.reconciliationrealtime ticket, sent in an auth frame before subscribingno REST snapshot — subscribe and replay from the stream
account.alertsrealtime ticket, sent in an auth frame before subscribingno REST snapshot — subscribe and replay from the stream
account.earningsrealtime ticket, sent in an auth frame before subscribingGET /v1/accounts/{accountId}/affiliate/earnings

market.trades

Public executed-trade updates. No authentication is required. Subscribe and use supported stream replay; this channel has no REST snapshot.

Authentication. none.

Snapshot. no REST snapshot — subscribe and replay from the stream.

Messages. RealtimeMarketTradePayload.

Source type. live.

market.book

Complete projected order-book snapshots containing the top price levels. No authentication is required. Replace the previous levels after validating sequence metadata; messages are not additive price-level deltas.

Authentication. none.

Snapshot. GET /v1/markets/{marketId}/book.

Messages. RealtimeMarketBookPayload.

Source type. projection.

market.ticker

The latest executed trade with 24-hour volume, change, high and low derived from one-minute candle data. No authentication is required. The newest ticker is replayed when a subscription is accepted.

Authentication. none.

Snapshot. GET /v1/markets/{marketId}/stats.

Messages. RealtimeMarketTickerPayload.

Source type. derived.

market.price

Market price observations, including the price fields and provider information defined by the payload. No authentication is required. Subscribe and use supported stream replay; this channel has no REST snapshot.

Authentication. none.

Snapshot. no REST snapshot — subscribe and replay from the stream.

Messages. RealtimeMarketPricePayload.

Source type. live.

market.funding

Updates from settled funding periods. No authentication is required. Use the payload fields to distinguish the reported funding state from an estimated future payment.

Authentication. none.

Snapshot. GET /v1/markets/{marketId}/stats.

Messages. RealtimeMarketFundingPayload.

Source type. live.

market.status

Projected market-status updates. No authentication is required. Only statuses currently used by markets produce updates.

Authentication. none.

Snapshot. GET /v1/markets/{marketId}.

Messages. RealtimeMarketStatusPayload.

Source type. projection.

market.candles

Index and trade candle updates derived from price observations and executed trades. No authentication is required. Select the required series when subscribing; mark candles are unavailable.

Authentication. none.

Snapshot. GET /v1/markets/{marketId}/candles.

Messages. RealtimeMarketCandlePayload.

Source type. live.

account.orders

Order lifecycle updates for the authenticated account. Authenticate with an account-bound realtime ticket before subscribing.

Authentication. realtime ticket, sent in an auth frame before subscribing.

Snapshot. GET /v1/accounts/{accountId}/orders.

Messages. RealtimeAccountOrderPayload.

Source type. live.

account.fills

The authenticated account’s side of executed fills. Authenticate with an account-bound realtime ticket before subscribing.

Authentication. realtime ticket, sent in an auth frame before subscribing.

Snapshot. GET /v1/accounts/{accountId}/fills.

Messages. RealtimeAccountFillPayload.

Source type. live.

account.durability

Off-chain durability progress for account-related records, including cash changes, funding settlement and trade activity. Frames identify the sequence source and covering group and storage-chain digests where provided. Authenticate with an account-bound realtime ticket before subscribing. Durability progress is distinct from Canton settlement confirmation.

Authentication. realtime ticket, sent in an auth frame before subscribing.

Snapshot. no REST snapshot — subscribe and replay from the stream.

Messages. RealtimeAccountDurabilityPayload.

Source type. live.

account.positions

Position updates and risk-state changes for the authenticated account. Some updates contain position data with partial risk evidence; others indicate a risk-state change requiring reconciliation. Apply only the fields established by the payload and preserve incomplete state explicitly. Authenticate with an account-bound realtime ticket before subscribing.

Authentication. realtime ticket, sent in an auth frame before subscribing.

Snapshot. GET /v1/accounts/{accountId}/positions.

Messages. RealtimeAccountPositionPayload.

Source type. live.

account.pnl

Position-related realized and unrealized PnL updates for the authenticated account. Authenticate with an account-bound realtime ticket before subscribing.

Authentication. realtime ticket, sent in an auth frame before subscribing.

Snapshot. no REST snapshot — subscribe and replay from the stream.

Messages. RealtimeAccountPnlPayload.

Source type. live.

account.margin

Margin updates for the authenticated account. Payloads may contain exact margin values or indicate a changed risk-state digest. A digest alone is not a complete margin snapshot. Authenticate with an account-bound realtime ticket before subscribing.

Authentication. realtime ticket, sent in an auth frame before subscribing.

Snapshot. GET /v1/accounts/{accountId}.

Messages. RealtimeAccountMarginPayload.

Source type. digest.

account.balance

Signed balance changes from credited deposits and settled withdrawals. The resulting cashAtoms value is provided by the account snapshot; do not infer a complete current balance from a change alone. Authenticate with an account-bound realtime ticket before subscribing.

Authentication. realtime ticket, sent in an auth frame before subscribing.

Snapshot. GET /v1/accounts/{accountId}.

Messages. RealtimeAccountBalancePayload.

Source type. live.

account.withdrawals

Withdrawal lifecycle updates for the authenticated account. Each update reports a status change and the terminal reason where provided. Authenticate with an account-bound realtime ticket before subscribing.

Authentication. realtime ticket, sent in an auth frame before subscribing.

Snapshot. no REST snapshot — subscribe and replay from the stream.

Messages. RealtimeAccountWithdrawalPayload.

Source type. live.

account.reconciliation

Account reconciliation information. This channel is currently unavailable. An account-bound realtime ticket is required for private subscriptions.

Authentication. realtime ticket, sent in an auth frame before subscribing.

Snapshot. no REST snapshot — subscribe and replay from the stream.

Messages. RealtimeAccountReconciliationPayload.

Source type. unavailable.

account.alerts

Account alert information. This channel is currently unavailable. An account-bound realtime ticket is required for private subscriptions.

Authentication. realtime ticket, sent in an auth frame before subscribing.

Snapshot. no REST snapshot — subscribe and replay from the stream.

Messages. RealtimeAccountAlertPayload.

Source type. unavailable.

account.earnings

Projected affiliate earnings for the authenticated account. Subscriptions require the affiliate capability to be enabled and current; otherwise they return source_unavailable. Authenticate with an account-bound realtime ticket before subscribing.

Authentication. realtime ticket, sent in an auth frame before subscribing.

Snapshot. GET /v1/accounts/{accountId}/affiliate/earnings.

Messages. RealtimeAccountEarningsPayload.

Source type. projection.