A signal, in the infrastructure sense: a named market condition — golden cross, RSI oversold, 52-week high — computed continuously for every US equity and served as data. Ask who matches right now, what any ticker’s history with the condition is, or subscribe and get pushed when membership changes. 419+ named conditions ship precomputed; your own are one SQL expression away. State in, decisions yours.
Free plan. Every ticker, every signal, real-time data, all-time history.
what you get
| The catalog | 419+ named conditions with definitions on the record — technicals, fundamentals, event flags |
| Current state | One call lists every ticker matching a signal right now, whole-market |
| History | Per-ticker event history for any signal — when it fired, when it cleared |
| As of the past | Membership as of any past day via ?asof= — no look-ahead, no survivorship bias |
| On push | Subscribe a signal as a webhook; membership changes arrive signed and retried |
| Custom signals | Name your own condition as SQL once; it gains lists, history and pushes like the built-ins |
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
The same named condition answers as a list, a history, or a push. The list:
GET /v2/signals/golden_cross
// → { "as_of": "…", "signal": "golden_cross", "count": …,
// "results": [ { "ticker": "…", "name": "…", … }, … ] }Swap the tense: /v2/signals/golden_cross/AAPL/events is the history; the same signal as a webhook trigger is the push. Definitions live in the catalog — a signal is only as useful as its definition is explicit.
Reference: the signals catalog · the endpoints · as-of queries.
questions
No — and that’s deliberate. A Tickerbot signal is a market condition as data: a defined, computable statement about a ticker’s state, with its definition on the record and its history queryable. What a condition means for your strategy is your system’s call — we sell the state layer it decides on, and execution stays with your broker.
Yes — a custom signal is one SQL expression over the computed columns. Once named, it behaves like a built-in: current membership lists, per-ticker history, as-of answers, and webhook pushes when membership changes.
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.