Skip to content
taskinogo.
GO. AND CHECK.

Tell a living face from a fake one.

A server-side liveness detection API. Send a short video or a burst of frames, and get back a clear real-or-spoof verdict in milliseconds — built to stop printed photos, screen replays, and masks.

No credit card to start · Live in minutes

Processed on our own GPUs. No biometric data stored — ever.

  • ~300ms response
  • Video or image input
  • Single REST call

How it works

01

Send.

Post a short video or 10–15 frames to the API. Weak connection? Send images instead of video — same result.

02

Verify.

Passive or active. Run passive liveness from a single image or video, or issue an active challenge — a random sequence (turn left, blink, turn right) verified in order. Replays and static photos fail here.

03

Verdict.

Get back a single JSON response: real or spoof, a confidence score, and the processing time. One call, done.

Features

Two modes, one API.

Passive liveness from a single image or video, or active challenge-response with random head movements. Use whichever fits your flow — same endpoint, same response shape.

Real anti-spoofing.

Detects printed photos, screen replays, video loops, and masks using a deep-learning anti-spoof model. Not just face detection — actual presentation-attack defense.

Built for the real world.

Designed for poor mobile networks: send 10–15 cropped frames instead of a full video and still get an accurate verdict. Lightweight payloads, fast response.

Privacy by design.

Images are processed, scored, and discarded. No biometric templates stored, only an audit log of requests. GDPR-friendly by default.

One REST call

Send. Get a verdict.

A single POST with your video or frames returns a clear JSON verdict — real or spoof, a confidence score, and how long it took.

request.sh
curl -X POST https://api.taskinogo.com/v1/liveness/verify \
  -H "X-AI-API-Key: $TASKINOGO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "session_id": "live_…", "mode": "video", "video_b64": "…" }'
response.json
{
  "verified": true,
  "confidence": 0.987,
  "processing_time_ms": 312
}

Live demo

See it work — on your own face.

No signup. Allow your camera, pick the moves to verify, and run a real liveness check right here.

Send mode

Moves to verify

Two random head turns are chosen automatically for each test (left, right, up or down).

Fine-tune (optional)

Your verdict will appear here.

Your camera capture is used only to run this check and is deleted immediately afterwards — nothing is stored.

Pricing

Simple, call-based pricing.

Start free. Upgrade when you ship. Both modes on every plan.

Free

$0 /mo

50 calls / month

  • Both modes (passive + active)
  • 1 API key
  • Community support
  • No credit card
Get API key

Starter

$29 /mo

5,000 calls / month

  • Everything in Free, plus:
  • Email support
  • 2 API keys

Overage billed per 1,000 calls.

Choose Starter
Most popular

Pro

$79 /mo

20,000 calls / month

  • Everything in Starter, plus:
  • Priority email support
  • 5 API keys
  • Usage analytics

Overage billed per 1,000 calls.

Choose Pro

Business

$149 /mo

50,000 calls / month

  • Everything in Pro, plus:
  • 10 API keys
  • Priority processing
  • Webhook callbacks
  • Volume discount above 50k

Volume discount applies above 50,000 calls.

Choose Business

Questions

Have a question?

Send us a message about the API, pricing, or your integration and we'll get back to you by email.

We'll reply by email. No spam, ever.

FAQ

Questions, answered.

What does the API actually return?

A single JSON: a real-or-spoof verdict, a confidence score, and processing time.

Video or images — which should I send?

Either. Use video for the richest signal, or 10–15 frames when the network is weak.

What attacks does it stop?

Printed photos, screen replays, video loops, and masks.

Do you store my users' faces?

No. Images are processed and discarded. We keep only a request audit log.

How fast is it?

Typically a few hundred milliseconds, processed on our own GPUs.

Can I use it on mobile?

Yes — calls go server-to-server through your backend, never directly from the device.