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"
}
}Paginated blog post list
Returns a paginated list of published NGN Market blog posts sorted by publication date (newest first). Each page contains up to 20 posts.
Filter the feed using any combination of category, company, and tag query parameters. All filters are optional and combinable (e.g. ?category=markets&company=DANGCEM).
Plan required: Free
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"
}
}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"