Upcoming NGX public holidays
curl --request GET \
--url https://api.ngnmarket.com/v1/market/holidays \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.ngnmarket.com/v1/market/holidays"
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/market/holidays', 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/market/holidays",
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/market/holidays"
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/market/holidays")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ngnmarket.com/v1/market/holidays")
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": {
"holidays": [
{
"id": 3,
"date": "2026-06-12",
"name": "Democracy Day",
"created_at": "2026-01-10T09:00:00.000Z"
},
{
"id": 4,
"date": "2026-10-01",
"name": "Independence Day",
"created_at": "2026-01-10T09:00:00.000Z"
}
],
"count": 2
},
"meta": {
"plan": "free",
"calls_used": 1,
"calls_remaining": 9999,
"reset_at": "2026-06-15T23:57:00.000Z"
}
}Market Endpoints
Market Holidays
List NGX public holidays when the exchange is closed.
GET
/
market
/
holidays
Upcoming NGX public holidays
curl --request GET \
--url https://api.ngnmarket.com/v1/market/holidays \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.ngnmarket.com/v1/market/holidays"
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/market/holidays', 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/market/holidays",
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/market/holidays"
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/market/holidays")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ngnmarket.com/v1/market/holidays")
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": {
"holidays": [
{
"id": 3,
"date": "2026-06-12",
"name": "Democracy Day",
"created_at": "2026-01-10T09:00:00.000Z"
},
{
"id": 4,
"date": "2026-10-01",
"name": "Independence Day",
"created_at": "2026-01-10T09:00:00.000Z"
}
],
"count": 2
},
"meta": {
"plan": "free",
"calls_used": 1,
"calls_remaining": 9999,
"reset_at": "2026-06-15T23:57:00.000Z"
}
}Returns the public holidays that the NGX is closed for, as maintained by the NGN Market team. These are the same holidays reflected in the
Each holiday object contains the
GET /market/status reason: holiday response.
By default only upcoming holidays (today or later) are returned. Pass upcoming=false to retrieve past holidays as well.
# Upcoming holidays (default)
curl "https://api.ngnmarket.com/v1/market/holidays" \
-H "Authorization: Bearer ngm_live_YOUR_KEY"
# All holidays including past
curl "https://api.ngnmarket.com/v1/market/holidays?upcoming=false" \
-H "Authorization: Bearer ngm_live_YOUR_KEY"
const res = await fetch('https://api.ngnmarket.com/v1/market/holidays', {
headers: { Authorization: 'Bearer ngm_live_YOUR_KEY' },
});
const { data } = await res.json();
// data.holidays — array of { id, date, name, created_at }
// data.count — total number of holidays returned
import requests
res = requests.get(
'https://api.ngnmarket.com/v1/market/holidays',
headers={'Authorization': 'Bearer ngm_live_YOUR_KEY'},
)
data = res.json()['data']
for h in data['holidays']:
print(h['date'], h['name'])
date in YYYY-MM-DD format and the name of the holiday. Use this list to pre-compute non-trading days in your application rather than polling the status endpoint on each day.Authorizations
Pass your API key as a Bearer token: Authorization: Bearer ngm_live_YOUR_KEY.
Generate keys at ngnmarket.com/dashboard/developer.
Query Parameters
Set to false to include past holidays. Defaults to true.
Maximum number of results to return (1–100). Defaults to 50.
Required range:
1 <= x <= 100