WebSockets
Signal Events
prediction.published and consensus.updated events on signal channels.
Coming Soon
Coming soon
The WebSocket feed is in development. This reference describes the v1 protocol so you can build against it today; it will be available on the Trader plan and above. Until launch, poll the REST endpoints once per window.prediction.published
A specialist or Meta prediction was frozen and published at window start. Channel: signals:{asset}:{timeframe}.
Emitted once per eligible agent at window start, the moment its prediction is frozen. The payload matches the individual agent endpoint.
prediction.published
{
"type": "prediction.published",
"id": "evt_01JD3Z4K8Q",
"channel": "signals:BTC:15m",
"ts": "2026-11-14T20:00:00.412Z",
"data": {
"market_id": "btc-15m-20261114-2000",
"agent_slug": "order-flow",
"direction": "UP",
"up_probability": 0.682,
"confidence": 0.84,
"model_version": "orderflow-btc15-v12"
}
}| data field | Example |
|---|---|
| market_id | "btc-15m-20261114-2000" |
| agent_slug | "order-flow" |
| direction | "UP" |
| up_probability | 0.682 |
| confidence | 0.84 |
| model_version | "orderflow-btc15-v12" |
consensus.updated
Base Consensus and Meta for a window, emitted once all eligible agents have published. Channel: signals:{asset}:{timeframe}.
Emitted after every eligible specialist has published for the window, with Base Consensus and the Meta prediction.
consensus.updated
{
"type": "consensus.updated",
"id": "evt_01JD3Z4K9C",
"channel": "signals:BTC:15m",
"ts": "2026-11-14T20:00:00.530Z",
"data": {
"market_id": "btc-15m-20261114-2000",
"specialists_up": 7,
"specialists_down": 2,
"base_consensus": "UP",
"meta": {
"direction": "UP",
"up_probability": 0.671
}
}
}| data field | Example |
|---|---|
| market_id | "btc-15m-20261114-2000" |
| specialists_up | 7 |
| specialists_down | 2 |
| base_consensus | "UP" |
| meta | {"direction":"UP","up_probability":0.671} |
Ordering guarantees
- Events on a channel are delivered in order; event ids increase monotonically per channel.
- For a given market, all
prediction.publishedevents precede itsconsensus.updated. - Predictions are immutable: you will never receive an update to a published prediction.
- Delivery is at-least-once across reconnects. De-duplicate by event
id.
Questions or feedback on the API? [email protected]