A screener your code can call: one SQL WHERE clause, evaluated server-side against every US equity and 419+ precomputed signals, answered as JSON in one round trip. The same screen runs live, as of any past day, or as a webhook that fires when a ticker enters the result. No feed to buy, no indicator math to run — the computed table underneath is included.
Free plan. Every ticker, every signal, real-time data, all-time history.
what you get
| The screen | One SQL predicate over the whole market — rsi_14 < 30 AND market_cap > 1e9 is a complete screener |
| The columns | 419+ precomputed signals per ticker: price, technicals, fundamentals, analyst ratings, flags |
| Live | Refreshed continuously through the trading day; one call returns the current matches |
| As of the past | Add ?asof= for the screen’s result on any past day — no look-ahead, no survivorship bias |
| As a push | Subscribe the same query as a webhook; delivery is signed and retried |
| Custom signals | Name your own predicate once and reuse it 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
Everything below the WHERE clause — the data pipeline, the indicator math, the survivorship handling — has already run server-side:
POST /v2/scan
{
"q": "rsi_14 < 30 AND market_cap > 1e9",
"columns": ["ticker", "price", "rsi_14"],
"limit": 50
}
// → { "as_of": "…", "results": [ { "ticker": "…", "price": …, "rsi_14": … }, … ] }Any signal can appear in the predicate or the columns. Add ?asof=2026-06-01 and the same request answers as of that day’s market.
Ready to wire it into something? Build a stock screener walks it end to end. Reference: the SQL surface · the signals catalog · as-of queries.
questions
Yes — this is one. Most screeners are web pages built for a human clicking filters; Tickerbot’s screener is a server-side SQL evaluation your code calls directly, over every US equity and 419+ precomputed signals, with the result as JSON. It runs live, as of any past day, or as a webhook subscription.
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.
Yes — the same query with ?asof= answers as of any past moment, computed against what was true then: point-in-time values, delisted tickers included. That makes a screen backtest-ready by construction rather than by cleanup.
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.