Unified Identity Verification
Securely verify identities across African borders using our sovereign data rails. Integrate biometric, corporate, and financial records in a single request.
NIN Verification API
The NIN Verification API enables you to verify Nigerian National Identity Numbers (NIN) in real-time. LumiID offers two service tiers:
- Basic: For quick identity validation (minimal fields, faster).
- Premium: For detailed verification with full NIN record including photo and address.
All endpoints require authentication using your Bearer token.
Base URL: https://api.lumiid.com/
Authentication
Include your API key in the header of every request:
Authorization: Bearer YOUR_API_KEY
1. NIN Basic Verification
This endpoint provides essential identity data such as full name, date of birth, gender, and verification status. Itβs ideal for services that only need to confirm if an NIN is valid.
Endpoint: POST /api/v1/ng/nin-basic
Authorization: Bearer Token
Content-Type: application/json
Request Body:
{
"nin": "89184072280"
}
Success Response:
{
"success": true,
"code": "NIN_VERIFIED",
"message": "NIN verification successful",
"summary": {
"verified": true,
"verification_type": "NIN",
"provider": "LumiID",
"confidence_score": 1.0
},
"data": {
"nin": "89184072280",
"firstname": "Bunch",
"lastname": "Dillon",
"middlename": "",
"phone": "08000000000",
"gender": "m",
"photo": "/9j/4AAQSkZJRgABAgAAAQABAAD..."
},
"meta": {
"request_id": "req_a3f9c21d9b4e",
"timestamp": "2025-12-27T17:50:46.123456Z"
}
}
Error Response:
{
"success": false,
"code": "NIN_VERIFICATION_FAILED",
"message": "Invalid NIN or verification failed",
"summary": {
"verified": false,
"verification_type": "NIN",
"provider": "LumiID",
"confidence_score": 0.0
},
"data": null,
"meta": {
"request_id": "req_b91d82fa13c4",
"timestamp": "2025-12-27T17:51:02.902134Z"
}
}
π‘ Tip: Use this endpoint when you only need to confirm identity validity, not full personal details.
Example Integration
Python Example
import requests
url = "https://api.lumiid.com/v1/ng/nin-basic/"
headers = {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
}
payload = {
"nin": "89184072280"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
JavaScript Example
fetch("https://api.lumiid.com/v1/ng/nin-basic/", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({
nin: "89184072280"
})
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
Service Comparison
| Feature | NIN Basic | NIN Premium |
|---|---|---|
| Full Name, Gender, DOB | βοΈ | βοΈ |
| Address & Contact | β | βοΈ |
| Photo | βοΈ | βοΈ |
| Turnaround Speed | Fast | Moderate |
Common Error Codes
- 400: Missing or invalid NIN field
- 401: Invalid or expired API key
- 404: Record not found
- 500: Internal server error (retry later)
Important Notes
- All data is retrieved directly from the National Identity Management Commission (NIMC) database.
- Use HTTPS endpoints only β requests over HTTP will be rejected.
- Each request consumes one credit from your LumiID wallet.
- Ensure you handle user data responsibly and comply with NDPR regulations.