tickerbot_get_signal
The state of a signal is the set of tickers matching it right now, or with asof, as of any moment. One name, the whole market, one call. Booleans need no condition; every other type needs one, typed like the signal: ">70" (numeric), "<YYYY-MM-DDTHH:MM:SSZ" (timestamp), ">=YYYY-MM-DD" (date), "=ETF" (string). Sorted by signal value desc for non-booleans.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| asof | No | Optional. Target moment as `YYYY-MM-DD` (that day's close) or an ISO timestamp (that intraday moment) — the same read as it stood then, unlimited depth. Full contract under As of a past date. | |
| limit | No | Page size. Max 200. | |
| cursor | No | Opaque cursor from the previous response. | |
| signal | Yes | A signal name. Booleans (e.g. `golden_cross`, `above_sma_50`) are detected automatically; every other type (numeric `rsi_14`, timestamp `price_asof`, date `earnings_date`, string `asset_class`) requires a `condition`. | |
| sort_by | No | Row order: `default` (alphabetic for booleans, highest-value-first for numerics) or `market_cap` (desc NULLS LAST; adds `market_cap` to each row). Live only — with `asof` it is a 400 (the snapshot's order is fixed). | default |
| interval | No | Grain the past state is reconstructed at: `1m`, `1h`, `1d`, or `auto` (default). Only valid alongside `asof` — a live read with `interval` is a 400. Details under As of a past date. | auto |
| universe | No | Optional. Scope to a system or caller-owned universe slug. | |
| condition | No | Required for every non-boolean signal; the shape follows the signal's `type` in the catalog. Single bound, `<op><value>`. numeric: `>70`, `<=200`, `!=0` (operators `>`, `>=`, `=`, `!=`, `<`, `<=`). timestamp: an ISO instant, `<YYYY-MM-DDTHH:MM:SSZ` or `>=YYYY-MM-DD` (a bare date is midnight UTC). date: `>=YYYY-MM-DD` or `=YYYY-MM-DD`. string: `=ETF` or `!=ETF` (`=` and `!=` only; quotes optional). A relative window ("older than 15 minutes") is a `/v2/scan` query: `price_asof < now() - interval '15 minutes'`. Sending a condition with a boolean or custom signal returns 400 (it does not apply). | |
| include_active_since | No | Built-in booleans only: adds `active_since` and `days_live` per row — the first day of the current true streak, from daily state (the day after the last false day; if the boolean has never been false since it first computed, the first true day). Looks back five years, so a boolean true for longer reports the window edge as a lower bound. Live only — a 400 with `asof`. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| _meta | No | With `asof` only: how the read was resolved — interval served and requested, blending, sources, frozen fields. See the as-of read below. | |
| as_of | Yes | Server time this response was assembled (ISO 8601). | |
| count | Yes | Rows in this page. | |
| signal | Yes | The signal you asked for. | |
| results | Yes | Matching tickers with the signal value. | |
| universe | Yes | The universe you scoped to, echoed; `null` when unscoped. | |
| condition | Yes | The bound you passed, echoed; `null` for boolean and custom signals. | |
| next_cursor | Yes | Opaque token for the next page; `null` on the last page. Pass it back as `cursor`. |