Build a market dashboard, with Tickerbot.

A dashboard is rows, charts, and freshness — and every one of those is usually its own integration project. Here they are three calls against one computed table: a row that already contains every signal, series that arrive pre-aligned, and a socket that pushes each recompute. The part you build is the part users see.

Free plan. Every ticker, every signal, real-time data, all-time history.

the recipe

Rows, charts, freshness.

1. The rowone call returns everything a ticker card or table row could show — price plus all 421+ computed signals, one response, no assembly:

curl -s https://api.tickerbot.io/v2/tickers/AAPL \
  -H "Authorization: Bearer $TICKERBOT_API_KEY"

2. The charts/v2/series returns up to 50 tickers × 25 columns on one aligned time grid — price and indicators together, ready for a chart library, no client-side joins:

curl -s "https://api.tickerbot.io/v2/series?tickers=AAPL,MSFT,NVDA\
&columns=close,rsi_14,volume_today&interval=1d&from=2026-01-01" \
  -H "Authorization: Bearer $TICKERBOT_API_KEY"

3. The freshnesshold a websocket open and each subscribed ticker’s freshly-computed row arrives on every refresh cycle — the dashboard updates itself:

const ws = new WebSocket('wss://api.tickerbot.io/v2/stream')
ws.onopen = () => {
  ws.send(JSON.stringify({ type: 'auth', api_key: KEY }))
  ws.send(JSON.stringify({ type: 'subscribe', tickers: ['AAPL', 'MSFT', 'NVDA'] }))
}
ws.onmessage = ({ data }) => {
  const frame = JSON.parse(data)
  if (frame.type === 'update') {          // { ticker, as_of, data }
    store.upsert(frame.ticker, frame.data) // full computed row — UI re-renders
  }
}

4. Per-user watchlistsmodel each user’s watchlist as a universe and every surface scopes to it — the same list drives their table, their charts, and their alerts:

curl -s -X POST https://api.tickerbot.io/v2/universes \
  -H "Authorization: Bearer $TICKERBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "name": "user-4821-watchlist", "tickers": ["AAPL","MSFT","NVDA"] }'

# then: POST /v2/scan { "q": "...", "universe": "user-4821-watchlist" }

under the hood

The calls behind it.

GET /v2/tickers/{ticker}The row — price plus every computed signal in one response
GET /v2/seriesThe charts — 50 tickers × 25 columns on one aligned grid
WS /v2/streamThe freshness — full recomputed rows pushed every cycle
POST /v2/universesWatchlists — one named list scopes scans, series, and alerts

Every read runs in three tenses: live, as of any past moment (add ?asof= — no survivorship bias), or on push — the same query as a webhook that fires when the answer changes. Under all of it sits the computed table: every US equity plus rates, FX and crypto, every signal precomputed and refreshed continuously, with all-time history. That pipeline — warehouse, indicator math, refresh, point-in-time storage — is the part you’d otherwise build before writing your first line of product. Buy it as a table instead — data included; there’s no feed to bring.

questions

FAQ

Can I show Tickerbot data to my users?

Yes — every plan, including Free, covers user-facing products that display Tickerbot data or signals to your own users: apps, dashboards, newsletters, screeners. What needs an Enterprise agreement is redistributing the data itself (passthrough APIs, bulk export, resale). See the Terms for the boundary.

How fresh is the data?

Live signals recompute every minute during US market hours and 24/7 for crypto; fundamentals refresh daily. Cadence is not a pricing tier — every plan sees the same refresh. The websocket pushes each recompute; without it, polling the row endpoints gives the same freshness at your own rhythm.

Why does a trading system need computed state?

Because every action it takes — an alert, a screen result, an order, a row in a user-facing app — 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.

How does Tickerbot work with AI agents?

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.

How does Tickerbot pricing work?

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. Paid plans start at $29/mo and add real-time webhooks, websocket streaming, and higher rate limits. Data depth is never a tier lever — every plan sees the same table.

in the wild

900K+ calls served, and counting.

What people are saying.

“dude. whoah.”
President, ShopifyHarley Finkelstein
“Tickerbot is insane. It turns Claude into a quant.”
Quantitative Finance MScLounes Vennema
“Best value for hobbyists and advanced traders alike.”
AI Engineer, ImergeRon Reid

get started

Get a key. Run a scan.

Free plan. Every ticker, every signal, real-time data, all-time history.