Skip to main content
Archer websockets provides seamless access to real-time market data over a single WebSocket connection.
  • subscribe to per-market channels (orderbook, trades, ticker, kline, mid_kline, limit_orders)
  • per-wallet channels (user_orders, user_fills)
  • global channels (mini_tickers, market_updates)
  • receive snapshots on subscription where applicable
Sending transactions through the Archer transaction relay? Its landing updates have their own feed, on the relay’s host, using the same protocol. See Transaction status feed. Base URL (production): wss://api.archer.exchange Upgrade path: GET /v1/stream Wire format: JSON by default; MessagePack opt-in per connection
The WebSocket stream is fully public. No authentication is required to
connect or to subscribe to any channel.

Quick start

The whole protocol in four steps: connect → subscribe → keep-alive → read.

1 - Connect

No auth, no headers, no token.

2. Subscribe

Subscribe to one or more channels. Market channels need a market
The server replies with a confirmation and (for snapshot-bearing channels) an immediate snapshot:

3. Keep alive

The heartbeat is client-driven — the server never pings you. Send this at least every ~60s (30s recommended):
and you’ll get back
The connections missing pings 3 times in a row will be disconnected.

4. Read frames

  • Everything with an op is a control/response frame
  • Everything with a ch is channel data

Examples

Terminal using wscat

Then paste these lines one at a time:
mini_tickers broadcasts every ~1.5s, so it’s the fastest way to confirm the pipe is live without needing a specific market. You should see a {"ch":"mini_tickers",...} frame within ~2 seconds.

NodeJS