# Market data `/market-data` uses client subscription frames and does not support `since`. 1. Connect and send `{"type":"subscribe","markets":[...]}`. 2. Receive one `book_snapshot` for each newly subscribed market and replace the local book with it. 3. Apply each `book_diff` and `trade` in contiguous per-market `md_seq` order. A price level with `qty = 0` is deleted. 4. On an `md_seq` gap, request a fresh snapshot by subscribing with `force_snapshot: true`, then rebuild from that snapshot. 5. After reconnecting, subscribe again; the server sends fresh snapshots. Unlike resumable-stream `seq`, market-data `md_seq` is dense per market on data frames. Heartbeats do not advance it. The server can also send periodic snapshots; apply them in the same way as the initial snapshot.