Nodeflux Central
Face Search

API Reference — Face Search

Endpoint untuk mencari kandidat wajah, membandingkan dua wajah secara langsung, dan mengambil daftar keyspace yang tersedia.

Semua endpoint memerlukan header Authorization: Bearer <token>. Basis URL mengikuti variabel lingkungan VITE_API_URL yang dikonfigurasi pada instalasi Lenz. Jika Anda belum punya token, lihat halaman Otentikasi.

Endpoint Face Search menggunakan header tambahan x-search-method untuk menentukan mode pencarian atau perbandingan. Header ini wajib disertakan pada setiap permintaan ke endpoint Fremis N.


Pencarian Kandidat Wajah

Endpoint utama untuk mencari wajah yang mirip dengan foto referensi. Mengembalikan daftar face_id kandidat beserta skor similarity dari database Fremis N.

Alur integrasi:

  1. Encode foto referensi ke format base64
  2. Kirim ke POST /api/fremisn/v1/face/recognition dengan x-search-method yang sesuai
  3. Gunakan face_id dari hasil untuk lookup data identitas ke GET /api/enrolled-faces/get-by-face-ids
POST
/api/fremisn/v1/face/recognition

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Header Parameters

x-search-method*string

Metode pencarian. Gunakan face-search-candidates untuk pencarian di database enrollment lokal, atau face-match-anonymous untuk pencarian di database anonim.

Value in"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...",    "keyspace": "default",    "additional_params": {      "candidateCount": 5    }  }'
{  "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. 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_id enrollment yang sudah ada dengan foto baru (x-search-method: face-match-faceid)
POST
/api/fremisn/v2/face/match

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Header Parameters

x-search-method*string

Mode perbandingan. face-match-image: dua foto base64. face-match-faceid: face_id enrollment vs foto. face-match-anonymous: mode anonim.

Value in"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. Digunakan oleh UI Lenz untuk mengisi dropdown pemilihan keyspace pada form pencarian. Keyspace anonymous adalah keyspace khusus untuk data wajah anonim.

GET
/api/fremisn/v1/get-all-keyspaces

Authorization

bearerAuth
AuthorizationBearer <token>

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"}

On this page