Enrollment API
Endpoint untuk mendaftarkan, menghapus, dan menginspeksi enrollment wajah dalam keyspace.
← Kembali ke Enrollment
Konsep multi-variasi, IQA, embedding, dan alur enrollment di FREMIS-N.
Developer Guide API
Referensi sistem: autentikasi, basis URL, dan semua endpoint FREMIS-N.
Endpoint delete-enrollment dan delete-enrollment-variation menggunakan method POST dengan body request — bukan DELETE HTTP method. Ini intentional dari desain API FREMIS-N.
Mendaftarkan Wajah Baru ke Keyspace
Mendaftarkan identitas wajah baru dari gambar yang dienkode dalam base64 ke dalam keyspace yang ditentukan. Mendukung validasi kualitas gambar (IQA) melalui additional_params dan dapat mengembalikan metrik kualitas jika return_iqa_result diaktifkan.
Authorization
bearerAuth In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
text/plain
application/json
application/json
application/json
curl -X POST "https://fremis-n.example.com/v1/face/enrollment" \ -H "Content-Type: application/json" \ -d '{ "image": "<base64-encoded-image>", "keyspace": "karyawan-jakarta", "additional_params": { "face_id": "budi-001", "min_brightness": 0.5, "min_sharpness": 0.3, "min_contrast": 0.4, "return_iqa_result": true } }'{ "face_id": "budi-001", "face_detected": [ { "top": 0.1, "left": 0.2, "height": 0.3, "width": 0.25 } ], "image_quality": { "bounding_box": { "top": 100, "left": 150, "height": 200, "width": 200 }, "brightness": 0.8, "sharpness": 0.7, "contrast": 0.6 }}{ "message": "Bad quality image", "image_quality": { "brightness": 0.3, "sharpness": 0.2, "contrast": 0.4 }, "threshold": { "min_brightness": 0.5, "min_sharpness": 0.3, "min_contrast": 0.4 }}{ "message": "Unauthorized"}"Can't create new enrollment, limit is exceeded"{ "message": "Too Many Requests"}{ "message": "Internal Server Error"}{ "message": "Service Unavailable"}Mendaftarkan Wajah dari Embedding
Mendaftarkan identitas wajah menggunakan vektor embedding yang telah dihitung sebelumnya (pre-computed embedding). Berguna ketika proses ekstraksi embedding dilakukan di sisi klien atau oleh sistem lain.
Authorization
bearerAuth In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
text/plain
application/json
application/json
application/json
curl -X POST "https://fremis-n.example.com/v1/face/enrollment-by-embedding" \ -H "Content-Type: application/json" \ -d '{ "vector": [ 0.1, 0.2, 0.3 ], "keyspace": "vip-customers", "additional_params": { "face_id": "siti-002" } }'{ "face_id": "siti-002", "face_detected": []}{ "message": "Bad Request"}"Can't create new enrollment, limit is exceeded"{ "message": "Too Many Requests"}{ "message": "Internal Server Error"}{ "message": "Service Unavailable"}Menghapus Enrollment Wajah
Menghapus satu atau beberapa enrollment wajah dari keyspace berdasarkan daftar face_ids. Operasi ini bersifat permanen dan tidak dapat dibatalkan.
Authorization
bearerAuth In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://fremis-n.example.com/v1/face/delete-enrollment" \ -H "Content-Type: application/json" \ -d '{ "face_ids": [ "budi-001", "siti-002" ], "keyspace": "karyawan-jakarta" }'{ "deleted_face_ids": [ "budi-001", "siti-002" ]}{ "message": "Bad Request"}{ "message": "Too Many Requests"}{ "message": "Internal Server Error"}{ "message": "Service Unavailable"}Menghapus Satu Variasi Enrollment
Menghapus variasi-variasi tertentu dari satu identitas wajah dalam keyspace. Berguna untuk membersihkan variasi yang buruk kualitasnya tanpa menghapus seluruh enrollment.
Authorization
bearerAuth In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://fremis-n.example.com/v1/face/delete-enrollment-variation" \ -H "Content-Type: application/json" \ -d '{ "face_id": "budi-001", "variations": [ "0", "1" ], "keyspace": "karyawan-jakarta" }'{ "keyspace": "karyawan-jakarta", "face_id": "budi-001", "deleted_variations": [ "0", "1" ]}{ "message": "Bad Request"}{ "message": "Too Many Requests"}{ "message": "Internal Server Error"}{ "message": "Service Unavailable"}Mendapatkan Daftar Enrollment dalam Keyspace
Mengembalikan daftar face_id yang terdaftar dalam suatu keyspace dengan dukungan pagination. Respons mencakup total jumlah identitas, total variasi, serta informasi halaman.
Authorization
bearerAuth In: header
Path Parameters
Nama keyspace yang akan dikueri.
Query Parameters
Jumlah hasil per halaman (1–1000).
101 <= value <= 1000Nomor halaman, dimulai dari 1.
11 <= valueResponse Body
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://fremis-n.example.com/v1/face/keyspace/karyawan-jakarta/enrollment"{ "total_face_id": 100, "total_variation": 150, "data": [ { "face_id": "budi-001" }, { "face_id": "siti-002" } ], "limit": 10, "page": 1, "pages": 10, "count": 10}{ "message": "Bad Request"}{ "message": "Too Many Requests"}{ "message": "Internal Server Error"}{ "message": "Service Unavailable"}Mendapatkan Info Enrollment Berdasarkan ID
Mengambil vektor embedding (rata-rata/agregasi) untuk face_id tertentu dalam keyspace. Berguna untuk keperluan verifikasi atau analisis embedding.
Authorization
bearerAuth In: header
Path Parameters
Nama keyspace tempat wajah terdaftar.
Pengenal unik wajah yang akan diambil embedding-nya.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://fremis-n.example.com/v1/face/keyspace/karyawan-jakarta/id/budi-001"{ "embedding": [ 0.1, 0.2, 0.3 ]}{ "message": "Bad Request"}{ "message": "Too Many Requests"}{ "message": "Internal Server Error"}{ "message": "Service Unavailable"}Mendapatkan Embedding Original Sebuah Variasi
Mengambil vektor embedding original (presisi tinggi, sebelum proses kuantisasi) untuk face_id tertentu dalam keyspace.
Authorization
bearerAuth In: header
Path Parameters
Nama keyspace tempat wajah terdaftar.
Pengenal unik wajah yang akan diambil original embedding-nya.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://fremis-n.example.com/v1/face/keyspace/karyawan-jakarta/id/budi-001/original-embedding"{ "embedding": [ 0.1, 0.2, 0.3 ]}{ "message": "Bad Request"}{ "message": "Too Many Requests"}{ "message": "Internal Server Error"}{ "message": "Service Unavailable"}Mendapatkan Info Wajah Lengkap
Mengambil metadata lengkap tentang satu enrollment wajah, termasuk nama keyspace, ID internal keyspace, dan nomor partisi penyimpanan.
Authorization
bearerAuth In: header
Path Parameters
Nama keyspace tempat wajah terdaftar.
Pengenal unik wajah yang akan dikueri.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://fremis-n.example.com/v1/face/info/karyawan-jakarta/budi-001"{ "keyspace_name": "karyawan-jakarta", "face_id": "budi-001", "keyspace_id": 123, "partition": 0}{ "message": "Bad Request"}{ "message": "Too Many Requests"}{ "message": "Internal Server Error"}{ "message": "Service Unavailable"}Mendapatkan Daftar Variasi Sebuah Identitas
Mengembalikan semua variasi yang terdaftar untuk satu identitas wajah, dikelompokkan dalam satu objek. Setiap variasi menyertakan ID, waktu pembuatan, dan waktu pembaruan.
Authorization
bearerAuth In: header
Path Parameters
Nama keyspace tempat wajah terdaftar.
Pengenal unik wajah yang akan dikueri variasi-nya.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://fremis-n.example.com/v1/face/get-variations/karyawan-jakarta/budi-001"{ "keyspace_id": 123, "name": "budi-001", "partition_number": 0, "variations": [ { "id": 0, "created_at": "2024-01-15 10:30:00", "updated_at": "2024-01-15 10:30:00" }, { "id": 1, "created_at": "2024-01-16 09:00:00", "updated_at": "2024-01-16 09:00:00" } ]}{ "message": "Bad Request"}{ "message": "Too Many Requests"}{ "message": "Internal Server Error"}{ "message": "Service Unavailable"}Mendapatkan Variasi Duplikat dalam Keyspace
Mengembalikan variasi-variasi duplikat yang ditemukan dalam suatu keyspace. Berguna untuk membersihkan data — endpoint ini saat ini mengembalikan identitas pertama yang memiliki duplikasi.
Authorization
bearerAuth In: header
Path Parameters
Nama keyspace yang akan diperiksa duplikasi variasi-nya.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://fremis-n.example.com/v1/face/get-duplicate-variations/karyawan-jakarta"{ "keyspace_id": 123, "name": "budi-001", "partition_number": 0, "variations": [ { "id": 0, "created_at": "2024-01-15 10:30:00", "updated_at": "2024-01-15 10:30:00" }, { "id": 0, "created_at": "2024-01-15 11:00:00", "updated_at": "2024-01-15 11:00:00" } ]}{ "message": "Bad Request"}{ "message": "Too Many Requests"}{ "message": "Internal Server Error"}{ "message": "Service Unavailable"}