---
title: "WebSocket: live candles, trades and board feeds"
method: GET
path: "/ws/live"
tags: ["Streaming"]
---

# WebSocket: live candles, trades and board feeds

`GET /ws/live`

## Request

- Base URL: `https://api.getchord.xyz/v1`
- URL: `https://api.getchord.xyz/v1/ws/live`
- Auth: none declared

Upgrade to a WebSocket. No key needed, rate-limit exempt, up to 8 channels per connection. With an API key (`X-API-Key`, or `?apiKey=` from a browser) the connection joins a separate pool: up to 64 channels per connection and 20 connections per key (`429` beyond). Subscribe with `{op:"sub", channel:"candles", token, tf}`, `{op:"sub", channel:"trades", token}` or `{op:"sub", channel:"prices", chain}` (chain `5042`, `4663` or `143`); the server pushes `candle`, `trades` and `prices` frames (every print within ~400 ms; on 5042 / 4663 each item also carries the token's live 24h volume and trade counts), `new` frames for tokens trading for the first time (5042 / 4663), `ping` every 25 s, and `error` with a code (`bad_op` · `bad_token` · `bad_tf` · `bad_chain` · `channel_cap`). Full protocol under Concepts → Streaming.

## Other responses

- `101`: Switching protocols.
- `429`: This API key already holds its maximum of live connections.
- `503`: `WS_LIVE_DISABLED` or at capacity.

---

[API](https://skmtc.dev/getchord/apis/chord-api.md) · [All operations](https://skmtc.dev/getchord/apis/chord-api/llms.txt) · [OpenAPI document](https://skmtc.dev/getchord/apis/chord-api/revisions/d3bc4640fea0?raw)
