Secure access to candidate and practitioner records with robust authentication and rate limiting
https://app.chprbn.gov.ng/api/v1/mobile/lookup/
The Lookup API provides secure access to candidate and practitioner records with robust authentication, rate limiting, and permission-based access control.
All API requests require a valid API key sent in the request headers.
API-KeyX-Secret-KeySecret-KeyAPI requests are rate-limited per API key based on your subscription plan. Rate limits reset every minute (60-second windows).
| Plan | Requests per Minute | Burst Allowance |
|---|---|---|
| Basic | 60 | 10 |
| Professional | 300 | 50 |
| Enterprise | 1000 | 200 |
Retrieve a single candidate record by indexing number or ID.
| Parameter | Type | Required | Description |
|---|---|---|---|
| identifier | string | Yes | Candidate indexing number or ID |
| include_photo | boolean | No | Include base64 encoded photo |
candidate.read - Basic candidate datacandidate.photo - Include passport photoRetrieve a single practitioner record by license number or ID.
| Parameter | Type | Required | Description |
|---|---|---|---|
| identifier | string | Yes | License number or practitioner ID |
| include_photo | boolean | No | Include passport photo |
| include_permissions | boolean | No | Include user permissions |
Search for candidates using multiple criteria.
| Parameter | Type | Description |
|---|---|---|
| firstname | string | First name (partial match) |
| surname | string | Surname (partial match) |
| indexing | string | Exact indexing number |
| cadre_id | integer | Cadre ID |
| institution_id | integer | Institution ID |
| gender | string | Gender (Male/Female) |
| limit | integer | Results limit (max 100, default 50) |
Search for practitioners using multiple criteria.
| Code | Description | Common Causes |
|---|---|---|
| 200 | Success | Request completed successfully |
| 400 | Bad Request | Invalid parameters or request format |
| 401 | Unauthorized | Invalid or missing API key |
| 403 | Forbidden | Insufficient permissions |
| 404 | Not Found | Resource not found |
| 429 | Too Many Requests | Rate limit exceeded |
| 500 | Internal Server Error | Server-side error |
| Error Message | Solution |
|---|---|
| "API key is required" | Add X-API-Key header to your request |
| "Invalid API key" | Check your API key value |
| "API key has expired" | Request a new API key |
| "IP address not allowed" | Contact support for IP whitelisting |
| "Rate limit exceeded" | Wait for rate limit reset or upgrade plan |
| "Insufficient permissions" | Contact support for permission upgrade |
The API uses a granular permission system to control access to different endpoints and data types.
| Permission | Description | Endpoints |
|---|---|---|
* |
Full access to all endpoints | All |
candidate.read |
Get single candidate | /candidate/{identifier} |
candidate.search |
Search candidates | /candidates/search |
candidate.photo |
Access candidate photos | include_photo parameter |
practitioner.read |
Get single practitioner | /practitioner/{identifier} |
practitioner.search |
Search practitioners | /practitioners/search |
practitioner.photo |
Access practitioner photos | include_photo parameter |
practitioner.permissions |
Access practitioner permissions | include_permissions parameter |
Use these endpoints to test rate limiting functionality:
Use these test identifiers for development and testing:
CBT/2024/12345CBT/2024/67890CBT/2024/11111LIC123456LIC789012LIC555666status field in responses