Skip to main content
POST
cURL

Authorizations

x-api-key
string
header
required

Body

multipart/form-data
user_image
file
required

Front-facing face image (e.g. a selfie). Allowed extensions: tiff, jpg, jpeg, png, webp. Maximum upload size: 5 MB (larger files are rejected with 400). Images are automatically compressed to ~0.5 MB before processing, so very high resolutions do not improve accuracy. The image should contain a single subject — when several faces are present, the largest one is evaluated and a MULTIPLE_FACES_DETECTED warning is added.

face_liveness_score_decline_threshold
number<float>
default:30

Liveness score threshold (0–100). A computed score at or below this value emits a LOW_LIVENESS_SCORE warning and sets status to Declined. Default 30; raise it for a stricter anti-spoofing posture. Values outside 0–100 return 400.

Required range: 0 <= x <= 100
Example:

30

rotate_image
boolean
default:false

When true, the service tries 90-degree rotations of the input and uses the orientation that yields the best face detection. Useful when EXIF orientation is missing. Adds latency.

Example:

false

save_api_request
boolean
default:true

When true (default), persists the call as an API-type session, stores the face images, emits a status.updated webhook, and enrolls the detected face into your face search index. When false, the call is one-shot — nothing is stored and the face is not enrolled. Blocklist and duplicate screening run either way.

Example:

true

vendor_data
string

Optional opaque identifier (your user id, email, UUID…) stored on the persisted session and echoed back. Also used to exclude prior sessions with the same vendor_data from the duplicate-face check, so re-verifying the same user does not raise DUPLICATED_FACE.

Example:

"user-123"

metadata
object

Optional JSON object stored with the session (when save_api_request=true) and echoed back. In multipart requests, send it as a JSON-encoded string field — it is parsed into an object.

Example:

Response

Passive liveness completed. liveness.score is the model's 0–100 confidence that the image shows a live person; status is Approved unless an error-severity warning fired. A spoofed or blocklisted face still returns 200 — inspect liveness.status and liveness.warnings, not just the HTTP code. When save_api_request=true, request_id is the persisted session id.

request_id
string<uuid>

Persisted session id when save_api_request=true (usable with GET /v3/session/{sessionId}/decision/); otherwise a transient correlation UUID.

liveness
object
vendor_data
string | null

Echo of the vendor_data you sent, or null.

metadata
object | null

Echo of the metadata object you sent, or null.

created_at
string<date-time>

ISO 8601 timestamp (UTC) of when the response was generated, e.g. 2026-06-12T01:04:42.763237+00:00.