LIVENESS DETECTION API

Passive Liveness Detection API – Teknologi Liveness Detection Untuk Verifikasi Lebih Akurat

Ditenagai mesin liveness bersertifikat iBeta ISO/IEC 30107-3 Level 2 (Presentation Attack Detection). Kirim satu foto selfie, terima keputusan liveness beserta score. Rp 2.500 (~$0,15 USD) per pengecekan berhasil — tanpa langganan dan tanpa setup fee.

Powered by Privy iBeta ISO/IEC 30107-3 Level 2 · PAD Transport terenkripsi · permintaan tercatat Penyelenggara Sertifikasi Elektronik Tanpa setup fee · tanpa langganan

Hentikan Wajah Palsu Sebelum Akun Aktif

Liveness Detection API memeriksa apakah foto selfie yang Anda kirim berasal dari orang yang benar-benar berada di depan kamera saat itu, lalu mengembalikan keputusan result beserta score sebagai angka pendukung. Cukup satu panggilan REST untuk menambahkan lapisan anti-spoofing di alur onboarding Anda.

Ini penting karena selfie adalah titik paling mudah dicurangi dalam KYC. Foto KTP bisa dibaca OCR dengan rapi, wajah bisa cocok dengan face matching, tetapi semuanya tetap lolos jika yang dihadapkan ke kamera adalah foto cetak, tayangan layar ponsel, video rekaman, atau bahkan video deepfake . Semua itu masuk satu kelas yang sama — serangan presentasi — dan semuanya gagal di titik yang sama: tidak ada orang hidup di depan kamera.

Layanan ini dijalankan bersama Privy sebagai Penyelenggara Sertifikasi Elektronik. Mesin liveness yang menopangnya mengantongi sertifikasi iBeta ISO/IEC 30107-3 Level 2 (Presentation Attack Detection) , standar internasional untuk menguji ketahanan sistem biometrik terhadap serangan presentasi. Level 2 berarti pengujian tidak berhenti pada artefak sederhana, melainkan mencakup alat serangan yang dibuat khusus dan lebih canggih.

Harga tetap: Rp 2.500 per pengecekan berhasil (2.500 points) . Tidak ada setup fee, tidak ada retainer bulanan, tidak ada minimum komitmen. Isi points di dashboard, panggil endpoint, dan bayar hanya untuk request yang benar-benar diproses.

Soal deepfake, penting membedakan dua jalur. Deepfake yang ditampilkan ke kamera — diputar di layar, dicetak, atau dipasang sebagai artefak — adalah serangan presentasi, dan itulah kelas serangan yang diuji dalam sertifikasi di atas. Yang berada di luar cakupan liveness mana pun adalah injection attack , yaitu ketika penyerang menyuntikkan video langsung ke aliran kamera virtual tanpa melewati sensor. Untuk itu diperlukan kontrol di sisi perangkat dan integritas aplikasi.

Response API berisi keputusan result dan score , bukan label jenis serangan. Untuk mencocokkan wajah dengan dokumen identitas, pasangkan dengan Face Matching API ; untuk verifikasi data kependudukan gunakan ID Verification API .

Cukup Satu Foto

Tanpa rekaman video dan tanpa instruksi gerakan. Kirim satu file JPG atau PNG maksimal 2 MB pada field face1 .

Teruji Standar Internasional

Bersertifikat iBeta ISO/IEC 30107-3 Level 2 untuk Presentation Attack Detection — foto cetak, tayangan layar, hingga artefak buatan khusus.

Bayar Per Keberhasilan

Rp 2.500 per pengecekan yang diproses. Tanpa biaya setup dan tanpa minimum bulanan.

Siap Diaudit

transaction_id dibuat otomatis, dan reference_id Anda sendiri ikut disertakan untuk rekonsiliasi.

Cek Liveness dalam 3 Langkah

1
Daftar & dapatkan API key

Buat akun di dashboard dan salin API key untuk header x-api-co-id .

2
Kirim satu foto selfie

POST multipart ke /liveness/detect berisi field face1 .

3
Terima keputusan liveness

Response memuat result , score , dan transaction_id untuk audit.

Alur singkat dari pengiriman selfie hingga hasil liveness dan pengurangan points.

Harga

Rp 2.500 Per Pengecekan. Tanpa Kejutan.

Biaya per pengecekan tetap sama baik Anda memverifikasi 50 pendaftar maupun 50 ribu.

Bayar hanya saat pengecekan diproses

Rp 2.500

≈ $0,15 USD · Rp 2.500 per pengecekan berhasil (2.500 points) · Tanpa setup fee, tanpa langganan

Tanpa Biaya Tambahan

Tidak ada biaya setup, tidak ada “biaya komitmen”, tidak ada credit lockup. Cukup isi points dan build.

Satu Field, Satu Endpoint

Cukup unggah face1 . Tidak perlu SDK, tidak perlu alur multi-step atau perekaman video.

Jalur Resmi

Diproses melalui Penyelenggara Sertifikasi Elektronik, dengan pencatatan permintaan di sisi penyedia.

Penting: hasil result: false tetap terhitung satu pengecekan karena request benar-benar diproses — itu jawaban yang sah, bukan error. Yang tidak memotong points adalah request yang berhenti lebih dulu: file terlalu besar, format salah, saldo kurang, eKYC belum approved, atau provider gagal merespons.
Contoh: 1.000 pendaftar baru per bulan menghabiskan Rp 2.500.000 — jauh lebih murah daripada satu kasus akun palsu yang berhasil menembus onboarding.

Dipakai di Titik Rawan Pemalsuan Identitas

Setiap alur yang mengandalkan selfie sebagai bukti kehadiran perlu lapisan ini.

Onboarding eKYC
Pastikan selfie pendaftar diambil langsung — bukan foto media sosial, tangkapan layar, atau video deepfake yang dihadapkan ke kamera.
Lending & Paylater
Cegah pengajuan pinjaman memakai identitas orang lain sebelum dana dicairkan.
Reset Akun & Recovery
Verifikasi ulang pemilik akun saat pemulihan akses atau penggantian perangkat.
Onboarding Merchant
Pastikan penanda tangan perjanjian merchant benar-benar hadir saat verifikasi dilakukan.
Absensi & Gig Worker
Hentikan titip absen berbasis foto pada aplikasi kehadiran dan platform pekerja lepas.
Transaksi Berisiko Tinggi
Tambahkan pemeriksaan wajah pada penarikan besar atau perubahan data rekening.

Dokumentasi Liveness Detection API

Satu endpoint, harga transparan, respons JSON yang konsisten.

Authentication

Semua request memerlukan header x-api-co-id dengan API key Anda. Dapatkan API key di dashboard . Produk identitas juga memerlukan akun yang sudah lolos verifikasi eKYC — lihat tabel error di bawah. Referensi teknis lengkap, spesifikasi OpenAPI, dan Postman collection tersedia di docs.api.co.id .

POST{{base-url}}/liveness/detect

Periksa keaslian wajah dari satu foto selfie. Dikirim sebagai multipart/form-data , bukan JSON. transaction_id dibuat otomatis di sisi server dengan awalan LIVE dan dikembalikan di response untuk keperluan audit.

Properti Nilai
Base URL {{base-url}}
Auth x-api-co-id: YOUR_API_KEY
Content-Type multipart/form-data
Pricing Rp 2.500 per pengecekan berhasil (2.500 points)
Field Tipe Deskripsi
face1 file (wajib) Foto selfie berformat JPG, JPEG, atau PNG. Ukuran maksimal 2 MB .
reference_id string (opsional) Penanda milik sistem Anda untuk rekonsiliasi, maksimal 64 karakter.

Diisi otomatis oleh API.CO.ID — jangan dikirim di request:

  • transaction_id — dibuat per request dengan awalan LIVE , dikembalikan di response.
Contoh request

 curl --location '{{base-url}}/liveness/detect' \
  --header 'x-api-co-id: YOUR_API_KEY' \
  --form 'face1=@"/path/to/selfie.jpg"' \
  --form 'reference_id="LIVENESS-0001"' 
 package main

import (
    "bytes"
    "fmt"
    "io"
    "mime/multipart"
    "net/http"
    "os"
    "path/filepath"
)

func main() {
    body := &bytes.Buffer{}
    writer := multipart.NewWriter(body)

    file, err := os.Open("selfie.jpg")
    if err != nil {
        panic(err)
    }
    defer file.Close()

    part, err := writer.CreateFormFile("face1", filepath.Base(file.Name()))
    if err != nil {
        panic(err)
    }
    if _, err := io.Copy(part, file); err != nil {
        panic(err)
    }
    writer.WriteField("reference_id", "LIVENESS-0001")
    writer.Close()

    req, err := http.NewRequest("POST", "{{base-url}}/liveness/detect", body)
    if err != nil {
        panic(err)
    }
    req.Header.Set("Content-Type", writer.FormDataContentType())
    req.Header.Set("x-api-co-id", "YOUR_API_KEY")

    resp, err := http.DefaultClient.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()
    out, _ := io.ReadAll(resp.Body)
    fmt.Println(string(out))
} 
 <?php

$ch = curl_init('{{base-url}}/liveness/detect');
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => [
        'face1' => new CURLFile('/path/to/selfie.jpg', 'image/jpeg', 'selfie.jpg'),
        'reference_id' => 'LIVENESS-0001',
    ],
    CURLOPT_HTTPHEADER => [
        'x-api-co-id: YOUR_API_KEY',
    ],
    CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch); 
 // Node.js 18+ (fetch & FormData native)
import { openAsBlob } from 'node:fs';

const form = new FormData();
form.append('face1', await openAsBlob('./selfie.jpg'), 'selfie.jpg');
form.append('reference_id', 'LIVENESS-0001');

const res = await fetch('{{base-url}}/liveness/detect', {
  method: 'POST',
  headers: { 'x-api-co-id': 'YOUR_API_KEY' },
  body: form,
});

console.log(await res.json()); 
 <?php

use Illuminate\Support\Facades\Http;

$response = Http::withHeaders([
    'x-api-co-id' => 'YOUR_API_KEY',
])
    ->attach('face1', file_get_contents('/path/to/selfie.jpg'), 'selfie.jpg')
    ->post('{{base-url}}/liveness/detect', [
        'reference_id' => 'LIVENESS-0001',
    ]);

return $response->json(); 
Contoh response (sukses)
 {
  "is_success": true,
  "message": "Success",
  "data": {
    "transaction_id": "LIVE20260815143022A1B2C3",
    "result": true,
    "score": "100.0000",
    "message": "Liveness detection successfully"
  }
} 

Catatan penting saat membaca response:

  • result: false dikembalikan sebagai HTTP 200 — itu hasil pengecekan yang sah, bukan error, dan tetap terhitung satu hit.
  • score bertipe string , bukan angka. Konversi dulu sebelum dibandingkan dengan ambang batas Anda.
Error HTTP Pesan Perbaikan
API key hilang 401 User not authenticated Tambahkan header x-api-co-id dari dashboard.
eKYC belum disetujui 403 eKYC approval is required before you can use this product. Selesaikan verifikasi akun di dashboard, lalu ulangi request.
File tidak dikirim 400 face1 is required Pastikan field bernama face1 dan terkirim sebagai file, bukan teks.
Format file salah 400 Invalid face1 file type. Only JPG, JPEG, and PNG image files are allowed Konversi gambar ke JPG atau PNG sebelum mengirim.
File terlalu besar 413 face1 file size exceeds maximum limit of 2 MB Kompres atau perkecil resolusi selfie di sisi klien.
Points tidak cukup 402 Insufficient points balance. Please top up to continue. Top up points di dashboard lalu coba lagi.
Gambar tidak diterima provider 422 Pesan validasi diteruskan dari provider Ambil ulang selfie dengan pencahayaan dan fokus yang lebih baik.
Error dari provider 502 Provider auth / server / response error Coba ulang beberapa saat lagi; points tidak dipotong.
Kuota provider habis 503 Provider unavailable atau kuota tidak tersedia Hubungi tim kami bila berlanjut; points tidak dipotong.
Provider timeout 504 upstream timeout Ulangi request; points tidak dipotong.

Susun Alur eKYC yang Utuh

Liveness membuktikan orangnya hadir. Pasangkan dengan pemeriksaan dokumen dan data kependudukan untuk menutup seluruh alur onboarding.

Cocokkan Wajah

Face Matching API membandingkan selfie dengan foto pada dokumen identitas.

Verifikasi Kependudukan

ID Verification API mencocokkan NIK, nama, dan tanggal lahir ke data resmi.

Baca Dokumen Otomatis

KTP OCR API mengisi form dari foto KTP seharga Rp 150 per scan.

Face Matching API

Pertanyaan seputar liveness & deepfake

Jawaban singkat soal cakupan perlindungan, input, hasil, syarat akun, dan biaya.

Apa itu liveness detection dan apa bedanya dengan face matching?▼

Liveness detection menjawab “apakah selfie ini diambil dari orang yang hadir saat itu” . Face matching menjawab “apakah dua wajah ini orang yang sama” . Keduanya menjawab pertanyaan berbeda dan biasanya dipakai bersamaan: liveness memastikan selfienya asli, face matching memastikan selfie itu cocok dengan foto identitas.

Apakah API ini bisa menahan deepfake?▼

Ya, untuk deepfake yang dihadapkan ke kamera. Video deepfake yang diputar di layar, dicetak, atau dipasang sebagai artefak termasuk serangan presentasi — kelas serangan yang diuji dalam sertifikasi iBeta ISO/IEC 30107-3 Level 2 (Presentation Attack Detection) yang dikantongi Privy untuk fitur Liveness Detection-nya, mesin yang menopang API ini.

Yang berada di luar cakupan adalah injection attack , yaitu video yang disuntikkan langsung ke aliran kamera virtual tanpa melewati sensor. Itu ditangani lewat kontrol integritas aplikasi dan perangkat, bukan lewat liveness. Perlu dicatat juga bahwa response berisi keputusan result dan score , bukan label yang menyebut sebuah wajah sebagai deepfake.

Kalau hasilnya result: false , apakah tetap ditagih?▼

Ya. Nilai false berarti pengecekan berhasil dijalankan dan hasilnya selfie tersebut tidak lolos — itu jawaban yang sah, dikembalikan sebagai 200 , dan terhitung satu hit. Yang tidak memotong points adalah request yang berhenti sebelum diproses, misalnya file melebihi 2 MB, format salah, saldo kurang, atau provider gagal merespons.

Format dan ukuran file apa yang didukung?▼

Field face1 menerima JPG, JPEG, atau PNG dengan ukuran maksimal 2 MB . File di luar format tersebut ditolak dengan 400 , sedangkan yang melebihi batas ukuran ditolak dengan 413 . Kompres atau perkecil resolusi selfie di sisi klien agar request tidak terbuang.

Apakah perlu merekam video atau meminta user bergerak?▼

Tidak. Cukup satu foto selfie yang dikirim sebagai multipart/form-data . Tidak ada perekaman video, tidak ada instruksi kedip atau menoleh, dan tidak ada SDK yang perlu dipasang di aplikasi Anda.

Apakah akun saya perlu diverifikasi dulu?▼

Ya. Karena produk ini menyentuh data identitas, akun perlu lolos verifikasi eKYC di dashboard sebelum endpoint bisa dipakai. Request dari akun yang belum disetujui akan menerima 403 dengan pesan eKYC approval is required before you can use this product.

Berapa biayanya dan apakah ada biaya setup?▼

Rp 2.500 per pengecekan berhasil (2.500 points). Tidak ada biaya setup, tidak ada langganan bulanan, dan tidak ada minimum komitmen. Lihat detail di halaman harga API .

Bergabung dengan 8.000+ pengguna yang sudah mengandalkan API kami untuk operasional bisnis.

8.000+
Pengguna
100+
Bisnis
8jt+
Panggilan API
99,9%
Uptime SLA

Dipercaya oleh 100+ bisnis di berbagai industri

Dari instansi pemerintah, teknologi, dan pendidikan sampai kesehatan dan telekomunikasi, mencakup 8 sektor industri di seluruh Indonesia.

Mulai Cek Liveness Hari Ini

Isi points, kirim satu foto selfie, dan tahan foto, video, serta deepfake di pintu masuk — Rp 2.500 per pengecekan, tanpa setup fee.

Ke Dashboard

Ditinjau oleh CTO Api.co.idDiperbarui 27 Agustus 2026
Scroll to Top