Not one endpoint per indicator per symbol — one row per ticker with every indicator already computed: RSI, moving averages, MACD, volatility, volume signals and hundreds more, refreshed continuously, alongside fundamentals and analyst ratings in the same row. Read it live, as of any past day, or subscribe to changes. The indicator math is our job; the data underneath is included.
Free plan. Every ticker, every signal, real-time data, all-time history.
what you get
| The row | 419+ precomputed signals per ticker — technicals, fundamentals, ratings, flags — in one read |
| Coverage | Every US equity, plus rates, FX majors and major cryptos in the same table |
| Freshness | Recomputed continuously through the trading day — no batch lag to work around |
| History | Any indicator as a series, and the whole row as of any past day via ?asof= |
| Screening | Every indicator is a SQL column — screen the whole market on any of them in one call |
| Custom indicators | Define your own as a SQL expression once; it works in screens, alerts and history |
Every read runs in three tenses: live, as of any past moment (add ?asof=; no look-ahead, no survivorship bias), or on push — the same query as a webhook that fires when the answer changes. Under it sits the computed table: every US equity plus rates, FX and crypto, every signal precomputed and refreshed continuously, all-time history. Data included — there’s no feed to bring.
one call
No assembly: the row arrives with the math already done — hundreds of fields, one call:
GET /v2/tickers/AAPL
// → one row, ~489 fields:
// { "ticker": "AAPL", "price": …, "rsi_14": …, "sma_200": …,
// "macd": …, "atr_14": …, "market_cap": …, … }The same row is a SQL surface: POST /v2/scan with "rsi_14 < 30 AND price > sma_200" screens the whole market on any combination of indicators.
Ready to wire it into something? Build a custom indicator walks it end to end. Reference: the signals catalog · the ticker row · the SQL surface.
questions
Hundreds — the moving-average family, oscillators like RSI and MACD, volatility and volume measures, plus named condition flags (golden cross, 52-week high) and fundamentals in the same row. The signals catalog lists every one with its definition; if a definition matters to your system, it’s on the record there.
It removes that layer. Libraries compute indicators from price series you fetch, per symbol, on your schedule; here the computation has already run server-side for every ticker, continuously, with the history retained. Your code reads values instead of maintaining a pipeline — and the same values are SQL columns you can screen on.
Because every action it takes — an alert, a screen result, an order — is a condition over derived values: RSI below 30, price above the 200-day average, volume three times normal. Raw data doesn’t contain those. Something has to compute and refresh them for every symbol, continuously, and keep the history so past answers are reproducible. That’s a data pipeline, not a feature — you either build and operate it, or query one that already runs.
Every call here is also a native tool call: install the MCP server and Claude, ChatGPT, Cursor, or any MCP runtime queries the market directly. Computed state is what makes that work well: hand a model raw data and its context window fills with math to do; hand it computed answers and the context goes to decisions. A scan returns the tickers matching your condition: a list, not a workload.
The Free plan needs no card and carries the full data side: every ticker, every signal, real-time data, all-time history and as-of queries, at 10,000 calls a month and 60 a minute. Paid plans start at $29/mo, remove the monthly cap, and raise the rate limit; webhooks and streaming come with them. Data depth is never a tier lever: every plan sees the same table.
in the wild
What people are saying.
“dude. whoah.”
“Tickerbot is insane. It turns Claude into a quant.”
“Best value for hobbyists and advanced traders alike.”
get started
Free plan. Every ticker, every signal, real-time data, all-time history.