candles
publicchannel:
candleswss://api.staging.sphx.io/v1/wsLive OHLCV bars per (instrument, resolution). update replaces the
in-flight bar; closed finalizes it. Snapshot history first via
GET /v1/instruments/{id}/candles.
Subscribe params: instrument_id and resolution (both required;
resolutions: 1m, 5m, 15m, 1h, 1d).
Subscribe
{ "op": "subscribe", "channel": "candles", "params": { "instrument_id": 1000, "resolution": "5m" }
| Param | Type | Required | Notes |
|---|---|---|---|
instrument_id | integer · int64 | ✓ | The instrument to stream |
resolution | 1m · 5m · 15m · 1h · 1d | ✓ | Bar resolution |
Events
update
The in-flight bar changed; replace your copy of the matching t.
| Field | Type | Required | Description |
|---|---|---|---|
instrument_id | integer · int64 | ✓ | |
resolution | 1m · 5m · 15m · 1h · 1d | ✓ | |
bar | object | ✓ | |
bar.t | integer · int64 | ✓ | Bar window start, Unix seconds. |
bar.o | integer | ✓ | |
bar.h | integer | ✓ | |
bar.l | integer | ✓ | |
bar.c | integer | ✓ | |
bar.v | integer · int64 | ✓ | |
bar.closed | boolean | — | Present (true) only on closed events. |
Example frame
{
"channel": "candles",
"event": "update",
"data": {
"instrument_id": 1000,
"resolution": "5m",
"bar": {
"t": 1779100600,
"o": 3910,
"h": 3910,
"l": 3905,
"c": 3905,
"v": 30
}
}
}
closed
The bar window elapsed; values are final.
| Field | Type | Required | Description |
|---|---|---|---|
instrument_id | integer · int64 | ✓ | |
resolution | 1m · 5m · 15m · 1h · 1d | ✓ | |
bar | object | ✓ | |
bar.t | integer · int64 | ✓ | Bar window start, Unix seconds. |
bar.o | integer | ✓ | |
bar.h | integer | ✓ | |
bar.l | integer | ✓ | |
bar.c | integer | ✓ | |
bar.v | integer · int64 | ✓ | |
bar.closed | boolean | — | Present (true) only on closed events. |
Example frame
{
"channel": "candles",
"event": "closed",
"data": {
"instrument_id": 1000,
"resolution": "5m",
"bar": {
"t": 1779100600,
"o": 3910,
"h": 3910,
"l": 3905,
"c": 3910,
"v": 75,
"closed": true
}
}
}