Endpoints · Tickers

Websocket streaming

WSSwss://api.tickerbot.io/v2/stream

Hold a socket open and get each subscribed ticker's freshly-computed row the moment the minute data-refresh turns it over. An update frame carries the same record as GET /v2/tickers/{ticker}. Per-minute during US market hours (4 AM–8 PM ET), equities and ETFs; the feed is quiet when the market is closed.

Plan access

Hobby streams up to 10 tickers, Pro up to 100, Scale up to 1,000. Not on Free.

Auth

API key. Send Authorization: Bearer at the handshake, or a first-message auth frame.

Cadence

One update per subscribed ticker per minute turnover. Not a raw trade tape.

string[]required

Symbols to subscribe on a subscribe frame. Up to 200 per frame; send more frames to add more, capped by your plan.

string[] | 'all' | 'default'

Columns in each update. Omit for the default minute set; "all" sends every live column; an array selects specific columns (unknown ones are dropped and listed in the ack).

authedframe

Key accepted. Carries your resolved plan.

subscribedframe

Acks a subscribe. Returns count (distinct tickers on the key), plus rejected (over cap) and dropped_fields when present.

updateframe

One ticker's new row: { ticker, as_of, data }. One per subscribed ticker per minute turnover.

unsubscribedframe

Acks an unsubscribe frame.

pongframe

Reply to a ping frame.

auth_requirederror

First message was not a valid auth frame and no Bearer header was sent. The socket closes.

unauthenticatederror

Malformed, unknown, or revoked API key.

bad_requesterror

tickers missing or empty, or more than 200 symbols in one subscribe frame.

subscription_limiterror

You are subscribed to N of M tickers on your plan. Unsubscribe some or upgrade to add more. Over-cap tickers come back in the subscribed ack's rejected list.