API Reference
All Dpaverify verification endpoints, records management, and billing.
Overview
All endpoints are under https://api.dpaverify.com/v1. Requests and responses are JSON. Every call requires a Bearer API key.
Running a Verification
Every verification type shares the same URL shape:
POST /v1/verifications/{apiCode}| API Code | Check |
|---|---|
identity.national-id | National ID, alien ID or passport (IPRS) |
identity.driving-licence | Driving licence & PSV badge (NTSA) |
vehicle.registration | Vehicle records by number plate (NTSA) |
tax.kra-pin | KRA PIN by national ID number |
business.registration | Company / business name (BRS) |
phone.ownership | Safaricom number registered to an ID |
phone.sim-swap | Recent SIM swap on a Safaricom number |
phone.age-on-network | How long a Safaricom number has been active |
background.police-clearance | Certificate of good conduct (DCI) |
Verification Response Shape
Every verification returns the same envelope:
{
"id": "cmhd2k7q80001s60h3x9f2a1b",
"api": "identity.national-id",
"status": "COMPLETED",
"environment": "LIVE",
"result": { "found": true, ... },
"error": null,
"cost": "50",
"latencyMs": 412,
"createdAt": "2026-11-02T10:00:00.000Z",
"completedAt": "2026-11-02T10:00:00.412Z"
}| Field | Description |
|---|---|
status | COMPLETED (includes not-found answers), FAILED (source error, refunded), PENDING |
result.found | false when the source holds no matching record — still COMPLETED, still charged |
cost | KES charged as a decimal string; "0" for test keys and failed calls |
error | Set only when status is FAILED; includes code and message |
Try it Live
Open the API Playground to test any endpoint interactively with your API key — no separate client needed.
Import into Postman
Download Postman CollectionImport into Postman: File → Import and drop the downloaded file. Your
api_key variable is pre-wired — set it once and all requests inherit it.