LivFace
Liveness API · v3 live

Verify real
humans,
not photos.

Challenge-response biometric verification built for developers. 7 challenge types, 5 per session — impossible to spoof with a photo, video replay, or deepfake.

<500ms
Response time
99.9%
Uptime SLA
7
Challenge types
Scroll
How it works

Three calls. One real human.

A session-based flow you can wire up in an afternoon. We handle the biometrics — you get a clean liveness score.

01

Create a session

Your backend hits POST /v1/sessions. We return a session_id and 5 randomly chosen challenges.

02

Run the challenges

The LivFace SDK opens the camera, prompts the user, and streams frames every 800ms while they respond in real time.

03

Get a verdict

We analyze frames with MediaPipe landmarks and return a liveness_score plus a pass/fail you can trust.

Challenge library

7 ways to prove you're alive.

Every session draws 5 random challenges from the set below. Randomization is what makes replays useless.

Blink

Eye-aspect-ratio drop detected across consecutive frames.

Smile

Mouth-corner displacement and cheek-raise geometry.

Turn left

Yaw angle crosses threshold while landmarks stay tracked.

Turn right

Opposite-yaw rotation confirmed against the nose vector.

Open mouth

Inner-lip vertical distance exceeds the open threshold.

Look down

Pitch angle and eyelid geometry verify a genuine glance.

Raise eyebrows

Brow-to-eye distance increase tracked frame over frame.

Built for developers

Drop it in.
Ship it today.

REST + lightweight SDKs. No ML ops, no GPUs, no model wrangling. Authenticate, create a session, render the widget.

  • Idempotent, session-based REST API
  • Web, iOS & Android SDKs
  • Webhooks for async verdicts
  • SOC 2 · GDPR · on-device frame capture
import { LivFace } from "@livface/sdk";

const live = new LivFace(process.env.LIVFACE_KEY);

// 1. Create a liveness session
const session = await live.sessions.create({
  challenges: 5,
  redirect: "https://app.acme.io/verified"
});

// 2. Hand the id to your frontend widget
res.json({ sessionId: session.id });

// 3. Read the verdict (or use a webhook)
const result = await live.sessions.get(session.id);
console.log(result.livenessScore); // 0.98
5
challenges / session
800ms
frame cadence
468
facial landmarks
$0
to start
Pricing

Start free. Scale when you ship.

Daily check limits, no per-seat nonsense. Upgrade the moment you cross the line — never before.

Free

$0/mo

For prototypes and weekend builds.

  • 100 verifications / day
  • Basic liveness detection
  • 7 challenge types
  • Community support
Start Building Free

No credit card required.

Growth

$29/mo

For early-stage apps launching their first production traffic.

  • 1,000 verifications / day
  • Everything in Free
  • ID document verification
  • Webhooks
  • Email support · 24h turnaround
Launch Your App

Instant access, cancel anytime.

Popular

Scale

$79/mo

For established platforms with scaling auth needs.

  • 10,000 verifications / day
  • Everything in Growth
  • Priority support
  • SLA guarantee
Scale Production

Includes priority migration support.

High-Volume

$199/mo

Enterprise-grade capacity without the enterprise friction.

  • 50,000 verifications / day
  • Everything in Scale
  • Dedicated support
  • Face ID database
  • Custom SLA
Deploy at Scale

Self-serve setup. No sales calls required.

Ship verification
your users can't fake.

Spin up a session in minutes. The free tier never expires.

Get your API key