Ticker state
https://api.tickerbot.io/ v2/ tickers/ {ticker}The full ticker row, every signal on the schema page, for one symbol or a comma list of up to 50. Right now, or with asof, as of any past date.
Query parameters
string[]requiredOne symbol, or a comma-separated list of up to 50 for a batch response keyed by symbol. Case-insensitive. Equities are bare symbols (AAPL); every other class carries a prefix — rates (R:SOFR), crypto (X:BTCUSD), fx (X:EURUSD). Bare BTC/ETH are US-listed ETFs, not spot crypto. See Tickers.
stringOptional. Target moment as YYYY-MM-DD (that day's close) or an ISO timestamp (that intraday moment; daily-only signals then carry the previous session's close, never that day's) — the same read as it stood then, unlimited depth. Full contract under [As of a past date]().
enumdefault autoGrain the past state is read at: 1m, 1h, 1d, or auto (default). auto blends: each signal comes from its freshest grain at or before the instant (minute, then hourly, then the last closed daily session), so nothing is refused for grain and no ticker is dropped; _meta.blended and _meta.intervals_present say what contributed. Pin a grain for the fastest response: one grain is read instead of three. On this single-ticker read a pinned grain returns the columns that grain stores (rsi_14, fundamentals and valuation ratios are 1d-only, so they are absent under 1h/1m rather than refused), and a grain with no row for the ticker within its 5-day window is a 404 interval_unavailable. Only valid alongside asof: a live read with interval is a 400.
1m | One minute. The finest stored tier; carries the intraday column subset for the most liquid tickers only — _meta.sources on a blended as-of read reports how many at that instant. |
1h | One hour. Stored tier, intraday column subset, full universe. |
1d | One day. The full-history, full-column tier — the only grain that carries daily-only columns (SMAs, RSI, fundamentals). |
autodefault | On as-of reads: each signal at its freshest grain at or before the instant (minute, then hourly, then the last closed daily session), nothing refused for grain. Events with join=state blend hourly and daily on rows and use daily on group_by. Pin a grain instead for the fastest, single-grain read. |
Returns
as_ofstringServer time this response was assembled (ISO 8601).
tickerstringThe symbol you asked for, normalised. Single form only.
dataobjectThe full ticker row — every signal on the schema page. On the list form, an object keyed by symbol, one full row each.
requestedstring[]List form only — the canonical symbols asked for, de-duplicated, in request order.
countnumberList form only — how many of requested were found.
not_foundstring[]List form only — the requested symbols we do not track, in request order. An empty array when every symbol was found.
_metaobjectWith asof only: how the row was reconstructed. This read's own key: column_intervals, the grain each column was served at. Shared keys: see the _meta reference.
Status codes
200400asof, or interval on a live read — interval selects the grain a PAST state is reconstructed at, so it is only valid alongside asof.401404Notes
- Numeric signals carry their current value and every boolean its current state, so one call answers both "what is it" and "what is it doing".
- For the same row as of a past date, add
?asof=— see Ticker state (as-of). It means the same thing on the list form. - The list form is the batch read:
requestedechoes the canonical symbols,countis how many were found,dataholds one full row per found symbol, andnot_foundlists the rest in request order. A symbol we do not track is simply absent fromdata— it never fails the request. Symbols are de-duplicated and canonicalised (aapl→AAPL). - For the catalog — which symbols exist and what they are — use
GET /v2/tickers. It is identity-only and never returns state. - The row's
branding_icon_urlandbranding_logo_urlare image endpoints on this API (GET /v2/tickers/{ticker}/icon,/logo): request them with the sameAuthorization: Bearerheader and you get the image bytes with theirContent-Type. Null when the issuer has no image on file.