GET
Verify a Kenyan national ID number and fetch the holderβs details, with per-field match flags.
/api/v1/ke/kyc/idHeaders
| Header | Required | Description |
|---|---|---|
Authorization | Yes | Your appβs secret key, sent as-is β not Bearer. |
AppId | Yes | The App ID from your dashboard. |
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The national ID number. |
Response
Returns anentity object with the holderβs record and per-field match booleans.
Errors
| Code | Meaning |
|---|---|
400 | Bad request β a required parameter is missing or malformed. |
401 | Unauthorized β check your key and AppId (no Bearer prefix). |
402 | Insufficient wallet balance. Fund your wallet. |
404 | No record found for the supplied identifier. |
424 | The upstream source was unavailable β retry shortly. |
429 | Too many requests β back off and retry. |
curl --request GET \
"https://api.dojah.io/api/v1/ke/kyc/id?id=12345678" \
-H "Authorization: {{secret_key}}" \
-H "AppId: {{app_id}}"
const params = new URLSearchParams({
"id": "12345678",
});
const url = "https://api.dojah.io/api/v1/ke/kyc/id?" + params;
const res = await fetch(url, {
headers: {
Authorization: process.env.DOJAH_SECRET_KEY,
AppId: process.env.DOJAH_APP_ID,
},
});
const data = await res.json();
import os, requests
res = requests.get(
"https://api.dojah.io/api/v1/ke/kyc/id",
headers={
"Authorization": os.environ["DOJAH_SECRET_KEY"],
"AppId": os.environ["DOJAH_APP_ID"],
},
params={ "id": "12345678" },
)
data = res.json()
{
"entity": {
"date_of_birth": "1996-02-21",
"first_name": "John",
"gender": "M",
"id": "123456789",
"is_date_of_birth_match": true,
"is_first_name_match": true,
"is_gender_match": true,
"is_last_name_match": true,
"is_middle_name_match": true,
"last_name": "Musa",
"middle_name": "Doe"
}
}