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

ParamTypeRequiredDescription
acc_nostringyes10-digit Nigerian account number
bankstringno*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

StatusMeaning
400Invalid account number, or bank couldn't be guessed.
401Missing or invalid API key.
404Bank name fragment didn't match anything.
429Daily rate limit exceeded (free tier: 100/day).
502Upstream 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.