Logo Lanfrica

reality-farouqk/nigeria-tertiary-institutions-api

Domain:

educationdigital infrastructure

Record type:

datasetsoftware
Creator:
rea
Host:
Free, open REST API and dataset for every Nigerian university, polytechnic, and college of education — 752 institutions with faculties, departments, and course-of-study data. # Nigeria Tertiary Institutions API A free, open REST API and dataset covering every Nigerian **university**, **polytechnic**, and **college of education** — 752 institutions in total — including their faculties/schools/departments where publicly available. As far as we could find, there wasn't an existing open API for this — most "list of Nigerian universities" resources are static blog posts or PDFs that go stale within a year. This project exists to be the thing that's missing: current, structured, versioned, and free to self-host or build on. ``` GET /api/v1/institutions?type=university&state=Lagos GET /api/v1/institutions/ahmadu-bello-university-zaria GET /api/v1/schools?q=Engineering ``` ## Coverage | Type | Count | Federal | State | Private | |---|---|---|---|---| | Universities | 312 | 77 | 67 | 168 | | Polytechnics | 200 | 41 | 61 | 98 | | Colleges of education | 240 | 30 | 43 | 167 | | **Total** | **752** | | | | See `data/DATA_NOTES.md` for full sourcing, methodology, and known limitations (which institutions publish a formal faculty/school structure vs. which don't, why a handful of colleges of education were excluded, etc.) — read this before relying on the data for anything important. ## Quick start Requires Node.js 18+. ```bash git clone github.com cd nigeria-tertiary-institutions-api npm install npm start # builds db/institutions.sqlite from data/*.csv, then starts the API ``` The API is now running at `localhost`. No external database, no API keys, no config — the whole thing is a ~2 MB SQLite file built from the CSVs at startup. ```bash curl localhost ``` ### Development ```bash npm run build-db # rebuild db/institutions.sqlite from data/*.csv npm run dev # start with --watch (auto-restart on file changes) npm test # rebuild the db, then run the test suite ``` ## Hosting it This is deliberately a **statele …