API Reference
Everything you need to integrate nuAlt in under 5 minutes.
Authentication
All requests require your API key in the Authorization header.
Authorization: Bearer nualt_yourkeyhere
Get a free key at the dashboard — instant, no credit card.
Base URL
https://api.nualt.app/v1
Endpoints
Resolve account GET /resolve
Returns the account holder name for a Nigerian NUBAN account.
Query parameters
| Param | Type | Required | Description |
|---|---|---|---|
acc_no | string | yes | 10-digit Nigerian account number |
bank | string | no* | Bank code (e.g. 100004) or name fragment (e.g. opay). If omitted, the API will guess the bank automatically. |
* Providing bank is faster and recommended.
Example request
# curl curl "https://api.nualt.app/v1/resolve?acc_no=0123456789&bank=100004" \ -H "Authorization: Bearer nualt_yourkey"
Example response (200)
{
"ok": true,
"bank": { "code": "100004", "name": "Opay" },
"result": [{
"account_name": "JANE DOE",
"account_number": "0123456789",
"bank_code": "100004"
}]
}
Error responses
| Status | Meaning |
|---|---|
400 | Invalid account number, or bank couldn't be guessed. |
401 | Missing or invalid API key. |
404 | Bank name fragment didn't match anything. |
429 | Daily rate limit exceeded (free tier: 100/day). |
502 | Upstream NUBAN switch failed or returned no match. |
List banks GET /banks
Returns all 517 supported Nigerian banks, optionally filtered.
curl "https://api.nualt.app/v1/banks?q=opay" \ -H "Authorization: Bearer nualt_yourkey"
{
"count": 1,
"query": "opay",
"banks": [{ "bank_name": "Opay", "code": "100004" }]
}
Rate limits
The free tier allows 100 lookups per day per API key (resets at 00:00 UTC). If you exceed the limit, you'll get 429 Too Many Requests. Your dashboard shows current usage.
Code samples
JavaScript (fetch)
const r = await fetch( "https://api.nualt.app/v1/resolve?acc_no=0123456789&bank=100004", { headers: { Authorization: "Bearer nualt_yourkey" } } ); const { result } = await r.json(); console.log(result[0].account_name);
Python (requests)
import requests r = requests.get( "https://api.nualt.app/v1/resolve", params={"acc_no": "0123456789", "bank": "100004"}, headers={"Authorization": "Bearer nualt_yourkey"}, ) data = r.json() print(data["result"][0]["account_name"])
Node.js (axios)
const axios = require("axios"); const { data } = await axios.get( "https://api.nualt.app/v1/resolve", { params: { acc_no: "0123456789", bank: "100004" }, headers: { Authorization: "Bearer nualt_yourkey" }, } ); console.log(data.result[0].account_name);
PHP (cURL)
$ch = curl_init("https://api.nualt.app/v1/resolve?acc_no=0123456789&bank=100004"); curl_setopt($ch, CURLOPT_HTTPHEADER, ["Authorization: Bearer nualt_yourkey"]); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $res = json_decode(curl_exec($ch), true); echo $res['result'][0]['account_name'];
Need help?
Open an issue or email hello@nualt.app.