fill
privatechannel:
fillwss://api.staging.sphx.io/v1/wsThe authenticated account's own fills, within ~10 ms of the match
(p99). Carries the account's own-leg fee (signed µUSDC) and the
fill tag (normal / liquidation / adl). If two of your
accounts cross, each receives its own frame. Requires bearer auth
on the upgrade. No subscribe params (auto-scoped).
Subscribe
{ "op": "subscribe", "channel": "fill" }
No params — the channel auto-scopes to the authenticated account.
Requires a bearer token on the upgrade request.
Events
fill
One of your orders traded.
| 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. |
instrument_id | integer · int64 | ✓ | |
maker_order_id | integer · uint64 | ✓ | |
taker_order_id | integer · uint64 | ✓ | |
account_id | integer · int64 | ✓ | Always the connection's authenticated account. |
side | maker · taker | ✓ | Which side of the match this account was on. |
price_pips | integer | ✓ | |
count | integer | ✓ | |
maker_side | buy · sell | ✓ | |
fee_uusdc | integer · int64 | ✓ | This account's own leg fee, signed µUSDC (negative = rebate). |
tag | normal · liquidation · adl | ✓ | Liquidation fills carry the tag here only — never on the public tape. |
Example frame
{
"channel": "fill",
"event": "fill",
"data": {
"event_seq": 1057,
"ts_ns": 1779111582959,
"instrument_id": 1000,
"maker_order_id": 41,
"taker_order_id": 42,
"account_id": 7,
"side": "taker",
"price_pips": 3900,
"count": 100,
"maker_side": "buy",
"fee_uusdc": 0,
"tag": "normal"
}
}