Evaluates a single selfie for liveness and returns a canonical verdict (is_live, liveness_score, extras).
Response contract: A successful verification returns HTTP 200 with status: "success", error_code: null, and a populated data object. A definitive no-record / invalid result ALSO returns HTTP 200 with status: "success", but carries a non-null error_code and data: null — every 2xx response is status: "success", so do NOT distinguish a full-success verdict from a no-record / invalid one by status; branch on error_code (null = full success, a non-null IDTO_2xx = no record / invalid). Only a raised error returns status: "error". Every response carries billed (whether the call was charged). All codes, messages and HTTP statuses are identical regardless of the underlying vendor. Authenticate with your X-Client-ID and X-API-KEY headers.
data.extras is vendor-specific and is NOT part of the canonical contract. The canonical keys are the ones named above; extras carries whichever diagnostic fields the serving engine exposes, and its shape changes with the vendor. Branch on the canonical keys and on error_code, never on anything inside extras.
Codes: IDTO_609 (2xx/500, liveness could not be determined), IDTO_503 (image unreadable or too large, 413), IDTO_001 (missing/invalid image, 400), IDTO_009 (insufficient credits, 402), IDTO_006 (rate limited, 429), IDTO_007 (config error, 500), IDTO_008 (service busy, 503).
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
401Missing or invalid authentication credentials (X-Client-ID / X-API-KEY).
