Top gainers & losers (deprecated alias)
Pan-African Market Data & Intelligence
/market-data/movers
Top gainers & losers (deprecated alias)
getMarketDataMoversDeprecated alias of GET /market/movers. Identical handler and response shape. Existing integrations keep working; use /market/movers in new code.
Parameters
exchangestringqueryRequiredExample: NSE
directiongainers | losersqueryExample: gainers
limitintegerqueryExample: 10
pageintegerqueryExample: 1
Headers
AuthorizationstringRequiredBearer sk_sandbox_<your_key> for sandbox requests.
Response fields
idstringUnique stock identifier.
Example: "SCOM.KE"
symbolstringExchange-qualified ticker symbol.
Example: "SCOM.KE"
namestringFull company name.
Example: "Safaricom PLC"
slugstring | nullURL-safe identifier. Interchangeable with symbol.
Example: "safaricom"
exchangestringExchange code: NSE, NGX, JSE, GSE, BRVM, ZSE, BSE, LUSE, EGX, DSE, USE, MSE, CSE, SEM.
Example: "NSE"
exchangeMicstring | nullISO 10383 operating Market Identifier Code for the listing exchange.
Example: "XNAI"
currencystringLocal trading currency.
Example: "KES"
sectorstring | nullExample: "Telecommunications"
assetTypeSTOCK | ETFlistingStatusACTIVE | SUSPENDED | DELISTEDpricenumber | nullLatest price in local currency.
Example: 16.5
usdPricenumber | nullLatest price converted to USD at live spot rate.
Example: 0.1274
changenumber | nullAbsolute price change from previous close.
Example: 0.25
changePctnumber | nullPercentage price change from previous close.
Example: 1.54
opennumber | nullSession opening price in local currency.
dayHighnumber | nullIntraday high in local currency.
dayLownumber | nullIntraday low in local currency.
volumeinteger | nullCurrent session trading volume.
previousClosenumber | nullPrior session closing price.
logoUrlstring | nullSelf-hosted SVG logo. Safe to use as img src.
Example: "https://mystocks.africa/logos/scom-ke.svg"
lastPriceUpdatestring | nullmarketStatusstringExchange state at quote time: OPEN or CLOSED. Present on /market/quotes and /market/movers responses.
bidnumber | nullBest bid. Currently always null (no order-book depth in the data source).
asknumber | nullBest ask. Currently always null (no order-book depth in the data source).
dataFreshnessSecondsinteger | nullSeconds since the last price update. Present on /market/quotes and /market/movers responses.
asOfstring | nullTimestamp of the exchange observation — NOT when the API answered. African equity data is 15-minute delayed and the API refresh target is 900 seconds, so display and evaluate freshness against this value.
stalebooleanTrue when the price is older than two refresh intervals (30 minutes). The feed for this symbol is genuinely behind — do not trust the price for pricing a trade.
dataQualityobjectThe published market-data freshness contract. African equity quotes are supplied by the exchanges on a 15-minute-delayed basis, not in real time. MyStocks holds full exchange data rights. The API refresh target is 900 seconds during the published coverage window, with an end-of-day pass after market close.
dataQuality.asOfstring | nullRequiredTimestamp of the exchange observation, not the time the API response was generated.
dataQuality.ageSecondsinteger | nullRequiredAge of the price in seconds (now − asOf).
dataQuality.stalebooleanRequiredTrue when the price is older than two refresh intervals.
dataQuality.delayModeDELAYED | END_OF_DAYRequiredDELAYED — exchange-supplied data in the 15-minute-delayed latency class. END_OF_DAY — outside the window; this is the most recent close, not a live quote.
dataQuality.delayMinutesintegerRequiredExchange feed latency class in minutes. This is distinct from the API refresh target.
Example: 15
dataQuality.refreshIntervalSecondsintegerRequiredTarget interval between API ingestion refreshes during the published coverage window.
Example: 900
dataQuality.providermstocks | mansaRequiredMyStocks ingestion connector for this exchange feed. This field does not describe exchange licensing or partner entitlement.
dataQuality.disclaimerstringRequiredPlain-English statement of what this price is and is not.
Response codes
200See `GET /market/movers`.