Pricing
Start free, with no sign up. When you ship, pick a plan by how many requests you need. Every paid plan includes every dataset, field and format.
Starter
For one product in production.
₦5,000/ month
₦166.67 per 1,000 requests if you use the full allowance
Subscribe- 1,000 requests a day
- 60 requests a minute
- Up to 500 records per page
- Email support
Growth
For a product that has outgrown Starter.
₦15,000/ month
₦200.00 per 1,000 requests if you use the full allowance
Subscribe- 2,500 requests a day
- 120 requests a minute
- Up to 500 records per page
- Email support
BusinessBest value
For several products or heavier traffic.
₦20,000/ month
₦133.33 per 1,000 requests if you use the full allowance
Subscribe- 5,000 requests a day
- 300 requests a minute
- Up to 500 records per page
- Priority support by email
Use the API without a key or an account: 20 requests a day, 5 a minute, JSON and core fields from the free datasets, which include states, LGAs, institutions, banks, phone prefixes and public holidays. That is enough to try the endpoints and see the data. Wards, polling units, health facilities, boundaries, population, exchange rates, crypto prices and other formats come with a plan.
Universities, research institutes and non-profits get every dataset, field and format, priced per project: 2,500 requests a day, 120 a minute, and bulk export by arrangement. Tell us about your project.
Prices don't include tax. Pay monthly by card, bank transfer or USSD through Paystack. Cancel any time from your account page.
Which plan fits?
Each page of results is one request, so fetching all 774 LGAs at 500 per page takes two.
Every paid plan includes
Every dataset
Including the ones that need a key: wards, polling units, electoral areas, health facilities, LGA boundaries, population, exchange rates and crypto prices.
Every field
Coordinates, centroids, sources and retrieval dates, facility ownership and level, institution websites.
Four formats
JSON, CSV, GeoJSON and Parquet from the same endpoints, up to 500 records per page.
Change feed and history
See every change to a record and keep your own copy up to date.
Provenance
Source, method, verifier and version on every record, and a sources list to cite.
Published uptime
We check the API every minute and show 90 days of results on the status page.
What people build with it
Address and location forms
State, LGA and ward pickers that stay current, and /v1/locate to turn a coordinate into an LGA.
Health and service finders
Over 60,000 health facilities in every state, with ownership and level, and coordinates for most of them.
Onboarding and KYC checks
Check that a customer's state and LGA are real and match each other.
Research and reporting
Population by state and LGA, joined to boundaries, exported as Parquet or GeoJSON.
Compare plans in detail
| Limit | No key | Starter | Growth | Business |
|---|---|---|---|---|
| Rate limits | ||||
| Key required | No | Yes | Yes | Yes |
| Requests per minute | 5 | 60 | 120 | 300 |
| Requests per day | 20 | 1,000 | 2,500 | 5,000 |
| Maximum page size | 50 | 500 | 500 | 500 |
| Datasets | ||||
| LGA boundaries | No | Yes | Yes | Yes |
| Wards | No | Yes | Yes | Yes |
| Health facilities | No | Yes | Yes | Yes |
| Population | No | Yes | Yes | Yes |
| Senatorial districts | No | Yes | Yes | Yes |
| Federal constituencies | No | Yes | Yes | Yes |
| Polling units | No | Yes | Yes | Yes |
| Exchange rates | No | Yes | Yes | Yes |
| Crypto prices | No | Yes | Yes | Yes |
| Geopolitical zones | Yes | Yes | Yes | Yes |
| States | Yes | Yes | Yes | Yes |
| Local government areas | Yes | Yes | Yes | Yes |
| Tertiary institutions | Yes | Yes | Yes | Yes |
| Banks | Yes | Yes | Yes | Yes |
| Phone prefixes | Yes | Yes | Yes | Yes |
| Public holidays | Yes | Yes | Yes | Yes |
| Countries | Yes | Yes | Yes | Yes |
| Airports | Yes | Yes | Yes | Yes |
| Fields | ||||
| State and LGA centroids | Withheld | Included | Included | Included |
| Source and retrieval date | Withheld | Included | Included | Included |
| Institution website and founding year | Withheld | Included | Included | Included |
| Identifiers, names and codes | Included | Included | Included | Included |
| Formats | ||||
| JSON | Yes | Yes | Yes | Yes |
| CSV | No | Yes | Yes | Yes |
| GeoJSON | No | Yes | Yes | Yes |
| Parquet | No | Yes | Yes | Yes |
| Changes | ||||
| Change feed | Yes | Yes | Yes | Yes |
| Record history | No | Yes | Yes | Yes |
Using the data
- Storing results
- Allowed, for your own application or analysis.
- Redistribution
- Not allowed. You cannot resell, sublicense or mirror the data. See the terms.
- Bulk extraction
- Not allowed through systematic requests. Ask about bulk export on the Research plan instead.
- Over the limit
- You get a
429with aRetry-Afterheader saying when to try again. You are never charged for it.
Questions
Can't find your answer? Email hello@timileyin.dev.
Can I use the API without a plan?
Yes, to try it out. Without a key you get 20 requests a day, JSON only and the core fields, with no support. For a live product you need a plan.
What does a plan add?
Higher rate limits, the datasets that need a key (wards, polling units, electoral areas, health facilities, LGA boundaries, population, exchange rates and crypto prices), every field including sources, and CSV, GeoJSON and Parquet.
What counts as a request?
Every call to /v1 counts, including each page of a list. Calls to /healthz and the status endpoints are free.
How do I see how many requests I have left?
Every response carries RateLimit headers with your limit, how many requests are left and when it resets.
What happens when I hit a limit?
You get a 429 response with a Retry-After header saying how long to wait. Daily limits reset at 00:00 UTC. You are never charged for refused requests.
Can I store the data?
Yes, for your own application or analysis.
Can I redistribute the data?
No. You can't resell, share, mirror or bulk-copy the data, or use it to build another dataset or API. The compiled dataset, codes and API belong to Shipyard Systems.
How do I subscribe?
Create an account, choose a plan on your account page and pay by card, bank transfer or USSD through Paystack. Your plan starts as soon as the payment goes through and renews each month.
How do I change or cancel a plan?
Both are on your account page. A new plan starts straight away. If you cancel, you keep your plan until the end of the month you paid for, then move to the free plan.
Is there an SLA?
Not yet. We check uptime every minute and publish 90 days of results on the status page.
How do I revoke a key?
From your account page. It stops working straight away.