Every record has a source
INEC, the Constitution, the CBN, the NCC and the Official Gazette, each recorded with URL, date and licence. Values from a single source are flagged. See the sources.
Data version 2026-10-16 · every row linked to its official source
npm install naija-dataimport { states, lgas, isValidNuban, parsePhone } from "naija-data";
lgas("Lagos").map((l) => l.name); // ["Agege", "Ajeromi/Ifelodun", ...]isValidNuban("0000014579", "011"); // trueparsePhone("0803 123 4567")?.e164; // "+2348031234567"pip install naija-dataimport naija_data as ng
[l.name for l in ng.lgas("Lagos")] # ['Agege', 'Ajeromi/Ifelodun', ...]ng.is_valid_nuban("0000014579", "011") # Trueng.parse_phone("0803 123 4567").e164 # '+2348031234567'go get github.com/asgatcreation/naija-data/golgas, _ := naija.LGAs("Lagos")ok, _ := naija.IsValidNUBAN("0000014579", "011") // truenaija.ParsePhone("0803 123 4567").E164 // "+2348031234567"curl https://naija-data-api.asgatcreation.workers.dev/v1/states/lagos/lgasFree, no key, CORS open: call it straight from a web page. All endpoints.
Download the CSV files for Excel, Google Sheets, a database, PHP, Java, Flutter or any other tool. Use the data files.
Every record has a source
INEC, the Constitution, the CBN, the NCC and the Official Gazette, each recorded with URL, date and licence. Values from a single source are flagged. See the sources.
Errors in official lists, caught
Cross-checking found a duplicated INEC ward, typos in official names, duplicated constituency codes and banks sharing a code. Each is documented. Coverage and gaps.
Same answers everywhere
Python, JavaScript, Go and the API come from one dataset, and over 13,000 shared tests check that they agree, down to the search scores.
Free and open
Code under MIT, data under CC BY 4.0: use it in commercial apps, just give credit. No API key, no sign-up.
Created and maintained by Akanji Oluwaseun Gabriel (@asgatcreation). Found a mistake? Report it; corrections ship as patch releases.