Skip to main content
Retrieve the KYC record for a specific user. Pass me as the userId path parameter to fetch your own record without knowing your user ID. The response includes time-limited signed URLs for each uploaded document — do not store these URLs permanently; re-fetch the record to get fresh ones.
Document URLs (idFrontUrl, idBackUrl, passportPhotoUrl) expire after 15 minutes. Regenerate them by calling this endpoint again.

Endpoint

GET https://api.nyotaimara.com/v1/kyc/:userId

Headers

Authorization
string
required
Bearer token issued after sign-in. Format: Bearer <token>.

Path parameters

userId
string
required
The ID of the user whose KYC record to retrieve. Pass me to fetch your own record.

Response

success
boolean
true when the record was found.
data
object
The KYC record.
{
  "success": true,
  "data": {
    "userId": "usr_01j9z...",
    "userInfo": {
      "email": "aisha@example.com",
      "name": "Aisha Kamau"
    },
    "idNumber": "12345678",
    "status": "pending",
    "documents": {
      "idFrontUrl": "https://storage.example.com/id-front?X-Amz-Expires=900&...",
      "idBackUrl": "https://storage.example.com/id-back?X-Amz-Expires=900&...",
      "passportPhotoUrl": "https://storage.example.com/passport?X-Amz-Expires=900&..."
    },
    "verifiedAt": null,
    "rejectionReason": null,
    "submittedAt": "2025-04-20T08:30:00.000Z"
  }
}

Errors

StatusError messageCause
404"KYC record not found for this user."No KYC submission exists for the given userId.
500"Failed to retrieve KYC data"Server-side database or storage error.

Example

# Fetch your own KYC record
curl https://api.nyotaimara.com/v1/kyc/me \
  -H "Authorization: Bearer <token>"

# Fetch another user's KYC record (requires admin permissions)
curl https://api.nyotaimara.com/v1/kyc/usr_01j9z... \
  -H "Authorization: Bearer <token>"