The AbiaGateway API
A clean, predictable REST API over Abia State’s official statistics. Every endpoint speaks JSON by default, supports CSV/XML/SDMX, and is authenticated with a single header.
Base URL: https://api.sdh.central.abiastatistics.com/v1 • Auth header: X-API-Key: your_key • Default format: JSON (add ?format=csv for CSV)
Authentication
Every request must include your API key in the X-API-Key header. Keys are issued instantly on registration and are scoped to your subscription tier.
Keep your key secret. Never expose it in client-side code or public repositories. For browser apps, proxy requests through your own backend, or use OAuth 2.0 (Professional+).
Core endpoints
Six endpoints cover discovery, search and metadata. All are GET except registration.
| Method | Endpoint | Description |
|---|---|---|
| GET | /v1/datasets | List all datasets (paginated) |
| GET | /v1/datasets/{id} | Retrieve a single dataset |
| GET | /v1/datasets/search | Full-text search across datasets |
| GET | /v1/organisations | Government organisations & MDAs |
| GET | /v1/topics | Browse by sector / topic |
| GET | /v1/stats | Gateway-wide statistics |
| POST | /v1/register | Register a developer account |
Pagination & filtering
List endpoints accept page, per_page (max 100), sector and format. Responses include a total and page for easy iteration.
Tip — iterate safely. Loop while page * per_page < total. Respect your tier’s rate limit by adding a short delay between pages, or request per_page=100 to minimise round-trips.
Errors & rate limits
The API uses conventional HTTP status codes. Errors return a JSON body with a machine-readable error and human-readable message.
| Status | Meaning | What to do |
|---|---|---|
200 | OK | Success |
400 | Bad request | Check your query parameters |
401 | Unauthorised | Missing or invalid API key |
403 | Forbidden | Dataset not in your tier |
404 | Not found | Unknown dataset / endpoint |
429 | Too many requests | Back off; check Retry-After |
Handling 429s. When rate-limited, the response includes a Retry-After header (seconds). Implement exponential backoff, or upgrade your plan for higher limits.
Build your first integration
Follow the step-by-step Quickstart, or jump straight in with a free key.
📚 Open the Quickstart