curl --request GET \
--url https://api.ngnmarket.com/v1/blog/posts \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.ngnmarket.com/v1/blog/posts"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.ngnmarket.com/v1/blog/posts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.ngnmarket.com/v1/blog/posts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.ngnmarket.com/v1/blog/posts"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.ngnmarket.com/v1/blog/posts")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ngnmarket.com/v1/blog/posts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"data": [
{
"slug": "fgn-bond-market-outlook-2026",
"title": "FGN Bond Market Outlook for 2026",
"excerpt": "An in-depth look at Federal Government bond yields and what investors can expect through the rest of 2026.",
"cover_image": "https://ngnmarket.com/images/blog/fgn-bond-outlook.jpg",
"published_date": "2026-04-10",
"categories": [
"economy",
"fixed-income"
],
"tags": [
"bonds",
"fg"
],
"companies": [],
"url": "https://ngnmarket.com/blog/fgn-bond-market-outlook-2026"
},
{
"slug": "dangote-cement-q1-analysis",
"title": "Dangote Cement Q1 2026 Results: What the Numbers Say",
"excerpt": "A breakdown of Dangote Cement's Q1 2026 financial results and what they mean for shareholders.",
"cover_image": "https://ngnmarket.com/images/blog/dangote-cement-q1.jpg",
"published_date": "2026-04-07",
"categories": [
"corporate-news"
],
"tags": [
"earnings"
],
"companies": [
"DANGCEM"
],
"url": "https://ngnmarket.com/blog/dangote-cement-q1-analysis"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 42,
"pages": 3,
"has_next": true,
"has_prev": false
}
},
"meta": {
"plan": "free",
"calls_used": 312,
"calls_remaining": 9688,
"reset_at": "2026-05-15T23:57:00.000Z"
}
}List Blog Posts
Paginated, filterable feed of all published NGN Market blog posts.
curl --request GET \
--url https://api.ngnmarket.com/v1/blog/posts \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.ngnmarket.com/v1/blog/posts"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.ngnmarket.com/v1/blog/posts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.ngnmarket.com/v1/blog/posts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.ngnmarket.com/v1/blog/posts"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.ngnmarket.com/v1/blog/posts")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ngnmarket.com/v1/blog/posts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"data": [
{
"slug": "fgn-bond-market-outlook-2026",
"title": "FGN Bond Market Outlook for 2026",
"excerpt": "An in-depth look at Federal Government bond yields and what investors can expect through the rest of 2026.",
"cover_image": "https://ngnmarket.com/images/blog/fgn-bond-outlook.jpg",
"published_date": "2026-04-10",
"categories": [
"economy",
"fixed-income"
],
"tags": [
"bonds",
"fg"
],
"companies": [],
"url": "https://ngnmarket.com/blog/fgn-bond-market-outlook-2026"
},
{
"slug": "dangote-cement-q1-analysis",
"title": "Dangote Cement Q1 2026 Results: What the Numbers Say",
"excerpt": "A breakdown of Dangote Cement's Q1 2026 financial results and what they mean for shareholders.",
"cover_image": "https://ngnmarket.com/images/blog/dangote-cement-q1.jpg",
"published_date": "2026-04-07",
"categories": [
"corporate-news"
],
"tags": [
"earnings"
],
"companies": [
"DANGCEM"
],
"url": "https://ngnmarket.com/blog/dangote-cement-q1-analysis"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 42,
"pages": 3,
"has_next": true,
"has_prev": false
}
},
"meta": {
"plan": "free",
"calls_used": 312,
"calls_remaining": 9688,
"reset_at": "2026-05-15T23:57:00.000Z"
}
}url linking to the full article on ngnmarket.com/blog.
You can filter the feed using any combination of category, company, and tag. For example, ?category=markets&company=DANGCEM returns posts in the markets category that are also tagged to DANGCEM. For the rich author profile, named taxonomies, and content preview, call GET /blog/posts/{slug}.
Available categories
View all 7 category slugs
View all 7 category slugs
category query param.| Slug | Name |
|---|---|
markets | Markets |
corporate-news | Corporate News |
economy | Economy |
industries | Industries |
technology | Technology |
personal-finance | Personal Finance |
product-updates | Product Updates |
Available tags
View all 13 tag slugs
View all 13 tag slugs
tag query param.| Slug | Name |
|---|---|
stocks | Stocks |
crypto | Crypto |
exchange-rate | Exchange Rate |
inflation | Inflation |
cbn | CBN |
earnings | Earnings |
energy | Energy |
banking | Banking |
fintech | Fintech |
t-bills | T-Bills |
fg | FG |
dividends | Dividends |
ngn-market | NGN Market |
Filtering by company
Thecompany param takes the NGX stock ticker symbol of a listed company. For example, use DANGCEM for Dangote Cement, MTNN for MTN Nigeria, GTCO for Guaranty Trust, or BUACEMENT for BUA Cement. The lookup is case-insensitive, so dangcem and DANGCEM return the same posts.
If you are not sure what a company’s ticker is, you can fetch the full list of valid symbols from GET /companies/identifiers.
Combining filters
Filters compose, so you can ask for posts in the markets category that are also tagged to DANGCEM:curl "https://api.ngnmarket.com/v1/blog/posts?category=markets&company=DANGCEM" \
-H "Authorization: Bearer ngm_live_YOUR_KEY"
const url = new URL('https://api.ngnmarket.com/v1/blog/posts');
url.searchParams.set('category', 'markets');
url.searchParams.set('company', 'DANGCEM');
const res = await fetch(url, {
headers: { Authorization: 'Bearer ngm_live_YOUR_KEY' },
});
const { data } = await res.json();
import requests
res = requests.get(
'https://api.ngnmarket.com/v1/blog/posts',
params={'category': 'markets', 'company': 'DANGCEM'},
headers={'Authorization': 'Bearer ngm_live_YOUR_KEY'},
)
data = res.json()['data']
Authorizations
Pass your API key as a Bearer token: Authorization: Bearer ngm_live_YOUR_KEY.
Generate keys at ngnmarket.com/dashboard/developer.
Query Parameters
Page number. Defaults to 1.
x >= 1Filter by category slug. One of: markets, corporate-news, economy, industries, technology, personal-finance, product-updates.
markets, corporate-news, economy, industries, technology, personal-finance, product-updates "markets"
Filter by an NGX-listed company's stock ticker symbol, for example DANGCEM for Dangote Cement, MTNN for MTN Nigeria, or GTCO for Guaranty Trust. The lookup is case-insensitive and matches the post's companies field exactly, so there is no fuzzy matching. You can fetch the full list of valid symbols from GET /companies/identifiers.
"DANGCEM"
Filter by tag slug. One of: stocks, crypto, exchange-rate, inflation, cbn, earnings, energy, banking, fintech, t-bills, fg, dividends, ngn-market.
stocks, crypto, exchange-rate, inflation, cbn, earnings, energy, banking, fintech, t-bills, fg, dividends, ngn-market "banking"