The NGN Market API is here — Build on Nigerian market data

The NGN Market API provides real-time NGX equities, forex rates, financial statements, and sector data through a clean REST API.

NGN Market

Written by NGN Market

·9 min read
The NGN Market API is here — Build on Nigerian market data

We've been building NGN Market for a while now with live NGX stock prices, real-time forex rates, market snapshots, and sector data available on the platform.

People started asking us how they could get this data in their apps. So we built the API. And today, it's live.

Introducing the NGN Market API

The NGN Market API provides developers with programmatic access to Nigerian Exchange Group (NGX) market data via a single REST API.

You get clean JSON responses, a consistent structure, and Bearer token auth, all with one base URL:

https://api.ngnmarket.com/v1

If you've used any modern API before, you'll feel right at home. Here's what a basic request looks like:

curl https://api.ngnmarket.com/v1/market/snapshot \
  -H <span class="hljs-string">&quot;Authorization: Bearer ngm_live_YOUR_KEY&quot;</span>

And the response:

<span class="hljs-punctuation">{</span>
  <span class="hljs-attr">&quot;success&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-literal"><span class="hljs-keyword">true</span></span><span class="hljs-punctuation">,</span>
  <span class="hljs-attr">&quot;data&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span>
    <span class="hljs-attr">&quot;date&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-string">&quot;2026-04-17&quot;</span><span class="hljs-punctuation">,</span>
    <span class="hljs-attr">&quot;asi&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-number">105432.18</span><span class="hljs-punctuation">,</span>
    <span class="hljs-attr">&quot;asi_change&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-number">876.44</span><span class="hljs-punctuation">,</span>
    <span class="hljs-attr">&quot;asi_change_percent&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-number">0.84</span><span class="hljs-punctuation">,</span>
    <span class="hljs-attr">&quot;deals&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-number">4821</span><span class="hljs-punctuation">,</span>
    <span class="hljs-attr">&quot;volume&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-number">312847291</span><span class="hljs-punctuation">,</span>
    <span class="hljs-attr">&quot;value_traded&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-number">4821093847</span><span class="hljs-punctuation">,</span>
    <span class="hljs-attr">&quot;market_cap&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span>
      <span class="hljs-attr">&quot;equity&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-number">52109847302</span><span class="hljs-punctuation">,</span>
      <span class="hljs-attr">&quot;bonds&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-number">5100000000</span><span class="hljs-punctuation">,</span>
      <span class="hljs-attr">&quot;etfs&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-number">1081200000</span><span class="hljs-punctuation">,</span>
      <span class="hljs-attr">&quot;total&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-number">58291047302</span>
    <span class="hljs-punctuation">}</span>
  <span class="hljs-punctuation">}</span><span class="hljs-punctuation">,</span>
  <span class="hljs-attr">&quot;meta&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span>
    <span class="hljs-attr">&quot;plan&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-string">&quot;free&quot;</span><span class="hljs-punctuation">,</span>
    <span class="hljs-attr">&quot;calls_used&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-number">1</span><span class="hljs-punctuation">,</span>
    <span class="hljs-attr">&quot;calls_remaining&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-number">9999</span><span class="hljs-punctuation">,</span>
    <span class="hljs-attr">&quot;reset_at&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-string">&quot;2026-05-01T00:00:00.000Z&quot;</span>
  <span class="hljs-punctuation">}</span>
<span class="hljs-punctuation">}</span>

Notice the meta object at the bottom. It's on every single response. You always know exactly how many calls you've used and how many you have left.

What you can build with it

Here's a quick tour of what's available.

Advertisement

Market data

The market endpoints give you a complete picture of what's happening on the NGX each day.

  • Market Snapshot (/market/snapshot) — ASI level and change, total deals, share volume, naira value traded, and a full market cap breakdown across equities, bonds, and ETFs. Pass a date or leave it out to get the latest.
  • Top Trades (/market/top-trades) — The most actively traded stocks by naira value for any session. Useful for surfacing the day's most liquid names.
  • Gainers & Losers (/market/movers) — Biggest movers by percentage change. Filter to just gainers, just losers, or get both. Each entry includes the previous close, today's close, volume, and value traded.
  • Sector Performance (/market/sectors) — Performance aggregated across every NGX sector with 1-day, 7-day, and 52-week windows, plus a breadth count of advancers, decliners, and unchanged stocks per sector.
  • YTD Performers (/market/ytd-performers) — Best and worst performing NGX stocks from the first trading day of the year through today. Historical years are supported as well, so you can pull 2024 or 2025 performance for comparison.
  • Market Breadth (/market/breadth) — Daily session data showing how many stocks advanced, declined, or closed unchanged. Good for identifying trending market sentiment over time.

Company data

This is where it gets detailed.

  • Company List (/companies) — All NGX-listed equities, paginated and filterable by sector. Sort by market cap, price, volume, and 52-week change. Search by ticker or name. Each result includes the company logo URL.
  • Company Profile (/companies/{symbol}) — Everything you need to build a company page: current price, 52-week high/low, market cap, trailing EPS, sector classification, contact details, and a plain-English business description. DANGCEM, dangcem, and DangCem all work — lookups are case-insensitive.
  • Price Chart (/companies/{symbol}/chart) — Historical price series from a company's earliest available data to today. Use period=30d, period=1y, or pass a custom from/to date range. Choose between a detailed format (objects with date, price, and change) or a compact chart format ([timestamp, price] arrays) that drops straight into Chart.js, Recharts, or any other charting library. Every response includes a statistics block: min price, max price, period change, and percentage return.
  • Financial Statements (/companies/{symbol}/financials) — Full income statement, balance sheet, cash flow statement, and computed financial ratios for every filing period available. Filter by annual or quarterly, by year, or by the number of periods you want. Ratios include gross margin, ROE, ROA, debt-to-equity, interest coverage, free cash flow margin, and more.
  • Company News (/companies/{symbol}/news) — Real-time news articles from Nigerian financial outlets, fetched live on each request. Set maxAge to control how far back you want to look.
  • Corporate Disclosures (/companies/{symbol}/disclosures) — Official NGX filings: financial statements, AGM notices, board meeting results, director dealings, earnings forecasts, and more. Every record includes a direct link to the source PDF on the NGX document library.

Forex

  • Current Rates (/forex/current) — Live NGN exchange rates against USD, EUR, GBP, CAD, AUD, GHS, ZAR, CNY, JPY, and SAR.
  • Historical Rates (/forex/history) — Historical rate data between any supported currency pair. Pass source=GBP&target=NGN and a date range to get GBP/NGN history, or flip it for the inverse. Useful for charts, backtesting, and rate-change alerts.

Indices

  • Index List (/indices) — All tracked NGX market indices with current value and daily change. This includes the NGX 30, NGX Banking Index, Consumer Goods, Industrial Goods, Insurance, Oil & Gas, and more.
  • Index Detail (/indices/{symbol}) — Full index profile including methodology description and the list of constituent stocks with their weights.
  • Index Chart (/indices/{symbol}/chart) — Historical daily values for any index. Same period/date range/format options as the company chart endpoint.

Bonds

  • Bond List (/bonds) — All NGX-listed bonds with ISIN, issuer name, type (government or corporate), coupon rate, maturity date, and opening price. Filter by type or search by name. And lots more.

How we designed the API

A few decisions we made deliberately.

Consistent response envelope. Every response (success or failure) has the same top-level structure: success, data, and meta. You write a single response handler that works across all endpoints. Error responses follow the same pattern with an error object containing a machine-readable code and a human-readable message.

Quota in every response. We didn't want developers to have to make a separate call to check how many calls they have left. The meta object is there on every response. Watch calls_remaining, and you'll never be caught off guard.

Two chart formats. For all chart endpoints (company price charts and index charts), you can request format=detailed for full objects or format=chart for compact [timestamp, price] arrays. The compact format is designed to drop directly into charting libraries without any transformation.

Statistics on every chart. Every chart response includes a statistics block with the min, max, start, end, and percentage change for the requested range. You don't have to compute this yourself.

Case-insensitive symbols. DANGCEM, dangcem, and DangCem all resolve to the same company. We made this decision so developers aren't debugging typos at midnight.

Pricing

The free tier gives you 10,000 calls per month with no credit card required. That's enough to build something real and see if the API fits your use case before spending anything.

Plan Monthly Calls Price
Free 10,000 ₦0
Starter 100,000 ₦15,000/mo
Growth 500,000 ₦75,000/mo
Business 2,000,000 ₦300,000/mo
Enterprise Unlimited Custom

A few things worth knowing:

  • All your API keys for a given account share a single quota pool.
  • Quota resets on the 1st of each month at midnight UTC.
  • You can create up to five active keys per account. This is useful for separating environments like Production, Staging, and Local dev.

Get started

  1. Sign up or log in at ngnmarket.com
  2. Go to your developer dashboard and generate an API key
  3. Make your first request
  4. Browse the full docs at docs.ngnmarket.com

The docs include a quickstart guide, an authentication walkthrough, a full endpoint reference with example requests in cURL, JavaScript, and Python, and real-world examples for common patterns such as plotting the ASI, building a company profile, fetching forex rates, and surfacing top movers.

The NGN Market API docs
The NGN Market API docs

If you're building a portfolio tracker, an investment app, a data dashboard, a research tool, anything, we want to hear about it. Come join the conversation in our Discord community, or reach out to us at ngnmarket.com/contact.

Advertisement

Advertisement