The stock market as a SQL database

~12,000 US equities and the top 100 cryptos, recomputed every minute, with 100+ queryable fields (e.g. RSI, gaps, volume spikes, 52-week highs). We expose the whole thing as an API: pass a SQL WHERE clause, get back the tickers that match — live, historical, or as a subscription.

Live · 60s eval cycle · v2 · api.tickerbot.io
NVDA 1124.30 +2.41% · breakoutTSLA 248.20 -0.85%AAPL 187.42 +1.80% · above_sma_50PLTR 24.18 +6.21% · breakoutX:BTCUSD 79000.00 +0.00%AMD 198.40 +1.62%RIOT 14.22 +8.41% · gap_up_3pctHOOD 24.10 +4.41%MSFT 428.50 +0.32%AVGO 1842.00 +1.94%MARA 22.10 +5.74% · volume_unusual_2xCOIN 234.80 +3.10%NVDA 1124.30 +2.41% · breakoutTSLA 248.20 -0.85%AAPL 187.42 +1.80% · above_sma_50PLTR 24.18 +6.21% · breakoutX:BTCUSD 79000.00 +0.00%AMD 198.40 +1.62%RIOT 14.22 +8.41% · gap_up_3pctHOOD 24.10 +4.41%MSFT 428.50 +0.32%AVGO 1842.00 +1.94%MARA 22.10 +5.74% · volume_unusual_2xCOIN 234.80 +3.10%
61 fields · 56 flags

the schema

One vocabulary across every ticker

About 61 numeric fields and 56 boolean flags per symbol, recomputed every minute. The same identifiers power every endpoint. That’s the API. Compose them into screens, signals, backtests, indicator workflows, or hand them to an AI agent.

  • 12,043US equities
  • 100cryptos
  • 61fields
  • 56flags
  • all-timehistory
See the full schema →
NVDANVIDIA Corporation
NASDAQ · technology
$1,124.30
+27.40 (+2.41%)
market_cap2.74T
volume_today48.2M
rsi_1458.4
sma_50$1,098.20
high_52w$1,158.70
low_52w$642.40
breakoutabove_sma_50above_sma_200in_uptrendmega_capvolume_unusual_2xmacd_above_signalmomentum_strong_uprsi_overboughtgap_up_3pctat_52w_highearnings_this_week
as of 14:32:00 · evaluated every minute

the API

Six endpoint families, one schema

Tickers, signals, scan, universes, rules, webhooks. Same SQL grammar and field vocabulary across every call — pull a ticker’s state, query the universe, scope to a list, save it, subscribe it.

/v2/tickers

Current state, historical state, and the event log for any ticker. List or paginate the whole universe.

Docs →

/v2/signals

Which tickers match a named flag right now. Or the historical time series of one flag for one ticker.

Docs →

/v2/scan

Synchronous SQL across the live universe — or any past day with ?asof=.

Docs →

/v2/universes

Named ticker lists. Reference from /scan, /rules, or /webhooks via ?universe=.

Docs →

/v2/rules

Saved scan bundles. Run by name from /scan?rule= or attach to a webhook.

Docs →

/v2/webhooks

Subscribe a SQL condition. We POST your endpoint each time a new ticker enters the match set.

Docs →

featured: /v2/signals

50+ named flags. Who’s in this state? When have they been?

Every signal is two queries at once. Ask which tickers match right now — cross-section across the universe. Or ask when has this fired historically — time-series for one flag on one ticker, going back years. Same vocabulary; same SQL grammar.

GET /v2/signals/rsi_oversold
now·23 matches
tickerpricersirel_vol
MARA$15.2022.53.2×
COIN$192.4026.82.7×
SOFI$8.9527.32.0×
RIOT$11.2028.12.4×
PLTR$24.5029.42.1×
+ 18 more
GET /v2/signals/rsi_oversold/NVDA/history
all-time·7 fires
datepricereturn_30d
2021-10-04$54.20+11.5%
2022-05-09$36.20−4.8%
2022-10-13$28.10+22.3%
2023-08-21$95.80+8.2%
2024-04-19$83.40+14.9%
2024-09-06$108.50+6.5%
2025-04-04$94.70+19.2%

featured: GET /v2/scan

Query the live universe in SQL. Try it.

Pass a SQL WHERE clause as q. The response is the list of tickers that match right now. Identifiers are field and flag names from the schema; everything else is standard SQL. Edit the clause and hit Run.

your query
edit·live
-- small caps gapping up on real volume
try:browse all flags & fields →
response
Run a query to see live tickers from the universe.

featured: POST /v2/webhooks

Surgical timing on the ticker you’re watching

Pick a stock you’re watching and the exact condition you’d act on. NVDA dipping below RSI 30 on twice its average volume, AAPL closing above its 200-day for the first time in months. Subscribe to that and we’ll POST you the moment it happens. Use it to time an entry from a trading bot, get a Slack ping for a manual look, or learn the second a setup you’ve been waiting weeks for finally appears.

webhook
-- NVDA: oversold bounce setup
ticker = 'NVDA'
  AND rsi_oversold        -- RSI < 30
  AND volume_unusual_2x   -- volume >= 2x avg
history
last 6 mo·5 fires
TimePriceRSIVol
Apr 28 · 10:14$784.2028.42.6×
Mar 12 · 13:42$812.5027.13.4×
Feb 21 · 09:38$759.1029.82.1×
Jan 14 · 14:55$698.4026.04.7×
Dec 03 · 11:20$652.3028.92.8×

works with your agent

Agents are experts at SQL. Hand them the loop.

Every endpoint speaks SQL and returns JSON. Point your coding agent at the API and let it compose, backtest, and subscribe queries on its own.

See the agent integration →

ship it

Get started