The stock market, in SQL.

A computed table of every ticker × every signal. Query it live, as of any past moment, or as a webhook subscription.

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

Live900K+ calls served

the table

The market was always a table. We compute every cell.

Every ticker is a row. Every data point is a column that we call a signal. Real-time, plus all-time history, for every US equity plus rates, FX, metals and crypto.

Moving averages & VWAPOscillatorsTrend & directionVolatility & bands
tickerabove_sma_10above_sma_20above_sma_200above_sma_50above_vwapabove_vwap_minuteday_vwapdeath_crossdeath_regimeema_12ema_21ema_26ema_9golden_crossgolden_regimeheld_above_vwap_30mheld_below_vwap_30mmin_vwappct_from_sma_10pct_from_sma_100pct_from_sma_20pct_from_sma_200pct_from_sma_50pct_from_vwapprev_day_vwapsma_10sma_10_crossed_above_50_todaysma_10_crossed_below_50_todaysma_100sma_20sma_200sma_50vwapvwap_cross_downvwap_cross_uprsi_14rsi_7rsi_overboughtrsi_oversoldstochastic_dstochastic_kadx_14in_downtrendin_uptrendmacd_above_signalmacd_below_signalmacd_histogrammacd_linemacd_signalminus_diplus_ditrend_longtrend_mediumtrend_reversal_bearish_todaytrend_reversal_bullish_todaytrend_shortat_bollinger_lowerat_bollinger_upperatr_14atr_percentbollinger_lowerbollinger_middlebollinger_pct_bbollinger_squeezebollinger_upperbollinger_widthvwap_lower_bandvwap_upper_band
AAPL
MSFT
NVDA
GOOGL
AMZN
META
TSLA

the api

SQL in. Computed rows out.

Compose signals into a SQL WHERE clause and pass it as q to /v2/scan. Every matching ticker comes back as a full computed row, not as a bare symbol. The same query runs live, as of any past moment, or as a webhook subscription. The same grammar, columns, and tenses apply across the API: /v2/tickers for one symbol’s full row, /v2/signals for every ticker matching one signal.

LIVE · POST /v2/scan
POST /v2/scan
{ "q": "above_sma_200 AND market_cap > 1e10" }
AS OF · POST /v2/scan
POST /v2/scan
{ "q": "above_sma_200 AND market_cap > 1e10", "asof": "2024-01-22" }
WEBHOOK · POST /v2/scan/subscribe
POST /v2/scan/subscribe
{ "q": "above_sma_200 AND market_cap > 1e10" }
response
200·live
{
  "count": 100,
  "results": [
    {
      "ticker": "TRV",
      "price": 368.74, "market_cap": 72620289106,
      "above_sma_200": true,
      ...
    },
    {
      "ticker": "STX",
      "price": 785.87, "market_cap": 194726146156,
      "above_sma_200": true,
      ...
    },
    ...
  ]
}

where Tickerbot fits

A new kind of stock market data API.

Everyone else hands you raw data. We hand you the computed table. Whether you’re building a trading algorithm, an AI agent or a fintech app, you use Tickerbot for everything below what you’re actually building.

You needBuild it yourselfTickerbot
Signal computeIndicator code + ingest pipelines, or a quant hire20,892+ tickers × 421+ data points, precomputed and queryable
ScreeningA database + glue codeOne SQL WHERE clause to /v2/scan, whole market
BacktestingPoint-in-time indexing + backfill?asof= on every read, no look-ahead
AlertingPolling loops, or your own webhook infrastructureSigned, retried webhooks + streams on state change

early days

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

for agents

Plug Tickerbot into Claude, ChatGPT, or any other MCP runtime.

Raw data doesn’t fit in a context window. Computed state does. Your agent spends its context on decisions, not data.

Install the MCP server →

get started

Get a key. Run a scan.

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