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_symbol error.

Price precision

Rates are rounded by pair type:

Pair type Decimal places Example
NGN-quoted 2 USD/NGN1683.42
BTC-base 5 BTC/USD76635.35498
All others 8 USDC/GBP0.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.