NOTE:
This is the documentation for the websocket channel ta_1d_live:<TICKER>.
Websocket access for personal use is only available through the Advanced plan.
You can find fully-functional examples that stream data from many channels here:
Connect to the websocket URI:
wss://api.unusualwhales.com/socket?token=<YOUR_API_TOKEN>
then join the channel for the ticker you want, for example ta_1d_live:AAPL.
Each message carries one ticker’s technical-analysis indicators computed on daily
candles.
The 1d in the channel name is the candle interval and live means the values track
the session while it is still open.
Delivery characteristics
Read these before writing a client, they are not obvious from the payload:
- Messages describe the day that is still forming, not a finished candle. While the
session is open, a new message is sent each time the price moves, up to once a second,
and each one supersedes the one before it for that ticker. The values it carries are
the ones a calculation over the finished daily candles produces.
- The channel is live during regular trading hours only. Outside them nothing is
published and the socket is silent for this channel.
- An indicator is
null until enough daily history exists to compute it. Each one
opens on its own schedule: on-balance volume from the first session, rsi_14 from the
15th, sma_200 from the 200th. Every field is present on every message, so an
indicator that is not ready reads as null rather than being left out.
- The channel sends nothing when you join. The first message arrives on the next
price move, which outside regular hours means the next session.
- The number in a field name is its configuration.
rsi_14 is the relative strength
index over 14 periods, bb_20_2 is Bollinger bands over 20 periods at 2 standard
deviations, macd_12_26_9 is MACD with fast period 12, slow period 26 and signal
period 9, and stoch_5_3_3 is the stochastic oscillator with fast K 5, slow K 3 and
slow D 3.
- Read
obv as a relative series, never as a level. On-balance volume accumulates
from wherever the calculation started, so the absolute number is not comparable across
restarts. Its direction and its crossovers carry the meaning.
Payload format:
Field reference
Every indicator field is a JSON number or null. The values are TA-Lib outputs passed
through unchanged, so each indicator’s scale is the one TA-Lib defines for it. Prices
are in dollars, matching the daily closes the indicators are computed from.
Last modified on September 28, 2026