# Endpoints

Seven buckets, one schema, one SQL grammar. Tickers, signals, scan, universes, rules, strategies, webhooks. Every response carries a top-level `as_of` and list responses paginate via opaque cursors (`next_cursor` on the response, `?cursor=` on the request).

| Method | Path | Summary | Doc |
|--------|------|---------|-----|
| GET | `/v2/tickers` | List active tickers, paginated. | https://tickerbot.io/api/endpoints/tickers/list |
| GET | `/v2/tickers/{ticker}` | Get the full current state of one ticker. | https://tickerbot.io/api/endpoints/tickers/get |
| GET | `/v2/tickers/{ticker}/history` | Get the full ticker row as of a past date. | https://tickerbot.io/api/endpoints/tickers/history |
| GET | `/v2/tickers/{ticker}/events` | Discrete event log for one ticker. | https://tickerbot.io/api/endpoints/tickers/events |
| GET | `/v2/signals` | Built-in signals plus your custom signals, each tagged with `kind`. | — |
| GET | `/v2/signals/{signal}` | Find tickers that match a signal right now. | https://tickerbot.io/api/endpoints/signals/matches |
| GET | `/v2/signals/{signal}/{ticker}/history/{interval}` | Time series of one signal for one ticker. | https://tickerbot.io/api/endpoints/signals/history |
| POST | `/v2/signals` | Save a named SQL expression you can reference like a built-in signal. | — |
| PATCH | `/v2/signals/{name}` | Edit the expression or description of one of your custom signals. | — |
| DELETE | `/v2/signals/{name}` | Remove a custom signal — refused by default if anything references it. | — |
| GET | `/v2/scan` | Run a SQL WHERE against the current universe. | https://tickerbot.io/api/endpoints/scan/live |
| POST | `/v2/scan` | Same as GET /v2/scan, with `q` in the body. | https://tickerbot.io/api/endpoints/scan/live |
| POST | `/v2/webhooks` | Create a webhook subscription. | https://tickerbot.io/api/endpoints/webhooks/create |
| GET | `/v2/webhooks` | List webhook subscriptions on this API key. | https://tickerbot.io/api/endpoints/webhooks/list |
| GET | `/v2/webhooks/{id}` | Fetch one webhook subscription. | https://tickerbot.io/api/endpoints/webhooks/get |
| DELETE | `/v2/webhooks/{id}` | Delete a webhook subscription. | https://tickerbot.io/api/endpoints/webhooks/delete |
| GET | `/v2/webhooks/{id}/deliveries` | Inspect recent deliveries for a webhook. | https://tickerbot.io/api/endpoints/webhooks/deliveries |
| POST | `/v2/webhooks/{id}/enable` | Re-enable a disabled or pending webhook. | https://tickerbot.io/api/endpoints/webhooks/enable |
| POST | `/v2/webhooks/{id}/test` | Send a one-off synthetic delivery for QA / smoke testing. | — |
| GET | `/v2/universes` | List your universes. | https://tickerbot.io/api/endpoints/universes/list |
| POST | `/v2/universes` | Create a universe. | https://tickerbot.io/api/endpoints/universes/create |
| GET | `/v2/universes/system` | List system universes (top_10, top_100). | https://tickerbot.io/api/endpoints/universes/system |
| GET | `/v2/universes/{id}` | Fetch a single universe. | https://tickerbot.io/api/endpoints/universes/get |
| PATCH | `/v2/universes/{id}` | Update a universe. | https://tickerbot.io/api/endpoints/universes/update |
| DELETE | `/v2/universes/{id}` | Delete a universe. | https://tickerbot.io/api/endpoints/universes/delete |
| GET | `/v2/rules` | List your saved rules. | https://tickerbot.io/api/endpoints/rules/list |
| POST | `/v2/rules` | Create a saved rule. | https://tickerbot.io/api/endpoints/rules/create |
| GET | `/v2/rules/{id}` | Fetch a saved rule. | https://tickerbot.io/api/endpoints/rules/get |
| PATCH | `/v2/rules/{id}` | Update a saved rule. | https://tickerbot.io/api/endpoints/rules/update |
| DELETE | `/v2/rules/{id}` | Delete a saved rule. | https://tickerbot.io/api/endpoints/rules/delete |
| GET | `/v2/health` | Liveness probe (no auth). | — |
| GET | `/v2/version` | Service version (no auth). | — |
| POST | `/v2/strategies` | Create a multi-leg strategy. | — |
| GET | `/v2/strategies/{name}` | Fetch a saved strategy. | — |
| GET | `/v2/strategies` | List your strategies, newest first. | — |
| 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/{name}/positions` | Positions opened by the strategy's runner. | — |
| POST | `/v2/strategies/{name}/positions/{id}/close` | Manually close (or partially close) an open position. | — |
| POST | `/v2/strategies/{name}/run-tick` | Evaluate the strategy once against the latest bar. | — |
| GET | `/v2/strategies/{name}/backtest` | Walk historical bars and return trades + equity curve + summary. | — |
| GET | `/v2/news/scan` | SQL-style scan of the news_article archive — article rows or aggregate rollups. | — |

For the per-endpoint reference (params, status codes, sample responses), see the doc URLs above. For full machine-readable specs, fetch:

- OpenAPI: https://tickerbot.io/openapi.yaml
- Schema: https://tickerbot.io/api/schema.json
- Agent tool definitions: https://tickerbot.io/api/agents
