Peleza β€” Trust built on data
πŸ‡°πŸ‡ͺ Kenya
On this page

Motor Vehicle Records

Look up Kenyan motor vehicle records by plate via POST /api/v1/mvr/ke. NTSA (Malipo) is the primary source; CreditInfo is used only if Malipo never submitted a billable search. HTTP 200 and 404 are billable. Cached plates still bill as vehicle-plate. HTTP 503 (provider down / timeout) is not billed. Docs and sandbox use fictional sample plates only (e.g. KSA0001A) β€” never real registration numbers.

Test data

Sandbox test data

Use these values against the sandbox host. Click a value to copy it.

Sample plate (fictional)

Request

POST/api/v1/mvr/ke
{{baseUrl}}/api/v1/mvr/ke
HeaderTypeDescription
AuthorizationstringBearer YOUR_ACCESS_TOKEN from the OAuth client-credentials flow
Content-Typestringapplication/json

Body Parameters

ParameterTypeDescriptionRequired
plate_numberstringVehicle registration / plate (spaces stripped, e.g. KSA 0001A β†’ KSA0001A). Max 32 characters. Use sandbox sample plates only β€” do not use real registration numbers.required
consentbooleanMust be true β€” confirms data-subject consent to perform this verificationrequired
customer_numberstringOptional reference for your own tracking (max 255 characters)optional

Sample request & response

Sample request body for Sample request & response:

Sample dataSample request body
{
  "plate_number": "KSA0001A",
  "consent": true
}

Sample response for Sample request & response:

200 OKSample dataSample response
{
  "success": true,
  "response_code": 200,
  "message": "Vehicle Details Fetched Successfully",
  "country": "ke",
  "data": {
    "reg_no": "KSA0001A",
    "vehicle": {
      "make": "SAMPLE MOTORS",
      "model": "SAMPLE TRUCK XL",
      "color": "BLUE",
      "body_type": "LORRY/TRUCK",
      "vehicle_type": "MOTOR VEHICLE",
      "purpose": "COMMERCIAL",
      "registration_status": "REGISTERED",
      "registration_date": "2020-06-20",
      "year_of_manufacture": "2019",
      "chassis_number": "SAMPLECHASSIS000001",
      "engine_number": "SAMPLEENGINE000001",
      "engine_capacity": "3000",
      "fuel_type": "DIESEL",
      "passenger_capacity": "2",
      "gross_weight": null,
      "tare_weight": null,
      "logbook_number": "SAMPLELB0001",
      "logbook_serial": "202006201234567",
      "duty_status": "PAID",
      "duty_amount": "0",
      "flagged": null,
      "entry": {
        "number": "SAMPLEENTRY000001",
        "CPC": null
      }
    },
    "owner": {
      "first_name": "SAMPLE LOGISTICS LTD",
      "middle_name": null,
      "last_name": null,
      "full_name": "SAMPLE LOGISTICS LTD",
      "owner_type": "COMPANY",
      "id_number": "0001",
      "pin": "P000000001S",
      "phone": "0712345678",
      "address": "P.O. Box 100",
      "code": "00100",
      "town": "NAIROBI"
    },
    "inspection": {
      "status": "Valid",
      "date": "2026-08-05",
      "expiry_date": "2027-08-05",
      "sticker_no": "NBI202608050001",
      "type": "annual-inspection",
      "center": "Nairobi - Sample Inspection Centre"
    },
    "charges": [
      {
        "commencement_date": "2020-06-20",
        "financier_name": "SAMPLE BANK LTD",
        "financier_pin": "P000000002S"
      }
    ],
    "is_valid": true
  },
  "request_id": "550e8400-e29b-41d4-a716-446655440000"
}

Response Fields

FieldTypeDescription
successbooleanWhether the request succeeded
response_codenumberApplication response code (typically mirrors HTTP)
messagestringHuman-readable status message
dataobjectPayload for the verified resource
request_idstringUUID for support and audit trails
countrystringCountry code from the path (ke)
data.reg_nostringNormalised registration plate
data.vehicle.makestringVehicle make
data.vehicle.modelstringVehicle model
data.vehicle.colorstringBody colour
data.vehicle.body_typestringBody type (e.g. LORRY/TRUCK, Saloon)
data.vehicle.vehicle_typestringVehicle type (e.g. MOTOR VEHICLE)
data.vehicle.purposestringUse / purpose (e.g. COMMERCIAL, Private)
data.vehicle.registration_statusstringNTSA registration status
data.vehicle.registration_datestring|nullFirst registration date (YYYY-MM-DD)
data.vehicle.year_of_manufacturestring|nullYear of manufacture
data.vehicle.chassis_numberstringChassis / VIN
data.vehicle.engine_numberstringEngine number
data.vehicle.engine_capacitystringEngine capacity (cc)
data.vehicle.fuel_typestringFuel type
data.vehicle.passenger_capacitystringPassenger capacity
data.vehicle.gross_weightstring|nullGross vehicle weight
data.vehicle.tare_weightstring|nullTare weight
data.vehicle.logbook_numberstringLogbook number
data.vehicle.logbook_serialstringLogbook serial
data.vehicle.duty_statusstring|nullCustoms duty status
data.vehicle.duty_amountstring|nullDuty amount when available
data.vehicle.flaggedboolean|nullNTSA flagged indicator when present
data.vehicle.entry.numberstring|nullCustoms entry number
data.vehicle.entry.CPCstring|nullCustoms procedure code when available
data.owner.first_namestringOwner first name (or company name for COMPANY owners)
data.owner.middle_namestring|nullOwner middle name
data.owner.last_namestring|nullOwner last name
data.owner.full_namestringOwner full name
data.owner.owner_typestring|nullOwner type (e.g. COMPANY, INDIVIDUAL)
data.owner.id_numberstringOwner national ID or company number
data.owner.pinstring|nullOwner KRA PIN
data.owner.phonestring|nullOwner phone
data.owner.addressstring|nullOwner postal / box address
data.owner.codestring|nullPostal code
data.owner.townstring|nullOwner town
data.inspectionobject|nullLatest NTSA inspection when returned
data.inspection.statusstring|nullInspection status (e.g. Valid)
data.inspection.datestring|nullInspection date (YYYY-MM-DD)
data.inspection.expiry_datestring|nullInspection expiry date (YYYY-MM-DD)
data.inspection.sticker_nostring|nullInspection sticker number
data.inspection.typestring|nullInspection type (e.g. annual-inspection)
data.inspection.centerstring|nullInspection centre
data.chargesarrayFinanciers / charges on the vehicle (empty array when none)
data.charges[].commencement_datestring|nullCharge commencement date
data.charges[].financier_namestring|nullFinancier name
data.charges[].financier_pinstring|nullFinancier KRA PIN
data.is_validbooleanTrue when a usable vehicle record was returned

Error codes

Standard Peleza HTTP / response_code values (same across all API calls). Validation message text is endpoint-specific. Full reference: Error Codes.

CodeWhenBilled?
200Vehicle details returned (NTSA or cache)Yes β€” vehicle-plate
400Validation β€” plate_number required (max 32); consent must be trueNo
401Missing or invalid Bearer tokenNo
402Insufficient wallet balance or credit limitNo
403No active wallet or billing profile (or service not enabled)No
404Vehicle not found (provider was called) β€” billed. Unsupported country (not ke) β€” not billed.Yes / No
408Upstream timeout / service errorNo
429Rate limitedNo
502Upstream bad or unreadable responseNo
503NTSA / verification service unavailable, timed out, or duplicate submit blockedNo

404 β€” vehicle not found

404Sample data404 β€” vehicle not found
{
  "success": false,
  "response_code": 404,
  "message": "Vehicle Not Found",
  "country": "ke",
  "errors": {
    "plate_number": ["The provided plate number does not have a valid vehicle record."]
  },
  "request_id": "550e8400-e29b-41d4-a716-446655440032"
}

503 β€” provider unavailable

503Sample data503 β€” provider unavailable
{
  "success": false,
  "response_code": 503,
  "message": "Vehicle verification service is temporarily unavailable. Please try again later.",
  "country": "ke",
  "errors": {
    "plate_number": ["Vehicle verification service is temporarily unavailable. Please try again later."]
  },
  "request_id": "550e8400-e29b-41d4-a716-446655440033"
}

Set {{baseUrl}} to https://api.peleza.com (production) or https://sandbox.peleza.com (sandbox). Authenticated calls need a Bearer token from POST /api/v1/oauth/token.