facts.ng
v1 Public No auth required

Developer API

A simple, read-only JSON API exposing curated data about Nigeria. All endpoints live under https://next.facts.ng/api/* and respond to GET requests.

Quickstart

Make your first request from any terminal — no signup, no API key.

cURL
curl https://next.facts.ng/api/states

Authentication

No authentication is required. The API is open and read-only.

Please be considerate with your usage — requests are throttled per IP to keep the service responsive for everyone.

Errors

Standard HTTP status codes are used to indicate success or failure.

Status Meaning
200
OK
Request was successful.
404
Not Found
Resource (e.g. state slug) does not exist.
429
Too Many Requests
Rate limit exceeded. Retry after the time given in the Retry-After header.
4xx
Client Error
Something is wrong with your request.
5xx
Server Error
Something is wrong on our end.

Reference

GET /states

Returns a summary of all the Nigerian states.

cURL
curl https://next.facts.ng/api/states
Example response
[
  {
    "id": "abia",
    "name": "Abia",
    "uri": "https://next.facts.ng/api/states/abia",
    "region": "South East",
    "capital": "Umuahia",
    "deputy": "Ude Oko Chukwu",
    "governor": "Alex Otti",
    "slogan": "God's Own State"
  },
  {
    "id": "adamawa",
    "name": "Adamawa",
    "uri": "https://next.facts.ng/api/states/adamawa",
    "region": "North East",
    "capital": "Yola",
    "deputy": "Kaletapwa Farauta",
    "governor": "Ahmadu Fintiri",
    "slogan": "Highest Peak Of The Nation"
  }
]
GET /states/{id}

Returns the full profile for a specific state. The {id} is the lowercased state slug — e.g. lagos, fct, akwa-ibom.

cURL
curl https://next.facts.ng/api/states/lagos
Example response
{
  "id": "lagos",
  "name": "Lagos",
  "uri": "https://next.facts.ng/api/states/lagos",
  "region": "South West",
  "capital": "Ikeja",
  "deputy": "Obafemi Hamzat",
  "governor": "Babajide Sanwo-Olu",
  "slogan": "Centre Of Excellence",
  "lgas": [
    "Agege", "Ajeromi-Ifelodun", "Alimosho", "Amuwo-Odofin",
    "Apapa", "Badagry", "Epe", "Eti-Osa", "Ibeju-Lekki",
    "Ifako-Ijaye", "Ikeja", "Ikorodu", "Kosofe",
    "Lagos Island", "Lagos Mainland", "Mushin", "Ojo",
    "Oshodi-Isolo", "Somolu", "Surulere"
  ],
  "towns": [
    "Ikeja", "Victoria Island", "Ikoyi", "Lekki",
    "Surulere", "Yaba", "Apapa", "Badagry",
    "Epe", "Ikorodu"
  ],
  "neighbours": ["ogun"]
}
GET /states/random

Returns a random selection of states. Useful for quizzes and homepage widgets.

Query parameters

Name Type Default Description
limit integer 4 Number of states to return. Clamped to the range 1–36.
cURL
curl https://next.facts.ng/api/states/random

With a custom limit (1–36):

cURL
curl 'https://next.facts.ng/api/states/random?limit=2'
Example response
[
  {
    "id": "kano",
    "name": "Kano",
    "uri": "https://next.facts.ng/api/states/kano",
    "region": "North West",
    "capital": "Kano",
    "deputy": "Aminu Abdussalam Gwarzo",
    "governor": "Abba Kabir Yusuf",
    "slogan": "Centre Of Commerce"
  },
  {
    "id": "rivers",
    "name": "Rivers",
    "uri": "https://next.facts.ng/api/states/rivers",
    "region": "South South",
    "capital": "Port Harcourt",
    "deputy": "Ngozi Odu",
    "governor": "Siminalayi Fubara",
    "slogan": "Treasure Base Of The Nation"
  }
]

Notes

  • lgas is the official list of Local Government Areas; towns is a curated list of notable towns and cities within the state.
  • neighbours is an array of state slugs (e.g. "ogun") you can pass back to /states/{id}.
  • region is the geopolitical zone (e.g. South West, North Central).
  • Responses are cached for up to 5 minutes; expect occasional staleness on freshly updated profiles.
  • CORS is enabled for all origins, so browser-based clients work out of the box.

Found a bug or missing field? Open an issue or reach out — this API is built in the open.