All endpoints
Eight buckets, one schema, one SQL grammar. Tickers, signals, scan, universes, rules, strategies, webhooks, news. Every response carries a top-level as_of and list responses paginate via opaque cursors (next_cursor on the response, ?cursor= on the request).
Tickers
Current state, historical state, and the discrete event log for any ticker.
| Method | Path | Summary |
|---|---|---|
| GET | /v2/tickers | List active tickers, paginated. |
| GET | /v2/tickers/{ticker} | Get the full current state of one ticker. |
| GET | /v2/tickers/{ticker}/history | Get the full ticker row as of a past date. |
| GET | /v2/tickers/{ticker}/events | Discrete event log for one ticker. |
Signals
Which tickers match this signal right now, and the time series of one signal for one ticker.
| Method | Path | Summary |
|---|---|---|
| GET | /v2/signals/{signal} | Find tickers that match a signal right now. |
| GET | /v2/signals/{signal}/{ticker}/history/{interval} | Time series of one signal for one ticker. |
Scan
Synchronous SQL across the live or historical universe.
| Method | Path | Summary |
|---|---|---|
| GET | /v2/scan | Live SQL scan against the universe. |
| GET | /v2/scan?asof=YYYY-MM-DD | Same grammar against the historical row on a past date. |
POST /v2/scan takes the same parameters as 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>.
| Method | Path | Summary |
|---|---|---|
| POST | /v2/universes | Create a universe. |
| GET | /v2/universes/{id} | Fetch a single universe. |
| PATCH | /v2/universes/{id} | Update a universe. |
| DELETE | /v2/universes/{id} | Delete a universe. |
| GET | /v2/universes | List your universes. |
| GET | /v2/universes/system | List system universes (top_10, top_100). |
Rules
Saved {q, universe, order, dir, fields} bundles. Run by name from /scan?rule= or subscribe via a webhook.
| Method | Path | Summary |
|---|---|---|
| POST | /v2/rules | Create a saved rule. |
| GET | /v2/rules/{id} | Fetch a saved rule. |
| PATCH | /v2/rules/{id} | Update a saved rule. |
| DELETE | /v2/rules/{id} | Delete a saved rule. |
| GET | /v2/rules | List your saved rules. |
Strategies
Saved boolean conditions over the schema. Resolve to {t, v} bars (history), match windows (events), and equity curves (backtest).
| Method | Path | Summary |
|---|---|---|
| POST | /v2/strategies | Create a multi-leg strategy. |
| GET | /v2/strategies/{name} | Fetch a saved strategy. |
| PATCH | /v2/strategies/{name} | Partial update — change any subset of fields, including status. |
| DELETE | /v2/strategies/{name} | Soft-delete a strategy; optionally force-close open positions. |
| GET | /v2/strategies | List your strategies, newest first. |
| GET | /v2/strategies/{name}/backtest | Walk historical bars and return trades + equity curve + summary. |
Webhooks
Subscribe to a SQL condition. Get a signed POST when a new ticker matches.
| Method | Path | Summary |
|---|---|---|
| POST | /v2/webhooks | Create a webhook subscription. |
| GET | /v2/webhooks/{id} | Fetch one webhook subscription. |
| DELETE | /v2/webhooks/{id} | Delete a webhook subscription. |
| GET | /v2/webhooks | List webhook subscriptions on this API key. |
| GET | /v2/webhooks/{id}/deliveries | Inspect recent deliveries for a webhook. |
| POST | /v2/webhooks/{id}/enable | Re-enable a disabled or pending webhook. |
Same SQL grammar as /scan. 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 →
News
Article-level news + per-ticker sentiment, indexed back to 2015 and refreshed every 15 minutes.
| Method | Path | Summary |
|---|---|---|
| GET | /v2/news/scan | SQL-style scan of the news_article archive — article rows or aggregate rollups. |
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 →
Before you write code
A few links worth bookmarking.
- Authentication: bearer token, key format, plan tiers.
- SQL reference: what the WHERE clause grammar supports.
- Schema: every field and flag, with examples.
- Error model: status codes, retry semantics.
- OpenAPI spec (YAML): full machine-readable definition for code generators.
- Changelog: version history.