NGX-listed bond instruments
curl --request GET \
--url https://api.ngnmarket.com/v1/bonds \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.ngnmarket.com/v1/bonds"
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/bonds', 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/bonds",
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/bonds"
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/bonds")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ngnmarket.com/v1/bonds")
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": [
{
"id": 1,
"isin": "NG0000123456",
"name": "FGN Bond 2030",
"issuer": "Federal Government of Nigeria",
"type": "government",
"coupon": 12.5,
"issue_date": "2020-03-27",
"maturity_date": "2030-03-27",
"open_price": 98.5,
"created_at": "2024-01-15T08:00:00.000Z",
"updated_at": "2026-04-17T06:30:00.000Z"
}
],
"pagination": {
"page": 1,
"limit": 10,
"total": 84,
"pages": 9,
"has_next": true,
"has_prev": false
}
},
"meta": {
"plan": "starter",
"calls_used": 4821,
"calls_remaining": 95179,
"reset_at": "2026-05-15T23:57:00.000Z"
}
}Bond Endpoints
List Bonds
Retrieve a paginated list of NGX-listed bonds.
GET
/
bonds
NGX-listed bond instruments
curl --request GET \
--url https://api.ngnmarket.com/v1/bonds \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.ngnmarket.com/v1/bonds"
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/bonds', 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/bonds",
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/bonds"
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/bonds")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ngnmarket.com/v1/bonds")
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": [
{
"id": 1,
"isin": "NG0000123456",
"name": "FGN Bond 2030",
"issuer": "Federal Government of Nigeria",
"type": "government",
"coupon": 12.5,
"issue_date": "2020-03-27",
"maturity_date": "2030-03-27",
"open_price": 98.5,
"created_at": "2024-01-15T08:00:00.000Z",
"updated_at": "2026-04-17T06:30:00.000Z"
}
],
"pagination": {
"page": 1,
"limit": 10,
"total": 84,
"pages": 9,
"has_next": true,
"has_prev": false
}
},
"meta": {
"plan": "starter",
"calls_used": 4821,
"calls_remaining": 95179,
"reset_at": "2026-05-15T23:57:00.000Z"
}
}This endpoint returns a paginated list of bonds listed on the Nigerian Exchange (NGX). Each record includes the bond’s ISIN, issuer name, bond type, coupon rate, maturity date, and opening price. You can narrow results with optional search and type filters.
Results are sorted by bond type priority (Federal Government bonds first, then state, then corporate), then by maturity date ascending. This endpoint requires a Starter plan or higher.
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.
Required range:
x >= 1Number of bonds per page (1–100). Defaults to 50.
Required range:
1 <= x <= 100Filter by name, issuer, or ISIN. Case-insensitive, partial match.
Filter by bond classification.
Available options:
government, corporate