Verified public data, served as an API.
Nigeria's states, LGAs, wards, polling units, health facilities, banks, phone prefixes and public holidays, plus exchange rates, crypto prices, countries and airports, from one REST API. The reference data is checked against official sources, and each record tells you where it came from.
- LGAs
- 20
- Wards
- 245
- Health facilities
- 2,798
- Institutions
- 72
- Population
- 13,491,804 2022 estimate
{ "capital": "Ikeja", "code": "NG-LA", "id": "state_01M3MZBDZ0FRB1W27FX3HGFE3P", "name": "Lagos", "updated_at": "2026-09-28T21:40:40.889536Z", "verification": { "method": "official_document", "retrieved_at": "2026-09-06", "source_id": "src_01M3MZBDY2QZF6NJ6D0TVR8XNG", "status": "verified", "verified_at": "2026-09-28T21:40:40.889536+00:00", "verified_by": "timileyin", "version": 1 }, "zone": { "id": "zone_01M3MZBDV4T086WN3E0KEZ42G2", "name": "South West" } }
Verified
See who checked each record, how they checked it and when.
Current
Each record shows when we last pulled it from its source, and every past version.
Connected
Go from a state to its LGAs, wards, facilities and population without joining tables yourself.
Available
We check the API every minute. You can see every result on the status page.
In your format
Ask for JSON, CSV, GeoJSON or Parquet from the same URL.
Documented
An OpenAPI spec and examples you can copy in cURL, JavaScript, Python and Ruby.
Datasets
| Dataset | Records | Verified | Access |
|---|---|---|---|
| Geopolitical zones | 6 | Free | |
| States | 37 | Free | |
| Local government areas | 774 | Free | |
| LGA boundaries | 774 | Key | |
| Wards | 8,795 | Key | |
| Tertiary institutions | 447 | Free | |
| Health facilities | 60,966 | Key | |
| Population | 810 | Key | |
| Banks | 288 | Free | |
| Phone prefixes | 40 | Free | |
| Public holidays | 24 | Free | |
| Senatorial districts | 109 | Key | |
| Federal constituencies | 360 | Key | |
| Polling units | 176,846 | Key | |
| Countries | 249 | Free | |
| Airports | 8,800 | Free | |
| Exchange rates | 62,128 | Live | Key |
| Crypto prices | 50 | Live | Key |
Try it now
{
"capital": "Ikeja",
"code": "NG-LA",
"id": "state_01M3MZBDZ0FRB1W27FX3HGFE3P",
"name": "Lagos",
"updated_at": "2026-09-28T22:40:40.889536+01:00",
"verification": {
"method": "official_document",
"retrieved_at": "2026-09-06",
"source_id": "src_01M3MZBDY2QZF6NJ6D0TVR8XNG",
"status": "verified",
"verified_at": "2026-09-28T21:40:40.889536+00:00",
"verified_by": "timileyin",
"version": 1
},
"zone": {
"id": "zone_01M3MZBDV4T086WN3E0KEZ42G2",
"name": "South West"
}
}
If you add a key, it is only used for this request. We don't save it.
How trueset works
Sources
- INEC
- GRID3 Nigeria
- OCHA
- National Population Commission
- NCC
Verification
- Validation
- Cross-referencing
- Deduplication
- Standard names and codes
- Versioning
trueset
- Verified datasets
- REST API
- Change feed
- Status page
Your application
- JSON
- CSV
- GeoJSON
- Parquet
Examples
List the LGAs in a state, two per page.
curl "https://trueset.timileyin.dev/v1/states/NG-LA/lgas?limit=2"
Response
{ "data": [ { "code": "NG025001", "id": "lga_01M3MZBEBF38X6KGEHRKRJ402V", "name": "Agege", "state": { "code": "NG-LA", "id": "state_01M3MZBDZ0FRB1W27FX3HGFE3P", "name": "Lagos" }, "updated_at": "2026-09-28T22:40:41.002811+01:00", "verification": { "method": "cross_referenced", "retrieved_at": "2026-09-06", "source_id": "src_01M3MZBE2TYZ54M5788NA0F09V", "status": "verified", "verified_at": "2026-09-28T21:40:41.002811+00:00", "verified_by": "timileyin", "version": 1 } }, { "code": "NG025002", "id": "lga_01M3MZBEBGEP51RX5HNM39J6Q5", "name": "Ajeromi/Ifelodun", "state": { "code": "NG-LA", "id": "state_01M3MZBDZ0FRB1W27FX3HGFE3P", "name": "Lagos" }, "updated_at": "2026-09-28T22:40:41.002811+01:00", "verification": { "method": "cross_referenced", "retrieved_at": "2026-09-06", "source_id": "src_01M3MZBE2TYZ54M5788NA0F09V", "status": "verified", "verified_at": "2026-09-28T21:40:41.002811+00:00", "verified_by": "timileyin", "version": 1 } } ], "next": "lga_01M3MZBEBGEP51RX5HNM39J6Q5" }
Get a bank and its code. Use ?code= or ?q= on /v1/banks to search.
curl "https://trueset.timileyin.dev/v1/banks/access-bank"
Response
{ "category": "bank", "code": "044", "id": "bank_01M3SCB7DZD3HQAFHH6KVMDA4A", "name": "Access Bank", "slug": "access-bank", "updated_at": "2026-09-30T15:44:03.720808+01:00", "verification": { "method": "community", "retrieved_at": "2026-09-30", "source_id": "src_01M3SCB7DDFFWH3R72459JNKJR", "status": "verified", "verified_at": "2026-09-30T14:44:03.720808+00:00", "verified_by": "timileyin", "version": 1 } }
Find the network a number was issued on. A ported number still reports its original network.
curl "https://trueset.timileyin.dev/v1/phone-prefixes/lookup?number=08031234567"
Response
{ "id": "pfx_01M3SCB7PMJ3FVVGH34V2KVGRV", "international": "+2348031234567", "number": "08031234567", "operator": "MTN", "prefix": "0803", "updated_at": "2026-09-30T15:44:03.534674+01:00", "verification": { "method": "official_document", "retrieved_at": "2026-09-30", "source_id": "src_01M3SCB7P21BGCN694WX0T3NDH", "status": "verified", "verified_at": "2026-09-30T14:44:03.534674+00:00", "verified_by": "timileyin", "version": 1 } }
List a year's public holidays. Dates marked tentative have not been announced yet. The response is shortened to the first holiday.
curl "https://trueset.timileyin.dev/v1/holidays?year=2026"
Response
{ "data": [ { "date": "2026-01-01", "id": "hol_01M3SCB7VNA659KXTQKQT006ZH", "kind": "fixed", "name": "New Year's Day", "tentative": false, "updated_at": "2026-09-30T15:44:03.627037+01:00", "verification": { "method": "official_document", "retrieved_at": "2026-09-30", "source_id": "src_01M3SCB7VJ2FWYS2D0X73S75K7", "status": "verified", "verified_at": "2026-09-30T14:44:03.627037+00:00", "verified_by": "timileyin", "version": 1 } } ] }
Convert between currencies at the day's central rate. Add date= to use a past rate. Key
curl -H "Authorization: Bearer $TRUESET_KEY" \ "https://trueset.timileyin.dev/v1/exchange-rates/convert?from=USD&to=NGN&amount=100"
Response
{ "amount": 100, "date": "2026-09-29", "from": "USD", "rate": 1329.9737, "result": 132997.37, "to": "NGN" }
Get a coin's price in US dollars and naira. Key
curl -H "Authorization: Bearer $TRUESET_KEY" \ "https://trueset.timileyin.dev/v1/crypto/prices/BTC"
Response
{ "change_24h_percent": -0.16402, "market_cap_usd": 1681074704889, "name": "Bitcoin", "price_ngn": 111097658, "price_usd": 83687, "rank": 1, "symbol": "BTC", "updated_at": "2026-09-30T15:52:53.038476+01:00" }