EDTEF for developers
Open data for Nigerian education
Start with a verified directory of Nigerian secondary schools. Free to use, with a free API key you can get in a minute.
https://api.edtef.org/public/directory/v1/schools
Verified by people
Every school is checked by the EDTEF team, by phone, a visit, a state ministry list or official documents, before it's published.
Nigeria-wide
All 36 states and the FCT, with LGA, town, ownership and proprietor. It grows as we verify more schools.
Open licence
CC BY 4.0: use it for anything, including commercially, with credit to “EDTEF school directory (edtef.org)”.
Free plan
10 requests a second and 10,000 a day per key. Need more? Tell us what you're building.
Quick start
Three steps to your first school
- 1. Get a key. Fill in the form, confirm the code we email you, and copy your key.
- 2. Send it in the
x-api-keyheader. Every request needs it, except the OpenAPI document. - 3. Read the results. Lists come back as
data,meta(total, page) andlinks(next, prev). Errors always look like{"error": {"code", "message"}}.
curl "https://api.edtef.org/public/directory/v1/schools?state=kwara&ownership=state" \
-H "x-api-key: YOUR_KEY"Get a free API key
Takes a minute. 10 requests a second, 10,000 a day.
Endpoints
School directory v1
Base URL: https://api.edtef.org/public
| GET | /directory/v1/schools | List and search schools. Filter by state, LGA, ownership, gender, boarding; page through results. |
| GET | /directory/v1/schools/{id} | One school by its ID. |
| GET | /directory/v1/states | The 36 states and the FCT, with school counts. |
| GET | /directory/v1/schools.csv | Everything as CSV, for spreadsheets. |
| GET | /directory/v1/openapi.json | The OpenAPI document, for code generators. No key needed. |
Stability
Breaking changes only ship in a new version (v2). We keep old versions running for at least 12 months after a new one, and email every key holder before anything changes.
Fair use
Cache responses where you can; lists change at most a few times a day. Hitting a limit returns 429; back off and retry.
Bulk data
Need everything at once? schools.csv returns the whole directory in one call.