Messages
WebSockets
CF Benchmarks Value Feed
Real-time CF Benchmarks index value updates, each carrying the raw upstream frame plus trailing 60-second and quarter-hour final-minute averages. Requires authentication.
Requirements:
- Authentication required
- Index specification via
index_ids(array of CF Benchmarks index IDs, for example["BRTI", "ETHUSD_RTI"]) market_ticker/market_tickers/market_id/market_idsare not supported for this channel- You can seed
index_idsin the initial subscribe, or subscribe first and add indices later - Use
index_ids: ["all"]to receive every available index - Supports
update_subscriptionwithsubscribe_indices/unsubscribe_indices/indexlistactions indexlistreturns the available index IDs (as acfbenchmarks_value_indexlistmessage) without modifying the subscription- Ticks are emitted roughly once per second; duplicate or out-of-order upstream source timestamps are ignored
Use case: Consuming CF Benchmarks reference index values and their short-window averages
Subscription workflow:
- Subscribe to
cfbenchmarks_value(optionally seedingindex_ids). A successful subscribe returns asubscribedresponse with the assignedsid. - Discover available index IDs with the
indexlistaction; the server replies with acfbenchmarks_value_indexlistmessage. - Add or remove tracked index IDs with
subscribe_indices/unsubscribe_indices, or useindex_ids: ["all"]to track everything.
Averaging semantics:
avg_60s_data (always present):
- Window is trailing and per tick:
[source_ts_ms - 60000, source_ts_ms) window_sizecounts prior ticks only- If there are no prior ticks in the trailing window, the average falls back to the current tick value
last_60s_windowed_average_15min (present only in the final minute before quarter-hour close: :00, :15, :30, :45):
- Active accumulation window is
(quarter_close_ts_ms - 60000, quarter_close_ts_ms] - The start-boundary tick is excluded and the close tick is included
- This produces second-indexed counts:
:01 -> 1,:14 -> 14,:59 -> 59, close tick (:00/:15/:30/:45) ->60 - The field is omitted outside that final-minute window
Integration notes:
- If you subscribe without any
index_ids, no value events flow until you add indices or switch to["all"] sididentifies the subscription stream; use it forupdate_subscriptionandunsubscribe- Missing
index_idsforsubscribe_indices/unsubscribe_indicesreturns anerrorwithcode: 24(“Index IDs required”); unsupported actions return a standard websocketerror
WSS
Messages