Top movers
Listings with the largest percent change from the previous session close to a session close, from reconciled end-of-day prices across the entitled markets (each market's latest complete session by default). Gainers rank the largest rises first and include only rises; losers rank the largest falls first and include only falls; ties break by listing. previous_close is split-adjusted, so a split is not a move. A listing whose session opened at least 90% away from its split-adjusted previous close is withheld from the ranking: a split can reach the feed up to a day after it takes effect, and until its record arrives such a session cannot be told from a gain or fall, so it is left out rather than ranked, and appears once the split is recorded. Listings without a bar on both sessions are not ranked. Requires eod.read and an entitled market; a key limited to a symbol list ranks only those symbols. Rankings of recent sessions are rebuilt within minutes of a change to their end-of-day bars.
/v1/movers- Required capability
- eod.read
- Data timing
- End of day
- Credits
- 25 credits per request.
Parameters
directionstringoptional · query- gainers (default) or losers.
Default:gainerslosersgainers limitintegeroptional · query- Rows to return, from 1 to 50; default 20.Default:
20 exchangesstringoptional · query- Comma-separated ISO MIC codes, at most 100, each listed once. Defaults to every entitled exchange; mutual funds are ranked only for keys whose plan includes mutual-funds.read. A malformed or repeated code returns 422 invalid-exchanges, a MIC the API does not serve 404 exchange-not-found, and one outside the key's markets 403 market-not-entitled. A mutual fund venue (NMFQ, FSRV) without mutual-funds.read returns 403 mutual-funds-not-entitled.
min_pricestringoptional · query- Minimum session close in the listing currency; default 1. Set 0 to include every price.Default:
1 min_volumestringoptional · query- Minimum session volume; default 100000. For exchange listings it is in shares, for crypto pairs in the quote currency. Currency pairs, indices and bonds have no volume, so they are ranked only with min_volume=0.Default:
100000 datestringoptional · query- Trading date (YYYY-MM-DD) of the session to rank, compared with each market's session before it; defaults to each market's latest complete session. Must be within the plan history depth. Only the session on this date is ranked, never an earlier one: a market with no session on it (a weekend or holiday of its exchanges, or a date before its history) contributes no rows, and a date on which none of the requested markets traded returns an empty list. A session with no ranking yet (recent ones are kept ranked) is ranked by the first request for it; when that does not fit the request time budget, the response is 503 query-timeout with Retry-After, the ranking continues in the background, and a retry after the Retry-After interval is served from it.
If-None-Matchstringoptional · header- ETag from a previous response. Authorization is rechecked before returning 304, and a 304 costs no credits.
formatstringoptional · query- Response format. csv returns the data rows with a header row, for spreadsheet functions such as IMPORTDATA; nested fields become dotted columns and lists one JSON array cell, the next page cursor is returned in X-Next-Cursor and meta.errors in X-Meta-Errors. A result without rows is the header row alone, listing the documented fields of a row. Default json, or csv when format is omitted and the Accept header ranks text/csv above JSON; a format the Accept header does not admit returns 406 not-acceptable.
jsoncsv
Response fields
Returns data as an array of records. All example values are illustrative.
security_idstring- Stable public instrument ID, the instrument_id of the other endpoints.Being superseded by instrument_id, which carries the same value. Read instrument_id where present; security_id remains for compatibility.
symbolstring · null- Current MIC:TICKER of the listing.
exchange_micstring- exchange mic
currency_codestring- currency code
datestring- Trading date of the session.
previous_datestring- Trading date of the session before it.
closestring · null- Exact decimal string. Never a JSON floating point number.
previous_closestring · null- Previous session close, restated for any split between the two sessions so that both closes are on one share basis.
changestring · null- Exact decimal string. Never a JSON floating point number.
change_percentstring · null- 100 × change / previous_close, rounded to 8 decimal places.
volumestring · null- Session volume: whole shares for exchange listings, the value traded in the quote currency for crypto pairs, null for currency pairs, indices and bonds.
Response metadata
Responses include meta.timezone. Dataset responses include next_cursor; health and exports have their own metadata. Request tracing uses the X-Request-ID header.
When something goes wrong
An empty data: [] is a successful query with no matching records. Invalid symbols, permissions and malformed parameters produce an RFC 9457 problem with an actionable detail.
Plans
Requires eod.read. Access, recency and history depth come from the plan definitions the API enforces.
| Plan | Access | Recency | History |
|---|---|---|---|
| Free | Included | End of day | Not date-bounded |
| Developer | Included | End of day | Not date-bounded |
| Pro | Included | End of day | Not date-bounded |
| Commercial | Included | End of day | Not date-bounded |
| Scale | Included | End of day | Not date-bounded |
Free requests are limited to AAPL, NVDA, JNJ, PEP, MSFT, SPY, QQQ.
History is how far back a plan may request. How far records actually go for a symbol is history_from in dataset coverage. Nothing is real-time. Compare plans