Skip to main content

Trades (LTP) Stream

Streams every public trade. Useful for tracking last-traded price (LTP) and trade tape.

Subject (all markets)v1.f.public.futures.ltp.>
Subject (one market)v1.f.public.futures.ltp.BTC/USDT
AuthPublic — no signature.

Subscribe

import asyncio
import nats

async def main():
nc = await nats.connect("wss://pc-nats-prod.coinswitch.co")
sub = await nc.subscribe("v1.f.public.futures.ltp.>")
async for msg in sub.messages:
print(msg.subject, msg.data.decode())

asyncio.run(main())

Update payload — single market

When you subscribe to a specific market (...ltp.BTC/USDT), each message is a single trade object:

{
"t": 1756475616499,
"p": 0.0904,
"q": 32.8,
"m": "AEVO/USDT",
"e": "COINSWITCHX",
"E": 1756475616547,
"id": 0,
"isMarketMaker": false
}

Update payload — wildcard

When you subscribe with the wildcard (...ltp.>), each message is an array of trades batched together:

[
{
"t": 1756475616499,
"p": 0.0904,
"q": 32.8,
"m": "AEVO/USDT",
"e": "COINSWITCHX",
"E": 1756475616547,
"id": 0,
"isMarketMaker": false
},
{
"t": 1756475616499,
"p": 1.0904,
"q": 33.8,
"m": "BTC/USDT",
"e": "COINSWITCHX",
"E": 1756475616547,
"id": 0,
"isMarketMaker": false
}
]

Fields

FieldTypeDescription
tintegerSystem timestamp (Unix ms).
EintegerExchange-side timestamp (Unix ms).
pnumberTrade price.
qnumberTrade quantity (base asset).
mstringMarket — BASE/QUOTE.
estringExchange identifier.
idintegerTrade ID.
isMarketMakerbooleantrue if the maker side initiated the resting order.