Live Rates Streaming API
The Live Rates Streaming API is a WebSocket feed that pushes live indicative bid/ask prices for supported currency pairs. Subscribe to the pairs you care about and receive an initial snapshot followed by updates as prices move.
Market data only. This feed is for price display and monitoring. It does not execute conversions. To lock in an executable rate for a specific amount, call
POST /v1/quotes— that REST endpoint remains the single execution surface.
Features
- Live bid/ask per subscribed pair — two prices per tick, with your account's pricing applied.
- Snapshot on subscribe — the current price immediately, then deltas.
- Per-pair subscriptions — subscribe only to what you need.
- Heartbeats — keep-alive pings so idle connections stay open.
Connection URL
wss://api.esca.finance/v1/rates
WSS (TLS) only — plaintext WebSocket is not accepted.
Authentication
Pass your API key in the X-Api-Key header on the connection upgrade — the same key you use for the REST API. See Connecting.
Update cadence
Prices are re-checked on a roughly 10-second cycle, and an update is pushed whenever a pair's bid/ask changes — updates are change-driven, not a fixed heartbeat, so a pair whose price hasn't moved won't produce a frame. Actively-moving pairs (crypto, FX crosses) update more often as the market ticks. This is an indicative price feed, not a tick-level market-data stream — do not assume sub-second delivery of every tick.
Supported pairs
Use these exact symbols (BASE/QUOTE). Symbols are case-insensitive on subscribe, but you should subscribe in the direction listed here to receive updates.
| Category | Pairs |
|---|---|
| Fiat/fiat | EUR/USD, EUR/GBP, GBP/USD, USD/NGN, USDT/NGN, USDC/NGN, GBP/NGN, EUR/NGN, BTC/NGN |
| Crypto/crypto | BTC/USDC, BTC/USDT, USDC/USDT |
| Crypto/fiat | BTC/USD, BTC/EUR, BTC/GBP, USDC/USD, USDC/EUR, USDC/GBP, USDT/USD, USDT/EUR, USDT/GBP |
The exact set available to your account depends on platform configuration. Subscribing to an unsupported symbol returns an
unknown_symbolerror.
Price precision
Rates are rounded by pair type:
| Pair type | Decimal places | Example |
|---|---|---|
| NGN-quoted | 2 | USD/NGN → 1683.42 |
| BTC-base | 5 | BTC/USD → 76635.35498 |
| All others | 8 | USDC/GBP → 0.73606587 |
Typical client flow
1. Connect (WSS upgrade with X-Api-Key) → receive `welcome`
2. subscribe { symbol: ["USD/NGN"] } → receive `subscribe` ack + `snapshot`
3. ... receive `update` frames as prices move ...
4. Reply to each `ping` with a `pong`
5. To execute at a price: POST /v1/quotes with the amount → receive an executable quoteId
See Connecting, Subscribing, and Errors & Limits.