Confirm a real, present human — not a photo, screen replay, or mask

Liveness


Liveness answers: is there a live human in front of the camera right now?

It defends against presentation attacks — the cheapest and most common fraud vector, because they need no AI at all: a printed photo, a phone screen held up to the camera, a paper cutout, a silicone mask.

Modes

ModeHow it worksBest for
PassiveA single selfie frame is analysed for texture, depth, reflection, and moiré signals. No user action required.High-volume onboarding where friction matters.
ActiveThe user follows a randomised challenge (turn, blink, move closer). Responses are checked for correct, timely, physically plausible motion.Higher-assurance flows and step-up verification.
Session (temporal)The entire video-KYC recording is sampled continuously. Liveness must hold for the whole session, not one lucky frame — a real face shown to the camera for two seconds and then swapped for a screen does not pass.Video KYC and assisted verification calls.

What it catches

  • Print attacks — photos, cutouts, ID-card photos re-presented as selfies
  • Screen replays — video or images played on another device
  • Masks and 3D artefacts — silicone, latex, and paper-craft masks
  • Absent subjects — sessions where no live face is present when it should be

Result shape

{
  "check": "liveness",
  "mode": "session",
  "verdict": "pass",
  "confidence": 0.97,
  "coverage": { "sampled_seconds": 184, "live_seconds": 184 },
  "markers": []
}

For session mode, coverage shows how much of the recording was live-verified, and markers timestamp any window where liveness dropped — reviewers can jump straight to it in the player.

Here is what a reviewer sees on a flagged video-KYC session — per-signal medians across sampled frames, with liveness, deepfake, and synthetic-face signals each scored separately and timeline flags for occlusion and multiple faces:

Liveness screening card from a real flagged session — 49 of 60 frames flagged; per-signal rows for mask, deepfake, liveness, and synthetic face with median and worst scores; timeline flags for face occluded and multiple facesLiveness screening card from a real flagged session — 49 of 60 frames flagged; per-signal rows for mask, deepfake, liveness, and synthetic face with median and worst scores; timeline flags for face occluded and multiple faces

Gating with Goal Rules

{
  "id": "liveness_required",
  "severity": "require",
  "check": "liveness_confidence_gte",
  "params": {
    "threshold": 0.9,
    "on_fail_message": "We could not verify your selfie. Please retry in good lighting, facing the camera directly."
  },
  "on_deny": {
    "message": "Liveness below threshold.",
    "max_retries": 2,
    "remediate_type": "selfie"
  }
}

max_retries: 2 gives a genuine user another attempt (bad lighting is common); repeated failures deny the case per your policy.

Related checks

  • Deepfake Detection — liveness confirms a human is present; deepfake detection confirms the footage of them is genuine.
  • Face Match & Likeness — confirms the live person matches the claimed identity.