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.
| Channel | Authentication | Snapshot source |
|---|---|---|
market.trades | none | no REST snapshot — subscribe and replay from the stream |
market.book | none | GET /v1/markets/{marketId}/book |
market.ticker | none | GET /v1/markets/{marketId}/stats |
market.price | none | no REST snapshot — subscribe and replay from the stream |
market.funding | none | GET /v1/markets/{marketId}/stats |
market.status | none | GET /v1/markets/{marketId} |
market.candles | none | GET /v1/markets/{marketId}/candles |
account.orders | realtime ticket, sent in an auth frame before subscribing | GET /v1/accounts/{accountId}/orders |
account.fills | realtime ticket, sent in an auth frame before subscribing | GET /v1/accounts/{accountId}/fills |
account.durability | realtime ticket, sent in an auth frame before subscribing | no REST snapshot — subscribe and replay from the stream |
account.positions | realtime ticket, sent in an auth frame before subscribing | GET /v1/accounts/{accountId}/positions |
account.pnl | realtime ticket, sent in an auth frame before subscribing | no REST snapshot — subscribe and replay from the stream |
account.margin | realtime ticket, sent in an auth frame before subscribing | GET /v1/accounts/{accountId} |
account.balance | realtime ticket, sent in an auth frame before subscribing | GET /v1/accounts/{accountId} |
account.withdrawals | realtime ticket, sent in an auth frame before subscribing | no REST snapshot — subscribe and replay from the stream |
account.reconciliation | realtime ticket, sent in an auth frame before subscribing | no REST snapshot — subscribe and replay from the stream |
account.alerts | realtime ticket, sent in an auth frame before subscribing | no REST snapshot — subscribe and replay from the stream |
account.earnings | realtime ticket, sent in an auth frame before subscribing | GET /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.