View as markdown
Endpoints

All endpoints

Six buckets, one schema, one SQL grammar. Tickers, signals, scan, universes, news, webhooks. Every response carries a top-level as_of. List responses paginate via opaque cursors (next_cursor on the response, ?cursor= on the request).

Tickers

Current state, point-in-time snapshot, the discrete event log, and resource-level subscribe.

MethodPathSummary
GEThttps://api.tickerbot.io/v2/tickersList active tickers, paginated.
GEThttps://api.tickerbot.io/v2/tickers/{ticker}Get the full current state of one ticker, or a snapshot at a past date.
GEThttps://api.tickerbot.io/v2/tickers/{ticker}/historyGet the full ticker row as of a past date.
GEThttps://api.tickerbot.io/v2/tickers/{ticker}/eventsDiscrete event log for one ticker.

Tickers reference →

Signals

Catalog, live matches, point-in-time matches, per-ticker time series, custom-signal CRUD, and resource-level subscribe.

MethodPathSummary
GEThttps://api.tickerbot.io/v2/signalsBuilt-in signals plus your custom signals, each tagged with `kind`.
GEThttps://api.tickerbot.io/v2/signals/{signal}Find tickers that match a signal right now, or at a past date with ?asof=.
GEThttps://api.tickerbot.io/v2/signals/{signal}Run the match set at the close of a past date — same endpoint as live, with ?asof=.
GEThttps://api.tickerbot.io/v2/signals/{signal}/{ticker}/history/{interval}Time series of one signal for one ticker.
POSThttps://api.tickerbot.io/v2/signalsSave a named SQL expression you can reference like a built-in signal. Scale and above.
PATCHhttps://api.tickerbot.io/v2/signals/{name}Edit the expression or description of one of your custom signals. Scale and above.
DELETEhttps://api.tickerbot.io/v2/signals/{name}Remove a custom signal — refused by default if anything references it. Scale and above.

Signals reference →

Scan

SQL WHERE across the live universe, the same against a past date, and resource-level subscribe.

MethodPathSummary
GEThttps://api.tickerbot.io/v2/scanRun a SQL WHERE against the current universe.
GEThttps://api.tickerbot.io/v2/scanRun a SQL WHERE against the close of a past trading day — same endpoint as live, with ?asof=.

POST /v2/scan takes the same parameters as a JSON body — useful when your WHERE clause is too long for a query string. Documented on the same live scan page. Scan reference →

Universes

Named ticker lists you reference from any query endpoint with ?universe=<slug>.

MethodPathSummary
POSThttps://api.tickerbot.io/v2/universesCreate a universe.
GEThttps://api.tickerbot.io/v2/universes/{id}Fetch a single universe.
PATCHhttps://api.tickerbot.io/v2/universes/{id}Update a universe.
DELETEhttps://api.tickerbot.io/v2/universes/{id}Delete a universe.
GEThttps://api.tickerbot.io/v2/universesList your universes.
GEThttps://api.tickerbot.io/v2/universes/systemList system universes (top_10, top_100).

Universes reference →

News

Article-level news + per-ticker sentiment, indexed back to 2015 and refreshed every 15 minutes. Scale and above.

MethodPathSummary

One SQL-style endpoint, two shapes: article rows when no group_by is supplied, aggregate rollups when one is. Filter the archive with a WHERE-clause grammar identical to /v2/scan; auto-joins UNNEST(tickers) AS tk whenever any clause references the tk alias, so per-ticker rollups don’t need an explicit unnest. There is no separate asof parameter — historical queries are just WHERE filters on time_published. The 24-hour rolling summary lives on the ticker object as news_volume + news_volume_weighted_sentiment and remains queryable through /v2/scan on every paid plan. News reference →

Analyst

Per-event analyst rating history back to 2012-02-08. Upgrades, downgrades, initiations, price-target changes — with the firm, the new and previous rating, and the new and previous target. Scale and above.

MethodPathSummary

Filter by ticker / tickers, since / until, firm, and action. The snapshot consensus columns on /v2/tickers (analyst_consensus_rating, analyst_consensus_target_price, analyst_target_upside_pct, last_rating_*) and the 7-day event-window flags on /v2/scan (recent_upgrade, recent_target_raise, …) are derived from the same stream and stay on every paid plan. Analyst reference →

Webhooks

Subscriptions are created on each resource; the registry lists, inspects, and manages them.

MethodPathSummary
GEThttps://api.tickerbot.io/v2/webhooksList every webhook subscription on this account.
GEThttps://api.tickerbot.io/v2/webhooks/{id}Fetch one webhook subscription.
DELETEhttps://api.tickerbot.io/v2/webhooks/{id}Delete a webhook subscription.
GEThttps://api.tickerbot.io/v2/webhooks/{id}/deliveriesInspect recent deliveries for a webhook.
POSThttps://api.tickerbot.io/v2/webhooks/{id}/enableRe-enable a disabled or pending webhook.

Subscribe via POST /v2/tickers/{T}/subscribe, /v2/signals/{X}/subscribe, or /v2/scan/subscribe. We evaluate on the cadence configured for your plan and POST your target URL each time a new ticker enters the match set. Deliveries carry an HMAC-SHA256 signature; retries follow a 30s / 2m / 10m / 1h / 6h schedule. Webhooks reference →

Before you write code

A few links worth bookmarking.