/v2/screener/movers Top movers by percent change
screener_getMovers
Registry symbols ranked by the size of their latest session's move, largest absolute change_pct first. Use it for a daily top-gainers and top-losers list.
Query parameters
datestring ISO dateSession date
YYYY-MM-DD, echoed inmeta. Not applied yet: rows always come from the latest session.universestringUniverse to rank; only
registry(the default, every symbol inGET /v2/symbols) is supported.limitintegerRows to return: default 25, at most 180.
Details
Requests with an API key never see index symbols in the list.
Units
spot (the latest daily close) and official_close (the prior session's close) are dollars; change_pct is percent (1.5 = +1.5%); volume is shares.
Freshness
Computed from daily bars at most once a minute and shared by every caller; meta.computed_at (epoch milliseconds) says when. The date parameter is echoed but not applied yet: the latest session is always served.
Limits
At most 180 rows (limit, default 25). No other per-operation limit applies.
Example
GET /v2/screener/movers?limit=1{
"data": [
{
"symbol": "SPCH",
"spot": 10.16,
"change_pct": 9.96,
"volume": 26576051,
"official_close": 9.24
}
],
"meta": {
"count": 1,
"computed_at": 1790493764431,
"universe": "registry"
}
}Response
Prices are dollars, timestamps epoch milliseconds, strikes integer thousandths of a dollar; null means unknown. Units →
200application/json
Movers in data, largest |change_pct| first; meta.computed_at and a meta.note on how the universe was computed
object
A successful response: the payload consumers parse plus response metadata. data shapes are the platform types — never reshaped by the envelope.
data array<object> required
change_pct number · double required Percent change from official_close (1.5 = +1.5%).
official_close number · double required USD Prior session close, dollars.
spot number · double required USD Latest daily close, dollars.
symbol string required volume integer · int64 required Latest session volume, shares.
meta object required
Response metadata.
caps object nullable
meta.caps — the entitlement caps that shaped this response. applied lists the caps that actually changed it (for example range_clamped).
applied array<string> required Which caps actually shaped this response (e.g. range_clamped). Empty = nothing was clamped.
darkpool boolean nullable Whether this account can use Off-Exchange in the site.
flow boolean nullable Whether the OPRA option-flow capability (flow) is granted to this principal in the app: site Pro plus a CBOE non-professional attestation (never on an itm_ key). Emitted explicitly — true and false — by the account endpoints, so the app reads the grant instead of inferring it from tier and attestation; absent on routes that do not report it.
gexDepth string nullable GEX data depth when the route reports it. Camel-cased to match the browser capability bundle; absent on unrelated routes.
tier string required The tier the request was served under.
cursor string nullable Opaque continuation cursor (pass back as ?cursor=); absent when there is nothing more to read.
plane string nullable Which serving tier answered the read (meta.plane). Informational provenance: treat it as an opaque label, because new values may appear.
Errors
Every error is the JSON error envelope; branch on error.code.
| Status | Meaning |
|---|---|
| 401 |
|
| 503 |
|