kriyam.aistudioAPI reference
Liveness Detection — Selfie

Check a selfie

POSThttps://studioapi.kriyam.ai/models/facex/liveness-selfie/v1

Content type multipart/form-data

Tells you whether a selfie shows a live person rather than a printed photo or a screen. The call is synchronous: you get back the finished run, already charged.

Request

curl -X POST "https://studioapi.kriyam.ai/models/facex/liveness-selfie/v1" \
  -H "X-API-Key: $KRIYAM_API_KEY" \
  -F "image=@selfie.jpg"

Response

{7 items
"id":"3d5b8e02-41ac-4f7d-9c2b-6a0e19..."
"tool_url_path":"liveness-selfie"
"status":"completed"
"result":{1 item
"liveness_analysis":{9 items
"is_live":true
"verdict":"live"
"person_detected":true
"multiple_person_detected":false
"screen_detected":false
"document_detected":false
"printed_photo_detected":false
"remarks":"Single live subject detected."
"aigc_detection":null
}
}
"error":null
"credits":2
"created_at":"2026-09-18T09:12:04.182741Z"
}

Authentication

Send your key in the X-API-Key header. See Authentication.

Request

Body

NameTypeRequiredDescription
imagefileRequired

The selfie to check. PNG or JPEG, up to 2 MB.

Response

200 OK

Returns the run envelope. The fields below are what this tool puts inside it.

FieldTypeDescription
result.liveness_analysis.is_liveboolean | null

The verdict: a live person in front of the camera. Null when the service didn't reach one — treat that as unknown, never as a pass.

result.liveness_analysis.verdictstring | null

The same outcome as a label, for display.

result.liveness_analysis.person_detectedboolean | null

A person was found at all. False makes every other signal meaningless.

result.liveness_analysis.multiple_person_detectedboolean | null

More than one person is in frame — worth refusing in your own flow even when the verdict passes.

result.liveness_analysis.screen_detectedboolean | null

The image looks like a photo of a screen — a replay attack.

result.liveness_analysis.printed_photo_detectedboolean | null

The image looks like a photo of a printed photo.

result.liveness_analysis.document_detectedboolean | null

A document was held up to the camera rather than a face presented.

result.liveness_analysis.remarksstring | null

A human-readable summary of why. Free text — don't parse it.

result.liveness_analysis.aigc_detectionobject | null

Whether the image looks generated, when the service reports it. Genuinely null on most responses; use the AI Image Detection tool if you need this reliably.

Errors

StatusCodeWhen
400—

The image is empty, over 2 MB, or can't be decoded.

Every keyed call can also get401402403404429— see Errors.