A web app, a mobile app, an AI agent — embed live market state, screeners, custom alerts, and historical signal data into whatever you’re building. JSON in, JSON or webhooks out. ~12,000 US equities + the top 100 cryptos with point-in-time history. One key, one schema, no vendor sprawl.
GET /v2/scan + POST /v2/webhooks
Use /scan to render screener results, ticker tables, and custom dashboards. Use /webhooks to deliver user-defined alerts straight to your backend or push service. Use the signal history endpoint to power charts and frequency widgets. Same field vocabulary across all three.
// in your backend — render a screener feature
fetch('https://api.tickerbot.io/v2/scan?q=' + userQuery, {
headers: { Authorization: 'Bearer ' + process.env.TICKERBOT_KEY }
}).then(r => r.json()).then(renderUserResults)| ticker | price | day_change_pct | flag |
|---|---|---|---|
| NVDA | $142.81 | +2.4% | breakout |
| AMD | $152.40 | +1.7% | volume_unusual_2x |
| TSLA | $219.50 | −0.8% | rsi_overbought |
| AAPL | $232.15 | +0.4% | — |
primitives you’ll use
Screener UIs, user-defined alerts, and historical visualizations.
ScreenersPower any "find me tickers that…" UI. SQL in, JSON back. ~12k tickers, 100+ fields.
See screeners →Alerts (webhooks)Let users define alerts in your UI; we POST your backend on every new match. Per-alert signing secret.
See alerts →Signal historyPoint-in-time fires per signal × ticker. Power charts, "last 10 fires" widgets, frequency stats.
See signals →why this works
No stitching together a data feed + TA library + alerting service + historical database. Tickerbot is all four behind one HTTPS surface.
Each user-defined alert is a webhook subscription with its own ID and signing secret. Pause, resume, or retire individually without affecting other users.
Render "this stock was RSI-oversold 7 times in the last year" instantly — the history is pre-computed and queryable, not something you compute on demand.
Building a Claude tool, Cursor extension, or chat-driven analytics app? The SQL grammar is intentionally narrow so LLMs can drive it correctly: flat WHERE clauses, no joins, no windows.
comparison
Raw feed plus a stack you build yourself
One API, every primitive
works with your agent
Building an AI tool? The agent angle is the whole point of this outcome. Tickerbot’s SQL grammar is restricted on purpose — flat WHERE clauses, named flags, no joins — so agents can drive it without getting lost. Cursor extensions, Claude tools, chat-driven analytics: same surface.
ship it