Live scan
/v2/scanFilter the live ticker universe with a SQL WHERE clause expressed in our SQL grammar. Returns matching tickers sorted by your chosen column. Columns in `q`, `order`, and `fields` are the customer-facing names listed on /api/schema and /api/flags. No translation layer.
Plan access
Included on every plan, Hobby through Enterprise.
Rate limit
Hobby 60/min · Pro 2,000/min · Scale 10,000/min.
Universe
All ~12,000 tracked tickers on every plan.
Query parameters
stringSQL WHERE expression. Required unless `rule` is supplied. Max 4000 chars. Semicolons, comments, and write-side keywords (INSERT/UPDATE/DELETE/DROP/etc.) are rejected.
stringSlug of a saved rule (see `/v2/rules`). Its `q`, `universe_id`, `order`, `dir`, and `fields` become defaults; any of those passed as query-string parameters override.
stringSlug of a system universe (`top_10`, `top_100`) or one of your own (`/v2/universes`). Scopes the scan to those tickers. When omitted, the scan runs across all ~12,000 tracked tickers.
stringOptional. Run the WHERE against historical daily state for the given `YYYY-MM-DD` (or full ISO). Plan history depth applies.
stringdefault day_change_pctColumn to sort by. Must be a valid identifier (lowercase letters, digits, underscore).
stringdefault descSort direction.
stringComma-separated list of extra columns to include in each result row. Default columns are always present: ticker, name, asset_type, price, day_change_pct, gap_pct, relative_volume, market_cap.
integerdefault 50Page size. Max 100.
stringOpaque cursor from the previous response.
Status codes
200as_of, query, count, next_cursor, and results. If the response was scoped (explicit ?universe= or plan default), _meta.scope describes it.400q, unknown column, invalid order/dir/fields, or invalid cursor.402404rule or universe does not exist.