trade
publicchannel:
tradewss://api.staging.sphx.io/v1/wsThe anonymized public trade tape — one event per resting-order leg
consumed, no account identifiers. Liquidation fills do NOT appear
here (they ride the private fill channel of the affected account
only). Backfill via GET /v1/instruments/{id}/trades.
Subscribe params: instrument_id (required).
Subscribe
{ "op": "subscribe", "channel": "trade", "params": { "instrument_id": 1000 }
| Param | Type | Required | Notes |
|---|---|---|---|
instrument_id | integer · int64 | ✓ | The instrument to stream |
Events
trade
One frame per resting-order leg the aggressor consumed.
| Field | Type | Required | Description |
|---|---|---|---|
event_seq | integer · int64 | ✓ | Cluster sequence number — monotonic; drives gap detection and REST/WS joins. |
ts_ns | integer · int64 | ✓ | Aeron Cluster timestamp — MILLISECONDS despite the name (historical artifact). |
instrument_id | integer · int64 | ✓ | |
price_pips | integer | ✓ | |
count | integer | ✓ | |
taker_side | buy · sell | ✓ | The aggressor's action, YES-collapsed convention. |
Example frame
{
"channel": "trade",
"event": "trade",
"data": {
"event_seq": 1057,
"ts_ns": 1779111582959,
"instrument_id": 1000,
"price_pips": 3900,
"count": 100,
"taker_side": "buy"
}
}