Documentation

Build on Africa with one API surface.

Mansa API exposes live African market data plus location and identity reference endpoints for developers and AI systems. Market coverage now includes equities, ETFs, and indices. Start with a free key, then move into higher limits when your product is ready.

Base URL
https://mansaapi.com
Authentication
Bearer token using a `mansa_live_sk_...` API key.
Free tier
100 requests per day, all endpoints, no credit card.
Get API Key

Issue a free key in one request.

Standard keys are issued instantly. The response returns the key immediately, and Mansa API can also email the key to the requester once email delivery is configured.

curl -X POST https://mansaapi.com/api/v1/keys \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Ada Lovelace",
    "email": "ada@example.com",
    "requested_suites": ["markets", "bank_codes"],
    "primary_use_case": "Fintech app",
    "target_countries": ["NG", "GH"],
    "expected_volume": "testing"
  }'
curl https://mansaapi.com/api/v1/markets/exchanges \
  -H "Authorization: Bearer mansa_live_sk_your_key_here"

For Starter, Professional, and Institutional access, pass a higher `tier` value with your project details and the request will be queued for review.

Instrument Coverage

Equities, ETFs, and indices.

NGX ETF and index endpoints are now live in the Mansa Markets namespace for Mansa Markets ingestion. On Mansa API they require a Bearer API key, are database-backed, served from Supabase-backed snapshots, and refreshed every 30 minutes.

Equities

Stocks and quote coverage already consumed through the Mansa Markets suite.

ETFs

NGX exchange-traded fund snapshots with issuer, ISIN, trading, and canonical symbol fields.

Indices

Full NGX index universe including ASI, sector, pension, bond, commodity, and specialist benchmarks.

Agents

Getting started for AI agents.

Open guide
Health
/health

Check platform status and market freshness before running heavier workflows.

Freshness
30-minute market target

Markets endpoints currently target 30-minute freshness during market hours.

Normalized location
country_code + admin_level fields

Location responses expose normalized admin fields so agents can reuse the same parsing logic across countries.

Suite Pages

Start with the right suite.

The suite pages give Mansa API clean category signals for search and AI discovery without turning the site into dozens of thin endpoint pages.

Selective Landing Pages

A few strong pages beat dozens of weak ones.

Platform

Operational metadata and status surfaces for developers and AI agents.

GET/health
Public

Return platform and suite health, including market freshness metadata.

Authentication

Issue free developer keys and use them as Bearer tokens on every endpoint.

POST/api/v1/keys
Public

Issue a free standard key instantly or submit a higher-tier request.

Mansa Markets Suite

Live African exchange, quote, movers, index, ETF, forex, and commodity data. Instrument coverage includes equities, ETFs, and indices.

GET/api/v1/markets/exchanges
Bearer auth

Return all tracked exchanges with latest snapshot metadata.

GET/api/v1/markets/exchanges/{exchange_code}
Bearer auth

Return a single exchange and its latest index snapshot.

GET/api/v1/markets/exchanges/{exchange_code}/stocks
Bearer auth

Return stocks for a single exchange.

Query params
limit - Maximum rows to return, capped at 200.
offset - Pagination offset.
sector - Optional sector filter.
sort_by - ticker, price, change_pct, or volume.
order - asc or desc.
GET/api/v1/markets/exchanges/{exchange_code}/stocks/{ticker}
Bearer auth

Return a single stock with quote and reference fields.

GET/api/v1/markets/exchanges/{exchange_code}/movers
Bearer auth

Return top gainers and losers for an exchange.

Query params
limit - Maximum movers to return, capped at 20.
type - gainers, losers, or both.
GET/api/v1/markets/exchanges/{exchange_code}/stocks/{ticker}/history
Bearer auth

Return price history for a stock over a chosen range.

Query params
range - Time window: 1D, 1W, 1M, 3M, 1Y, ALL. Defaults to 1M.
GET/api/v1/markets/exchanges/{exchange_code}/stocks/{ticker}/fundamentals
Bearer auth

Return fundamentals for a stock: market cap, sector, 52-week high/low, TTM dividend yield.

GET/api/v1/markets/search
Bearer auth

Search stocks by ticker or name across one or all African exchanges.

Query params
q - Search query, minimum 1 character.
exchange - Optional exchange code filter (e.g. NIGERIA, NGX).
limit - Maximum results, capped at 50. Defaults to 20.
GET/api/v1/markets/trending
Bearer auth

Return trending stocks by volume across all live African exchanges.

Query params
limit - Maximum results, capped at 50. Defaults to 10.
GET/api/v1/markets/movers/pan-african
Bearer auth

Return top movers across all live African exchanges.

Query params
limit - Maximum movers to return, capped at 20.
GET/api/v1/markets/indices
Bearer auth

Return latest tracked African market indices.

GET/api/v1/markets/indices/{index_code}/history
Bearer auth

Return daily historical values for a tracked African index. Depth varies by index: NGX ASI from 1996, JSE All Share from 1995, SEMDEX from 1990, EGX 30 and TUNINDEX from 1998, MASI from 2002, most frontier indices from 2015. Index codes are slug-insensitive (e.g. ngx-asi, jse-asi, egx-30, gse-ci, brvm-ci, masi, tunindex, nsx-oi).

Query params
from - Earliest trade date to include, YYYY-MM-DD.
to - Latest trade date to include, YYYY-MM-DD.
Example request
GET https://mansaapi.com/api/v1/markets/indices/ngx-asi/history?from=2020-01-01
Authorization: Bearer mansa_live_sk_your_key_here
Example JSON
{
  "success": true,
  "data": {
    "index_code": "NGX ASI",
    "name": "NGX All-Share Index",
    "country": "Nigeria",
    "currency": "NGN",
    "points": [
      { "date": "2020-01-02", "close": 26867.79, "volume": null }
    ]
  },
  "meta": { "count": 1592, "first_date": "2020-01-02", "last_date": "2026-06-09", "data_freshness": "daily" }
}
GET/api/v1/markets/exchanges/{exchange_code}/indices
Bearer auth

Return available index snapshots for a tracked African exchange. DSE returns TSI, DSEI, BI, IA, and CS when the DSE feed has current data.

Example request
GET https://mansaapi.com/api/v1/markets/exchanges/DSE/indices
Authorization: Bearer mansa_live_sk_your_key_here
Example JSON
{
  "success": true,
      "data": [
    {
      "code": "DSEI",
      "name": "DSE All Share Index",
      "exchange": "DSE",
      "currency": "TZS",
      "country": "Tanzania",
      "value": 2875.42,
      "change_pct": 0.18,
      "updated_at": "2026-06-08T10:30:00.000Z"
    }
  ],
  "meta": { "exchange": "DSE", "count": 1, "data_freshness": "30_minutes" }
}
GET/api/v1/markets/exchanges/{exchange_code}/indices/{code}
Bearer auth

Return a single benchmark or sector index by code or alias. For Tanzania, valid codes include TSI, DSEI, BI, IA, and CS.

Example request
GET https://mansaapi.com/api/v1/markets/exchanges/DSE/indices/DSEI
Authorization: Bearer mansa_live_sk_your_key_here
GET/api/v1/markets/exchanges/{exchange_code}/indices/{code}/history
Bearer auth

Return historical benchmark index points for a tracked exchange. Supports range=1D, 1W, 1M, 3M, 1Y, or ALL.

Query params
range - History window. One of 1D, 1W, 1M, 3M, 1Y, ALL. Defaults to 1M.
Example request
GET https://mansaapi.com/api/v1/markets/exchanges/DSE/indices/DSEI/history?range=1Y
Authorization: Bearer mansa_live_sk_your_key_here
Example JSON
{
  "success": true,
  "data": {
    "code": "DSEI",
    "name": "DSE All Share Index",
    "exchange": "DSE",
    "range": "1Y",
    "points": [
      { "t": "2026-06-08T10:30:00.000Z", "trade_date": "2026-06-08", "value": 2875.42, "change_pct": 0.18, "change_points": 5.14 }
    ]
  },
  "meta": { "exchange": "DSE", "currency": "TZS", "point_count": 1, "data_freshness": "30_minutes" }
}
GET/api/v1/markets/exchanges/NGX/indices
Bearer auth

Return the full NGX index universe snapshot. Database-backed, persisted in Supabase-backed snapshots, refreshed every 30 minutes, and consumed by Mansa Markets ingestion.

Example request
GET https://mansaapi.com/api/v1/markets/exchanges/NGX/indices
Authorization: Bearer mansa_live_sk_your_key_here
Example JSON
{
  "success": true,
  "source": "mansa_markets_supabase",
  "updated_at": "2026-05-20T10:30:00.000Z",
  "count": 21,
  "data": [
    {
      "code": "ASI",
      "slug": "asi",
      "name": "NGX ALL SHARE INDEX",
      "description": "The All-Share Index tracks the general market movement.",
      "currentPrice": 251635.42,
      "changePercentage": 0.57,
      "currentDateTime": "2026-05-20T10:30:00.000Z",
      "points": 7510,
      "weekChange": -0.11,
      "monthChange": 15.21,
      "yearChange": 128.06,
      "inceptionChange": 4677.59
    }
  ]
}
GET/api/v1/markets/exchanges/NGX/indices/{code}
Bearer auth

Return a single NGX index by code or slug. Valid lookups include ASI and ngx-bnk.

Example request
GET https://mansaapi.com/api/v1/markets/exchanges/NGX/indices/ngx-bnk
Authorization: Bearer mansa_live_sk_your_key_here
Example JSON
{
  "success": true,
  "source": "mansa_markets_supabase",
  "input": "ngx-bnk",
  "code": "NGXBNK",
  "slug": "ngx-bnk",
  "updated_at": "2026-05-20T10:30:00.000Z",
  "data": {
    "code": "NGXBNK",
    "name": "NGX BANKING",
    "currentPrice": 2394.25,
    "changePercentage": 0.17
  }
}
GET/api/v1/markets/exchanges/NGX/etfs
Bearer auth

Return the full NGX ETF universe snapshot. Database-backed, persisted in Supabase-backed snapshots, refreshed every 30 minutes, and consumed by Mansa Markets ingestion.

Example request
GET https://mansaapi.com/api/v1/markets/exchanges/NGX/etfs
Authorization: Bearer mansa_live_sk_your_key_here
Example JSON
{
  "success": true,
  "source": "mansa_markets_supabase",
  "updated_at": "2026-05-20T10:30:00.000Z",
  "count": 12,
  "data": [
    {
      "symbol": "NEWGOLD",
      "canonical_symbol": "NEWGOLD",
      "slug": "newgold",
      "name": "NewGold ETF",
      "issuer": "NewGold Issuer Limited",
      "isin": "NGNEWGOLD001",
      "description": "Exchange traded fund listed on NGX.",
      "instrument_type": "ETF",
      "exchange": "NGX",
      "currency": "NGN",
      "sector": "Exchange Traded Fund",
      "previous_close": 57500,
      "open": 57500,
      "high": 58000,
      "low": 57500,
      "close": 58000,
      "change": 500,
      "change_percentage": 0.87,
      "trades": 14,
      "volume": 1200,
      "value": 69600000,
      "detail_url": "https://ngxpulse.ng/etfs/newgold"
    }
  ]
}
GET/api/v1/markets/exchanges/NGX/etfs/{symbol}
Bearer auth

Return a single NGX ETF by canonical symbol. Example: NEWGOLD.

Example request
GET https://mansaapi.com/api/v1/markets/exchanges/NGX/etfs/NEWGOLD
Authorization: Bearer mansa_live_sk_your_key_here
Example JSON
{
  "success": true,
  "source": "mansa_markets_supabase",
  "input": "NEWGOLD",
  "canonical_symbol": "NEWGOLD",
  "updated_at": "2026-05-20T10:30:00.000Z",
  "data": {
    "symbol": "NEWGOLD",
    "name": "NewGold ETF",
    "close": 58000,
    "change_percentage": 0.87
  }
}
GET/api/v1/markets/exchanges/NGX/etfs/resolve/{symbol}
Bearer auth

Resolve legacy, shorthand, or vendor ETF tickers into canonical NGX ETF symbols used by the API.

Example request
GET https://mansaapi.com/api/v1/markets/exchanges/NGX/etfs/resolve/LOTUSHAL
Authorization: Bearer mansa_live_sk_your_key_here
Example JSON
{
  "success": true,
  "source": "mansa_markets_supabase",
  "input": "LOTUSHAL",
  "canonical_symbol": "LOTUSHAL15",
  "slug": "lotushal15",
  "name": "Lotus Halal Equity ETF"
}
GET/api/v1/markets/exchanges/{exchange_code}/dividends/{ticker}
Bearer auth

Return dividend history for a stock: ex-dividend dates, record dates, pay dates, and dividend-per-share amounts. NGX only. Premium tier.

Query params
limit - Maximum records to return. Omit for full history.
Example request
GET https://mansaapi.com/api/v1/markets/exchanges/NGX/dividends/GTCO
Authorization: Bearer mansa_live_sk_your_key_here
Example JSON
{
  "success": true,
  "symbol": "GTCO",
  "count": 8,
  "latest_ex_dividend_date": "2025-03-14",
  "history": [
    {
      "ex_dividend_date": "2025-03-14",
      "record_date": "2025-03-15",
      "pay_date": "2025-04-01",
      "dividend_per_share": 3.0,
      "currency": "NGN"
    }
  ]
}
GET/api/v1/markets/exchanges/{exchange_code}/disclosures
Bearer auth

Return NGX regulatory filings and company announcements: financial reports, corporate actions, price-sensitive notices. NGX only. Premium tier.

Query params
symbol - Filter by stock ticker, e.g. GTCO.
type - Filter by disclosure type, e.g. FinancialStatement.
company - Filter by company name substring.
limit - Maximum records to return.
Example request
GET https://mansaapi.com/api/v1/markets/exchanges/NGX/disclosures?symbol=GTCO&limit=5
Authorization: Bearer mansa_live_sk_your_key_here
GET/api/v1/markets/exchanges/{exchange_code}/insider-trades
Bearer auth

Return director and insider dealings parsed from NGX PDF disclosures: transaction type, volume, price, and post-trade holdings. NGX only. Premium tier.

Query params
symbol - Filter by stock ticker.
side - buy or sell.
days - Lookback window in days.
limit - Maximum records to return, capped at 500.
Example request
GET https://mansaapi.com/api/v1/markets/exchanges/NGX/insider-trades?days=30
Authorization: Bearer mansa_live_sk_your_key_here
Example JSON
{
  "success": true,
  "count": 12,
  "data": [
    {
      "symbol": "GTCO",
      "company": "Guaranty Trust Holding Company",
      "insider_name": "Segun Agbaje",
      "role": "Group CEO",
      "transaction_type": "buy",
      "volume": 500000,
      "price": 42.5,
      "total_value": 21250000,
      "dealing_date": "2026-05-15"
    }
  ],
  "stats": {
    "week_net_flow": 45000000,
    "week_total_buys": 60000000,
    "week_total_sells": 15000000
  }
}
GET/api/v1/markets/exchanges/{exchange_code}/recommendations
Bearer auth

Return weekly broker recommendations and per-ticker consensus (BUY/HOLD/SELL) compiled from Nigerian stockbroker research. NGX only. Premium tier.

Query params
week - Specific week key, e.g. 2026-W21. Defaults to latest.
weeks - Pass 'list' to return available week keys instead of recommendations.
Example request
GET https://mansaapi.com/api/v1/markets/exchanges/NGX/recommendations
Authorization: Bearer mansa_live_sk_your_key_here
Example JSON
{
  "success": true,
  "meta": { "week_key": "2026-W21", "week_date": "2026-05-19" },
  "stocks": [
    {
      "ticker": "GTCO",
      "company_name": "Guaranty Trust Holding Company",
      "last_price": 42.5,
      "consensus": { "action": "BUY", "buy": 3, "hold": 1, "sell": 0, "avg_target": 54.0, "avg_upside": 27.1 },
      "signals": [
        { "broker": "Cordros Securities", "action": "BUY", "target_price": 55.0 }
      ]
    }
  ]
}
GET/api/ngxdata/indices
Bearer auth

Legacy compatibility route for /api/v1/markets/exchanges/NGX/indices. Prefer the Mansa Markets namespace for new integrations.

GET/api/ngxdata/indices/{code}
Bearer auth

Legacy compatibility route for /api/v1/markets/exchanges/NGX/indices/{code}. Prefer the Mansa Markets namespace for new integrations.

GET/api/ngxdata/etfs
Bearer auth

Legacy compatibility route for /api/v1/markets/exchanges/NGX/etfs. Prefer the Mansa Markets namespace for new integrations.

GET/api/ngxdata/etfs/{symbol}
Bearer auth

Legacy compatibility route for /api/v1/markets/exchanges/NGX/etfs/{symbol}. Prefer the Mansa Markets namespace for new integrations.

GET/api/ngxdata/etfs/resolve/{symbol}
Bearer auth

Legacy compatibility route for /api/v1/markets/exchanges/NGX/etfs/resolve/{symbol}. Prefer the Mansa Markets namespace for new integrations.

GET/api/v1/markets/forex
Bearer auth

Return current forex rates available through Mansa Markets.

GET/api/v1/markets/commodities
Bearer auth

Return commodity prices relevant to African producers and traders.

GET/api/v1/markets/exchange-metadata
Bearer auth

Return exchange metadata such as market type, settlement cycle, and website.

GET/api/v1/markets/calendar/{exchange_code}/is-open
Bearer auth

Return whether an exchange is open right now, with next open/close timestamps. Free tier.

Example request
curl https://mansaapi.com/api/v1/markets/calendar/NGX/is-open \
  -H "Authorization: Bearer mansa_live_sk_..."
Example JSON
{
  "success": true,
  "data": {
    "exchange": "NGX",
    "is_open": true,
    "status": "open",
    "reason": "market_hours",
    "timezone": "Africa/Lagos",
    "local_time": "11:42",
    "local_date": "2026-06-11",
    "session": { "open": "09:00", "close": "16:00" },
    "trading_days": "Mon-Fri",
    "next_open": null,
    "next_close": "2026-06-11T13:30:00.000Z"
  },
  "meta": { "exchange": "NGX", "checked_at": "2026-06-11T10:42:00.000Z", "source": "mansa_api" }
}
GET/api/v1/markets/calendar/{exchange_code}
Bearer auth

Return the full trading calendar for an exchange: session times, timezone, trading days, settlement cycle, and public holidays for a year. Starter tier and above.

Query params
year - Calendar year for the holiday list (default: current year)
GET/api/v1/markets/exchanges/{exchange_code}/dividends-calendar
Bearer auth

Calendar-style dividends across all listed companies: ex-dividend, record, and pay dates with amounts. Filter by date range, symbol, or upcoming=true. NGX. Starter tier and above.

Query params
upcoming - true = only ex-dividend dates from today forward
from - Start date YYYY-MM-DD (default 90 days back)
to - End date YYYY-MM-DD
symbol - Filter to one ticker
limit - Rows to return (default 200, max 500)
GET/api/v1/markets/bonds/{country}
Bearer auth

Return listed bonds (government local, eurobond, sukuk, corporate) with latest price and yield to maturity. Professional tier and above.

Query params
type - Filter: govt_local | eurobond | sukuk | corporate
GET/api/v1/markets/yields/{country}/curve
Bearer auth

Return the current government yield curve: latest auction result per instrument and tenor. Professional tier and above.

GET/api/v1/markets/yields/{country}/tbills
Bearer auth

Return treasury bill auction results (stop rates, average yields, subscription), newest first. Professional tier and above.

Query params
limit - Rows to return (default 50, max 500)
GET/api/v1/markets/yields/{country}/auctions
Bearer auth

Return government debt auction history across instrument types. Professional tier and above.

Query params
type - Filter: tbill | bond | sukuk | cp
limit - Rows to return (default 100, max 600)
Mansa Macro Suite

African macroeconomic indicators with provenance in every payload: policy rates and inflation for 18 economies, with Nigeria served live from Central Bank of Nigeria statistics including full monthly history back to 2006.

GET/api/v1/macro/policy-rates
Bearer auth

Flagship all-Africa table: current central bank policy rate and latest inflation for every covered economy, each with source institution and URL.

Example request
curl https://mansaapi.com/api/v1/macro/policy-rates \
  -H "Authorization: Bearer mansa_live_sk_..."
Example JSON
{
  "success": true,
  "data": [
    {
      "country": "NG",
      "country_name": "Nigeria",
      "policy_rate": 26.5,
      "policy_rate_period": "2026-03",
      "inflation_yoy": 15.69,
      "inflation_period": "2026-04",
      "source_institution": "Central Bank of Nigeria",
      "source_url": "https://www.cbn.gov.ng/rates/mnymktind.html",
      "data_mode": "live"
    }
  ],
  "meta": { "count": 18, "verified_at": "2026-06-11", "source": "mansa_api" }
}
GET/api/v1/macro/indicators
Bearer auth

All indicators for one country (?country=NG returns the live CBN set: policy rate, T-bill, interbank, lending rates, headline/food/core inflation), or a continent summary without a filter.

Query params
country - ISO-3166 alpha-2 code (e.g. NG, KE, ZA)
GET/api/v1/macro/{country}/{indicator}/history
Bearer auth

Monthly history for an indicator. Nigeria has full depth (policy rate and money market back to 2006, CPI splits). Starter tier and above.

Query params
from - Start period, YYYY-MM
to - End period, YYYY-MM
Mansa Fundamentals Suite

Queryable fundamentals for ~1,170 listed companies across 16 African exchanges — valuation, dividends, profitability, balance-sheet health and analyst signals, refreshed weekly. Nigerian names additionally carry human-verified figures extracted from official filings, each linked to its source document. The only dataset of its kind for African equities. Paid tier.

GET/api/v1/fundamentals/{exchange_code}/{ticker}
Bearer auth

Return verified fundamentals for one listing: revenue, profits, balance sheet, EPS and DPS per fiscal period, plus derived ratios (net margin, ROE, ROA, payout, P/E and dividend yield vs the live price). Starter tier and above.

Example request
GET https://mansaapi.com/api/v1/fundamentals/NGX/GTCO
Authorization: Bearer mansa_live_sk_your_key_here
Example JSON
{
  "success": true,
  "data": {
    "ticker": "GTCO",
    "exchange": "NGX",
    "company_name": "Guaranty Trust Holding Company Plc",
    "live_price_used_for_ratios": 42.5,
    "periods": [
      {
        "fiscal_period": "FY2025",
        "period_end_date": "2025-12-31",
        "statement_type": "annual",
        "currency": "NGN",
        "figures": {
          "revenue": 1260000000000,
          "gross_profit": null,
          "operating_profit": 905000000000,
          "profit_before_tax": 1004000000000,
          "profit_after_tax": 905000000000,
          "total_assets": 9690000000000,
          "total_equity": 2730000000000,
          "total_liabilities": 6960000000000,
          "eps_basic": 30.81,
          "dividend_per_share": 8.03
        },
        "derived": {
          "net_margin_pct": 71.83,
          "roe_pct": 33.15,
          "roa_pct": 9.34,
          "payout_ratio_pct": 26.06,
          "pe": 1.38,
          "dividend_yield_pct": 18.89
        },
        "source_document_url": "https://ngxgroup.com/exchange/.../GTCO-FY2025.pdf",
        "verified_at": "2026-06-10T09:00:00Z"
      }
    ]
  },
  "meta": {
    "exchange": "NGX",
    "currency": "NGN",
    "period_count": 4,
    "methodology": "Figures are extracted from official filings and human-verified before publication."
  }
}
GET/api/v1/metrics/{exchange_code}/{ticker}
Bearer auth

Return the full metric sheet for any of ~1,170 African listings: valuation, dividends, profitability, balance-sheet health, quality scores and analyst signals — plus the filing-verified block on covered NGX names. Starter tier and above.

Example request
GET https://mansaapi.com/api/v1/metrics/JSE/NPN
Authorization: Bearer mansa_live_sk_your_key_here
Example JSON
{
  "success": true,
  "data": {
    "ticker": "NPN",
    "exchange": "JSE",
    "company_name": "Naspers Limited",
    "currency": "ZAR",
    "price": 5460.4,
    "market_cap": 960000000000,
    "market_cap_usd": 53200000000,
    "valuation": { "pe": 7.29, "forward_pe": 9.29, "peg": 0.61, "pb": 1.82, "ev_ebitda": 5.4 },
    "dividends": { "dividend_yield_pct": 0.11, "dividend_per_share": 6.2, "payout_ratio_pct": 0.8 },
    "profitability": { "roe_pct": 25.76, "roa_pct": 14.1, "profit_margin_pct": 31.2 },
    "health": { "debt_equity": 0.31, "current_ratio": 2.1, "altman_z_score": 2.23, "piotroski_f_score": 6 },
    "signals": { "analyst_consensus": "Buy", "analyst_count": 9, "price_target": 6890, "beta_5y": 1.12, "change_52w_pct": 41.3 },
    "verified": null
  },
  "meta": { "exchange": "JSE", "currency": "ZAR", "data_freshness": "weekly" }
}
GET/api/v1/screener
Bearer auth

Screen 16 African exchanges — or the whole continent at once — by valuation, yield, profitability, balance-sheet health and analyst consensus. Verified NGX figures override market data where available. Starter tier and above.

Query params
exchange - Exchange code (NGX, JSE, EGX, NSE, GSE, ...) or ALL for the whole continent. Defaults to NGX.
pe_max - Maximum trailing P/E, e.g. 5.
dividend_yield_min - Minimum dividend yield in percent, e.g. 8.
roe_min - Minimum return on equity in percent, e.g. 20.
pb_max - Maximum price-to-book ratio.
z_min - Minimum Altman Z-score (financial health).
market_cap_usd_min - Minimum market cap in USD, e.g. 100000000.
consensus - Analyst consensus filter: buy, hold, sell, strong buy, strong sell.
verified_only - true to return only rows with filing-verified fundamentals.
limit - Maximum results, capped at 500.
Example request
GET https://mansaapi.com/api/v1/screener?exchange=ALL&pe_max=6&dividend_yield_min=5&market_cap_usd_min=100000000
Authorization: Bearer mansa_live_sk_your_key_here
Example JSON
{
  "success": true,
  "data": {
    "exchange": "NGX",
    "results": [
      {
        "ticker": "ZENITHBANK",
        "company_name": "Zenith Bank Plc",
        "sector": "Banking",
        "price": 45.0,
        "market_cap": 1850000000000,
        "currency": "NGN",
        "fiscal_period": "FY2025",
        "revenue": 2900000000000,
        "profit_after_tax": 1030000000000,
        "eps_basic": 25.1,
        "dividend_per_share": 5.0,
        "revenue_growth_pct": 24.3,
        "net_margin_pct": 35.5,
        "roe_pct": 28.9,
        "roa_pct": 3.4,
        "payout_ratio_pct": 19.9,
        "pe": 1.79,
        "dividend_yield_pct": 11.11,
        "source_document_url": "https://ngxgroup.com/exchange/.../ZENITHBANK-FY2025.pdf"
      }
    ]
  },
  "meta": {
    "exchange": "NGX",
    "currency": "NGN",
    "result_count": 12,
    "covered_listings": 30
  }
}
Mansa Location Suite

African country profiles, regional breakdowns, and holiday data.

GET/api/v1/location/countries
Bearer auth

Return African countries with optional region filter.

Query params
region - Filter countries by region text match.
GET/api/v1/location/countries/{country_code}
Bearer auth

Return a single country profile by ISO2 or ISO3 code.

GET/api/v1/location/countries/{country_code}/states
Bearer auth

Return states, regions, counties, or provinces for supported countries with normalized admin_level_1 fields.

GET/api/v1/location/countries/{country_code}/states/{state_code}/lgas
Bearer auth

Return LGAs, districts, or sub-county units with normalized admin_level_2 fields.

GET/api/v1/location/countries/{country_code}/states/{state_code}/postal-codes
Bearer auth

Return Nigeria postal-code coverage for a state, with optional detailed LGA lookup.

Query params
lga - Optional LGA name or code for a detailed locality-level postcode response.
limit - Rows per page when lga is provided, capped at 250.
offset - Pagination offset when lga is provided.
GET/api/v1/location/countries/{country_code}/holidays/{year}
Bearer auth

Return public holidays for a country and year.

Mansa Identity Suite

Bank and financial identity reference data for African fintech.

GET/api/v1/identity/banks
Bearer auth

Return bank and mobile-money institutions with optional filters.

Query params
country - Filter by country code, for example NG or GH.
type - Filter by institution type.
GET/api/v1/identity/banks/{bank_code}
Bearer auth

Return a single bank or institution by bank code.

GET/api/v1/identity/mobile-networks
Bearer auth

Return mobile network operators with optional country filter.

Query params
country - Filter by country code, for example NG or GH.
GET/api/v1/identity/mobile-networks/lookup
Bearer auth

Return the mobile network that matches a phone number prefix.

Query params
phone - Phone number in local or international format.
GET/api/v1/identity/currencies
Bearer auth

Return African currency metadata with issuing countries.

GET/api/v1/identity/currencies/{currency_code}
Bearer auth

Return a single currency record by ISO code.

Release Notes

Changelog

May 2026

Added NGX ETF and full NGX index endpoint support. The new endpoints are database-backed, refreshed every 30 minutes, and available for Mansa Markets ingestion alongside equities.

Machine-readable

Specs for developers and agents.

Contact

Need support, enterprise access, or data partnership help? api@mansamarkets.com