API Reference — Face Search
Endpoint untuk mencari kandidat wajah, membandingkan dua wajah secara langsung, dan mengambil daftar keyspace yang tersedia.
← Kembali ke Face Search
Panduan operator: mencari orang terdaftar dan tidak terdaftar, pencarian dengan foto, dan tips penggunaan.
Otentikasi
API key untuk integrasi, Bearer token untuk sesi pengguna, dan otentikasi WebSocket.
Semua endpoint memerlukan otentikasi. Untuk integrasi, kirim header X-Api-Key: <key> di setiap request tanpa header Authorization. Bearer token (Authorization: Bearer <access_token>, berlaku 30 menit) hanya untuk aplikasi yang menampilkan login Lenz ke penggunanya sendiri dan wajib menyertakan X-Integration-Signature. Basis URL mengikuti variabel lingkungan VITE_API_URL yang dikonfigurasi pada instalasi Lenz. Lihat Otentikasi untuk memilih jalur yang tepat.
Header x-search-method bersifat opsional dan tidak mengubah hasil pencarian — sumber pencarian ditentukan oleh field keyspace di body. Namun sertakan header ini bila pencarian Anda perlu tercatat di Face Search Logs untuk keperluan audit; request tanpa header ini tidak dicatat.
Pencarian Kandidat Wajah
Endpoint utama untuk mencari wajah yang mirip dengan foto referensi — endpoint yang sama dipakai tab Tidak Terdaftar dan Semua Sumber di halaman Face Search. Mengembalikan daftar face_id kandidat beserta skor similarity (0.0–1.0) dari database Fremis N.
Alur integrasi:
- Konversi foto referensi ke JPEG, lalu encode ke base64 (tanpa prefix
data:) - Kirim ke
POST /api/fremisn/v1/face/recognition:- kosongkan
keyspaceuntuk mencari di wajah terdaftar, atau - isi
keyspace: "anonymous"untuk mencari di wajah tidak terdaftar yang pernah terdeteksi kamera
- kosongkan
- Untuk hasil wajah terdaftar, ambil data identitas lewat
GET /api/enrolled-faces/get-by-face-ids?face_ids=<id1>,<id2>. Kandidat yang tidak punya data enrollment dapat diabaikan. - Untuk melihat riwayat pergerakan kandidat, buka
/face-search?id=<face_id>atau panggil endpoint Tracking.
UI Lenz meminta 8 kandidat (additional_params.candidateCount: 8). Untuk mencari di kedua sumber sekaligus seperti tab Semua Sumber, kirim dua request (tanpa keyspace dan dengan keyspace: "anonymous"), gabungkan hasilnya, lalu urutkan berdasarkan similarity.
Pencarian Kandidat Wajah
Authorization
bearerAuth In: header
Header Parameters
Opsional — label untuk audit log. Bila dikirim, pencarian dicatat di Face Searching Logs. Gunakan face-search-candidates untuk pencarian wajah terdaftar dan face-match-anonymous untuk wajah tidak terdaftar. Header ini tidak menentukan sumber pencarian; sumbernya ditentukan field keyspace.
"face-search-candidates" | "face-match-anonymous"Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
curl -X POST "https://lenz.example.com/api/fremisn/v1/face/recognition" \ -H "x-search-method: face-search-candidates" \ -H "Content-Type: application/json" \ -d '{ "image": "/9j/4AAQSkZJRgABAQAAAQABAAD...", "additional_params": { "candidateCount": 8 } }'{ "result": { "face_recognition": { "candidates": [ { "face_id": "abc123def456", "similarity": 0.92, "variation": "9876543210" }, { "face_id": "xyz789uvw012", "similarity": 0.78, "variation": "1234567890" } ] } }}{ "ok": false, "message": "invalid image format"}{ "ok": false, "message": "unauthorized"}{ "ok": false, "message": "internal server error"}Perbandingan Dua Wajah (Face Match)
Endpoint untuk membandingkan dua wajah secara langsung dan mendapatkan skor kemiripan. Endpoint ini hanya tersedia lewat API — halaman Face Search tidak memiliki tab perbandingan. Mendukung dua mode:
- Gambar vs Gambar — bandingkan dua foto base64 tanpa referensi ke database (
x-search-method: face-match-image) - Terdaftar vs Gambar — bandingkan
face_idenrollment yang sudah ada dengan foto baru (x-search-method: face-match-faceid)
Perbandingan Dua Wajah (Face Match)
Authorization
bearerAuth In: header
Header Parameters
Opsional — label untuk audit log; bila dikirim, perbandingan dicatat di Face Searching Logs. face-match-image: dua foto base64. face-match-faceid: face_id enrollment vs foto. face-match-anonymous: mode anonim.
"face-match-image" | "face-match-faceid" | "face-match-anonymous"Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
curl -X POST "https://lenz.example.com/api/fremisn/v2/face/match" \ -H "x-search-method: face-match-image" \ -H "Content-Type: application/json" \ -d '{ "face_a": { "image": "/9j/4AAQSkZJRgABAQAAAQABAAD...", "keyspace": "default" }, "face_b": { "image": "/9j/4AAQSkZJRgABAQAAAQABAAD..." } }'{ "similarity": 0.87}{ "ok": false, "message": "invalid image format"}{ "ok": false, "message": "unauthorized"}{ "ok": false, "message": "internal server error"}Keyspace
Endpoint untuk mengambil daftar keyspace yang tersedia di mesin Fremis N. Keyspace anonymous adalah keyspace khusus berisi wajah tidak terdaftar yang pernah terdeteksi kamera.
Daftar Keyspace
Authorization
bearerAuth In: header
Response Body
application/json
application/json
application/json
curl -X GET "https://lenz.example.com/api/fremisn/v1/get-all-keyspaces"{ "keyspaces": [ { "name": "default" }, { "name": "vip" }, { "name": "anonymous" } ]}{ "ok": false, "message": "unauthorized"}{ "ok": false, "message": "internal server error"}Face Search
Temukan seseorang — terdaftar maupun tidak — berdasarkan nama, ID, atau foto wajah, lalu buka riwayat pergerakannya di seluruh kamera.
Plate Search
Cari kendaraan berdasarkan nomor plat melalui integrasi data Korlantas/Polri — dapatkan informasi STNK, data kendaraan, dan profil pemilik dalam satu tampilan.