Skip to content
MyStocks Developers
API v1

API v1

Current stable contract

Versioning policyRelease changelog
Sandbox console

List stocks (NSE, NGX, JSE, GSE, BRVM, etc.)

Pan-African Market Data & Intelligence

GET

/stocks

List stocks (NSE, NGX, JSE, GSE, BRVM, etc.)

Sandbox availablelistStocks

Returns the full tradeable stock and ETF universe across all supported African exchanges. Provides exchange-supplied, 15-minute-delayed stock price data. The API refresh target is 900 seconds during the published coverage window. These are not real-time prices. MyStocks holds full data rights for every supported exchange. - Nairobi Stock Exchange (NSE) in Kenya (KES) - Nigerian Exchange Group (NGX) in Nigeria (NGN) - Johannesburg Stock Exchange (JSE) in South Africa (ZAR) - Ghana Stock Exchange (GSE) in Ghana (GHS) - BRVM serving 8 West African French-speaking countries (XOF) - LuSE (Zambia), USE (Uganda), BSE (Botswana), DSE (Tanzania), ZSE (Zimbabwe), EGX (Egypt), MSE (Malawi), CSE (Morocco), and SEM (Mauritius). Filter by exchange, sector, asset type, or free-text search. Results are cursor-paginated to keep catalogue responses fast as market coverage grows. Use nextCursor while hasMore is true.

Parameters

exchangestringquery

Filter by exchange code. One of: NSE, NGX, JSE, GSE, BRVM, ZSE, BSE, LUSE, EGX, DSE, USE, MSE, CSE, SEM.

Example: NSE

sectorstringquery

Filter by GICS sector name.

Example: Telecommunications

assetTypeSTOCK | ETFquery

Filter to stocks or ETFs.

searchstringquery

Free-text match against symbol or company name.

Example: safaricom

limitintegerquery

Page size. Defaults to 50 and is capped at 200.

Example: 50

cursorstringquery

Continuation cursor returned as nextCursor by the previous page.

Headers

AuthorizationstringRequired

Bearer sk_sandbox_<your_key> for sandbox requests.

Response fields

stocksobject[]
stocks[].idstring

Unique stock identifier.

Example: "SCOM.KE"

stocks[].symbolstring

Exchange-qualified ticker symbol.

Example: "SCOM.KE"

stocks[].namestring

Full company name.

Example: "Safaricom PLC"

stocks[].slugstring | null

URL-safe identifier. Interchangeable with symbol.

Example: "safaricom"

stocks[].exchangestring

Exchange code: NSE, NGX, JSE, GSE, BRVM, ZSE, BSE, LUSE, EGX, DSE, USE, MSE, CSE, SEM.

Example: "NSE"

stocks[].exchangeMicstring | null

ISO 10383 operating Market Identifier Code for the listing exchange.

Example: "XNAI"

stocks[].currencystring

Local trading currency.

Example: "KES"

stocks[].sectorstring | null

Example: "Telecommunications"

stocks[].assetTypeSTOCK | ETF
stocks[].listingStatusACTIVE | SUSPENDED | DELISTED
stocks[].pricenumber | null

Latest price in local currency.

Example: 16.5

stocks[].usdPricenumber | null

Latest price converted to USD at live spot rate.

Example: 0.1274

stocks[].changenumber | null

Absolute price change from previous close.

Example: 0.25

stocks[].changePctnumber | null

Percentage price change from previous close.

Example: 1.54

stocks[].opennumber | null

Session opening price in local currency.

stocks[].dayHighnumber | null

Intraday high in local currency.

stocks[].dayLownumber | null

Intraday low in local currency.

stocks[].volumeinteger | null

Current session trading volume.

stocks[].previousClosenumber | null

Prior session closing price.

stocks[].logoUrlstring | null

Self-hosted SVG logo. Safe to use as img src.

Example: "https://mystocks.africa/logos/scom-ke.svg"

stocks[].lastPriceUpdatestring | null
stocks[].marketStatusstring

Exchange state at quote time: OPEN or CLOSED. Present on /market/quotes and /market/movers responses.

stocks[].bidnumber | null

Best bid. Currently always null (no order-book depth in the data source).

stocks[].asknumber | null

Best ask. Currently always null (no order-book depth in the data source).

stocks[].dataFreshnessSecondsinteger | null

Seconds since the last price update. Present on /market/quotes and /market/movers responses.

stocks[].asOfstring | null

Timestamp 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.

stocks[].staleboolean

True 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.

stocks[].dataQualityobject

The 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.

countinteger

Number of stocks in this page.

totalCountinteger | null

Exact matching count when known; null for bounded cursor scans.

hasMoreboolean
nextCursorstring

Response codes

200List of stocks.