changedInput schema / properties / asof / description
Previous value: -"Optional YYYY-MM-DD or ISO timestamp for a historical scan. Unlimited depth on every plan."New value: +"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."
addedInput schema / properties / asset_class
Added value: +{
+ "description": "One or more asset classes — slug or comma-separated list (`stocks`, `rates`, `crypto`, `fx`). Validated for shape, not against a fixed list, so a well-formed class we don't track simply matches nothing. Echoed in `query`.",
+ "type": "string"
+}
addedInput schema / properties / columns
Added value: +{
+ "description": "Extra signals per row, ADDITIVE — the defaults are always present (ticker, name, asset_class, asset_type, price, change_1d_pct, gap_pct, relative_volume, market_cap). `fields` accepted as an alias.",
+ "type": "string"
+}
changedInput schema / properties / cursor / description
Previous value: -"Opaque cursor (row mode only)."New value: +"Opaque cursor from the previous response's `next_cursor`. Row mode only."
addedInput schema / properties / dir / default
Added value: +"desc"
removedInput schema / properties / fields
Removed value: -{
- "description": "Comma-separated extra columns to include (row mode only).",
- "type": "string"
-}
addedInput schema / properties / full / default
Added value: +false
changedInput schema / properties / full / description
Previous value: -"Row mode: return the FULL wide row for each match (every column) instead of the slim default projection."New value: +"Return every signal instead of the default set. Mutually exclusive with `columns` — passing both is a 400."
changedInput schema / properties / group_by / description
Previous value: -"AGGREGATE MODE: 1–6 comma-separated group keys (columns or expressions, e.g. `sector`). Results become rollup rows instead of tickers. Alias a key with `AS` to name its JSON key; un-named expressions are named for you."New value: +"AGGREGATE MODE: 1–6 group keys (signals, expressions, or one of your custom signals as a boolean key). Results become rollup rows. Name a key with `AS` to choose its JSON key (`market_cap > 1e11 AS mega`); an un-named expression is named for you rather than returned as `?column?`. Incompatible with `columns`/`full`/`cursor`; works with `asof`."
changedInput schema / properties / having / description
Previous value: -"Aggregate filter (requires group_by). Example: `COUNT(*) >= 10`."New value: +"Filter the aggregate rows (requires `group_by`). Custom signals are valid here too."
addedInput schema / properties / interval
Added value: +{
+ "default": "auto",
+ "description": "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.",
+ "enum": [
+ "1m",
+ "1h",
+ "1d",
+ "auto"
+ ],
+ "type": "string"
+}
addedInput schema / properties / limit / default
Added value: +50
changedInput schema / properties / limit / description
Previous value: -"Page size. Max 100. Default 50. Aggregate mode does not paginate — response sets `truncated: true` when groups were cut."New value: +"Page size. Max 100. Aggregate mode does not paginate — it sets `truncated: true` when groups were cut, so sort with `order` to keep the ones you want."
addedInput schema / properties / order / default
Added value: +"change_1d_pct"
changedInput schema / properties / order / description
Previous value: -"Sort column. Default: the 1-day change column (rows) / tickers (aggregate)."New value: +"Signal to sort by. In aggregate mode the default is the count alias `tickers` — or, with a custom `select`, the last item's alias — sorted NULLS LAST with the group keys as tiebreak."
changedInput schema / properties / q / description
Previous value: -"SQL WHERE expression. Max 4000 chars."New value: +"SQL WHERE expression. Max 4000 chars; semicolons, comments and write keywords are rejected. Your custom signals are valid here — each expands to its SQL at run time."
changedInput schema / properties / select / description
Previous value: -"Aggregate output items (requires group_by). Default: group keys + COUNT(*) AS tickers. Aggregates: count/avg/sum/min/max/stddev/string_agg + FILTER (WHERE …). Alias items with AS. Example: `sector, COUNT(*) AS n, AVG(rsi_14) AS avg_rsi`."New value: +"Aggregate output items (requires `group_by`). Default: the group keys + `COUNT(*) AS tickers`. Supports count/avg/sum/min/max/stddev/string_agg/bool_and/bool_or plus `FILTER (WHERE …)`, and your custom signals inside expressions. Alias with `AS`; a last item without one is a 400."
changedInput schema / properties / universe / description
Previous value: -"Optional universe slug."New value: +"Slug of a system universe (`top_10`, `top_100`) or one of your own. Omitted, the scan runs across all ~21,008 tracked tickers."