Skip to main content
Market discovery is on OMS. Public market data is on MDS.
Use OMS GET /markets or GET /market/{asset_id} to discover listed markets and book decimals, then use MDS for depth, trades, klines, and tickers.

Raw depth sync

Then open:
Resync loop:

tpluspy parsing

The current SDK exports typed MDS models, not a dedicated public MarketDataClient.

Klines

Candlesticks are 1 second wide by default; pass interval for wider ones. A page holds at most 1500 candlesticks, the same at every interval, so a wide window has to be paged. How far back history reaches depends on the width requested: second-wide candlesticks reach back 7 days, minute-wide ones 90 days, 15-minute ones a year, and hour-wide ones 3 years; 4 hours and wider reach the whole history of the market. REST:
WS:
Kline updates are emitted when a bucket closes. The active open bucket is included in ticker 24h stats but is not in the REST kline history until flushed. Kline volume is quote/notional volume: the updater adds trade.price * trade.quantity.

v0 and v1 envelopes

MDS market-data streams send a welcome frame, then bare payloads:
OMS authenticated streams support the v1 envelope when tplus.ws.v1 is present in Sec-WebSocket-Protocol; v0 is the bare payload. See WebSocket streams.

Reconnect

On disconnect, re-fetch the matching REST snapshot before applying new WS messages. MDS streams close on broadcast lag without a resync envelope. OMS v1 streams can send RESYNC_REQUIRED before close code 1013.