Pencarian Wajah 1:N: Menemukan Setiap Akun yang Dikendalikan Satu Orang (ID)
Satu panggilan API mencari wajah di seluruh pengguna terverifikasi yang Anda miliki dan mengembalikan setiap akun yang cocok dengan pengidentifikasi Anda sendiri.

Seorang operator yang menjalankan empat puluh akun di platform Anda memiliki empat puluh alamat email, mungkin empat puluh instrumen pembayaran, dan kemungkinan empat puluh perangkat. Yang tidak mereka miliki adalah empat puluh wajah.
Jika ada bagian dari alur akses Anda yang menangkap swafoto, Anda sudah memegang satu pengidentifikasi yang sangat mahal untuk digandakan. Pencarian Wajah 1:N adalah panggilan yang menggunakannya — satu permintaan, satu wajah, dan kembali setiap akun dalam sistem Anda sendiri yang diverifikasi oleh orang yang sama.
Ini gratis dengan verifikasi identitas Didit, mengembalikan hasil dalam waktu kurang dari dua detik, dan berjalan secara otomatis selama liveness dalam sesi verifikasi.
Poin-poin penting
POST /v3/face-search/mencari wajah terhadap wajah yang telah didaftarkan oleh aplikasi Anda sendiri — sesi yang dijalankan dengansave_api_request=true— bukan indeks global bersama.- Hasil yang cocok dikembalikan dengan
vendor_dataAnda sendiri pada masing-masing, sehingga hasilnya langsung dipetakan ke ID akun Anda. - Dua mode:
most_similaruntuk deduplikasi dan mengembalikan pengguna,blocklisted_or_approveduntuk penyaringan daftar hitam. statusadalah"Declined"hanya pada kecocokan daftar hitam. Duplikat mengembalikan"Approved"dengan peringatanDUPLICATED_FACE— informatif berdasarkan desain, karena kebijakan deduplikasi adalah milik Anda.- Responsnya adalah objek
face_searchyang tunggal, bukan larik. Ini sering membingungkan. - Gratis dengan verifikasi Didit. Respons kurang dari dua detik. Berjalan secara otomatis selama liveness.
Apa arti 1:N, dan mengapa ini adalah alat yang tepat
Pencocokan wajah 1:1 menjawab "apakah ini orang yang ada di dokumen ini?" Itu adalah pertanyaan verifikasi, dan itulah yang berjalan selama orientasi.
Pencarian 1:N menjawab pertanyaan yang berbeda: "dari semua orang yang telah saya verifikasi, apakah ini salah satunya?" Satu gambar masuk, dan setiap kecocokan dalam indeks Anda keluar.
Untuk penyalahgunaan akun yang terkoordinasi, pertanyaan kedua adalah yang penting. Laporan Anthropic tentang kampanye distilasi menjelaskan atribusi yang dibangun dari sinyal relasional — metode pembayaran bersama, waktu yang terkoordinasi, infrastruktur bersama. Pencarian biometrik 1:N adalah kelas sinyal yang sama, bersumber dari pengidentifikasi paling mahal yang harus digandakan oleh operator.
Indeks tersebut milik Anda. Pencarian Wajah berjalan terhadap wajah yang telah didaftarkan oleh aplikasi Anda sendiri melalui verifikasi sebelumnya — sesi dengan save_api_request=true, atau Liveness Pasif dengan save_api_request=true. Ini bukan pencarian di antara pengguna pelanggan Didit lainnya. Jika Anda belum mendaftarkan wajah, tidak ada yang bisa dicari.
API
Permintaan
curl -X POST 'https://verification.didit.me/v3/face-search/' \
-H 'x-api-key: YOUR_API_KEY' \
-F 'user_image=@./selfie.jpg' \
-F 'search_type=most_similar' \
-F 'save_api_request=true' \
-F 'vendor_data=acct_8842'
multipart/form-data, diautentikasi dengan x-api-key.
Wajib: user_image — jpg, jpeg, png, tiff atau webp, maksimum 5 MB. PDF tidak diterima. Gambar harus berisi setidaknya satu wajah yang dapat dideteksi; jika ada beberapa, kotak pembatas terbesar yang menang.
Opsional:
search_type—most_similar(default) untuk deduplikasi dan deteksi pengguna yang kembali, ataublocklisted_or_approveduntuk penyaringan daftar hitam.save_api_request— daftarkan gambar ini ke indeks Anda.vendor_data— pengidentifikasi Anda sendiri untuk subjek.
Respons
Respons membawa objek face_search yang tunggal. Sebagian besar fitur Didit mengembalikan larik jamak, jadi ini adalah satu bentuk yang patut dibaca dengan cermat sebelum Anda menulis parser.
{
"request_id": "...",
"face_search": {
"status": "Approved",
"total_matches": 12,
"matches": [
{
"session_id": "...",
"session_number": 4471,
"similarity_percentage": 97.4,
"vendor_data": "acct_3310",
"verification_date": "2026-06-02T09:14:00Z",
"user_details": { },
"match_image_url": "...",
"status": "Approved",
"is_blocklisted": false
}
],
"user_image": { "entities": [] },
"warnings": []
}
}
Bidang-bidang yang membawa investigasi:
total_matches— berapa banyak akun yang berbagi wajah ini.vendor_datapada setiap kecocokan — pengidentifikasi Anda, sehingga daftar kecocokan segera menjadi daftar akun.similarity_percentage— kekuatan setiap kecocokan individu.verification_date— garis waktu. Dua belas akun yang diverifikasi selama sebelas bulan dibaca berbeda dari dua belas yang diverifikasi dalam satu sore.is_blocklisted— apakah kecocokan ini sudah ada di daftar hitam Anda.session_id— poros ke segala sesuatu yang ditangkap sesi itu, termasuk perangkat dan peringatan jaringannya.
Semantik status
Ini adalah perilaku terpenting di seluruh titik akhir:
statusadalah"Declined"hanya ketika setidaknya satu kecocokan daftar hitam ditemukan. Kecocokan duplikat murni mengembalikan"Approved".
Duplikat bukanlah penolakan. Itu adalah informasi. Didit sengaja menolak untuk membuat keputusan deduplikasi untuk Anda, karena duplikat memiliki penjelasan yang sah dan hanya Anda yang tahu aturan produk Anda.
Peringatan
| Peringatan | Arti |
|---|---|
FACE_IN_BLOCKLIST | Kecocokan daftar hitam definitif — tolak |
POSSIBLE_FACE_IN_BLOCKLIST | Kecocokan batas bawah ambang batas keras — arahkan ke tinjauan manual |
DUPLICATED_FACE | Wajah ini sudah diverifikasi dengan vendor_data yang berbeda |
POSSIBLE_DUPLICATED_FACE | Duplikat batas |
MULTIPLE_FACES_DETECTED | Lebih dari satu wajah terdeteksi dalam gambar yang dikirimkan |
Mode kegagalan
- HTTP 400 — tidak ada wajah terdeteksi di
user_image. Minta pengulangan. - HTTP 403 — kehabisan kredit.
status: "Declined"denganFACE_IN_BLOCKLIST— kecocokan definitif. Tolak.POSSIBLE_FACE_IN_BLOCKLIST— di bawah ambang batas keras. Tinjauan manual.DUPLICATED_FACE— sudah diverifikasi denganvendor_datayang berbeda. Gabungkan, blokir, atau izinkan sesuai kebijakan Anda.
Jalur otomatis
Anda sering tidak perlu memanggil titik akhir sama sekali. Pencarian Wajah berjalan secara otomatis selama liveness dalam sesi verifikasi:
- Biometrik wajah dibandingkan dengan semua pengguna yang sebelumnya diverifikasi.
- Potensi akun duplikat diidentifikasi berdasarkan kesamaan wajah.
- Kecocokan ditandai sesuai ambang batas kesamaan yang Anda konfigurasikan.
- Wajah diperiksa terhadap daftar hitam Anda, dan kecocokan daftar hitam secara otomatis menolak verifikasi.
Jadi, untuk tingkat apa pun di mana Anda sudah menjalankan verifikasi penuh, deteksi duplikat disertakan tanpa biaya tambahan dan tanpa panggilan tambahan. Titik akhir mandiri adalah untuk kasus-kasus yang tidak dicakup oleh alur sesi — menyelidiki akun setelah fakta, menyaring gambar yang Anda peroleh dengan cara lain, atau mengganti search_type untuk menjalankan pencarian yang berfokus pada daftar hitam pada gambar yang sudah Anda miliki.
Mengubah kecocokan menjadi peta aktor
Alur kerja praktis, dimulai dari satu akun yang mencurigakan:
- Cari wajahnya.
total_matches: 12— dua belas akun, satu orang. - Baca
vendor_data. Dua belas ID akun Anda sendiri, tidak perlu gabungan. - Baca garis waktunya. Kelompokkan nilai
verification_date. Akun yang dibuat secara beruntun secara operasional berbeda dari akun yang dibuat selama bertahun-tahun. - Pivot pada
session_id. Tarik peringatan perangkat dan jaringan setiap sesi. Wajah yang berbagiDUPLICATED_DEVICE_FINGERPRINTmemperketat klaster; akun pada perangkat yang tidak terkait mungkin merupakan pengaturan yang berbeda. - Perluas. Perangkat dan rentang IP yang muncul di langkah 4 akan menarik akun yang terlewat oleh pencarian wajah — karena orang yang berbeda menyelesaikan pemeriksaan tersebut.
- Putuskan sekali, terapkan di seluruh pengidentifikasi. Jika klaster dikonfirmasi sebagai penyalahgunaan, posting
reference_session_idyang dikonfirmasi ke setiap daftar hitam jenis entri yang Anda pedulikan — wajah, perangkat, IP, email, telepon, dokumen. Ini adalah satu panggilan per daftar, dan setiap panggilan secara otomatis mengekstrak nilai yang tepat dari sesi itu, sehingga tidak ada yang diketik ulang secara manual.
Enam langkah, satu titik awal, dan tidak ada inspeksi cepat di mana pun. Lapisan lalu lintas memberi tahu Anda ada yang salah dengan akun ini. Ini memberi tahu Anda berapa banyak akun itu sebenarnya.
Penting untuk dinyatakan dengan jelas: pencarian wajah 1:N tidak mencegah ekstraksi model dan tidak mendeteksinya. Pencarian Wajah tidak memiliki visibilitas ke lalu lintas API Anda. Ini menyelesaikan akun ke orang, yang memungkinkan Anda bertindak atas peringatan di seluruh klaster daripada satu baris. Kontrol keluaran tingkat model dan deteksi lalu lintas semantik adalah lapisan terpisah, dan itu tetap menjadi tanggung jawab penyedia model.
Kasus penggunaan
Platform API AI menyelesaikan peringatan perilaku ke set akun lengkap yang dikendalikan operator.
Penyalahgunaan tingkat gratis dan kredit — satu orang, banyak akun percobaan, adalah masalah deteksi yang sama dengan taruhan yang lebih rendah.
Pasar dan platform pertunjukan menangkap penjual, pengemudi, atau kurir yang dilarang mendaftar ulang.
iGaming memberlakukan aturan satu akun dan pengecualian diri, di mana pemain yang dikecualikan yang kembali adalah kegagalan regulasi, bukan hanya kasus penyalahgunaan.
Layanan keuangan mengidentifikasi cincin identitas sintetis di mana satu wajah asli tersebar di banyak identitas yang dibuat-buat.
Pertanyaan yang sering diajukan
Apakah indeks wajah saya dibagikan dengan pelanggan Didit lainnya?
Tidak. Pencarian Wajah berjalan terhadap indeks yang dibangun oleh aplikasi Anda sendiri melalui verifikasi Anda sendiri. Ini bukan pencarian lintas pelanggan.
Apa yang mengontrol apakah wajah masuk ke indeks?
save_api_request=true pada sesi verifikasi atau panggilan Liveness Pasif. Anda memutuskan apa yang didaftarkan dan Anda mengontrol retensi, sesuai dengan pemberitahuan privasi Anda sendiri dan dasar hukum untuk memproses data biometrik.
Ambang batas kesamaan apa yang harus saya gunakan?
Waspadai di mana penyetelan berlaku. Pada titik akhir mandiri, pita kesamaan yang memisahkan kecocokan yang dikonfirmasi (FACE_IN_BLOCKLIST, DUPLICATED_FACE) dari kemungkinan kecocokan (POSSIBLE_FACE_IN_BLOCKLIST, POSSIBLE_DUPLICATED_FACE) diperbaiki secara internal — penyetelan ambang batas per aplikasi berlaku untuk pemeriksaan liveness alur kerja, bukan untuk POST /v3/face-search/. Jadi pada jalur mandiri, baca similarity_percentage per kecocokan dan terapkan bar Anda sendiri dalam logika aplikasi, dan perlakukan peringatan POSSIBLE_* sebagai antrean tinjauan Anda daripada antrean penolakan Anda.
Seberapa cepat pada skala besar?
Respons kurang dari dua detik.
Bisakah saya mencari wajah yang belum pernah melalui verifikasi Didit?
Ya. Setiap user_image dalam format yang diterima berfungsi. Jika tidak ada wajah yang terdeteksi, panggilan mengembalikan HTTP 400.
Apakah ini benar-benar gratis?
Ya — Pencarian Wajah 1:N gratis dengan verifikasi identitas Didit. Tidak ada biaya per pencarian. Anda membayar untuk verifikasi yang membangun indeks, dengan $0.33 untuk bundel lengkap, dengan 500 pemeriksaan pertama setiap bulan gratis.
Bagaimana jika orang yang sama secara sah memiliki dua akun?
Maka DUPLICATED_FACE persis seperti sinyal informatif yang dirancang — itulah mengapa tidak menolak. Gabungkan, izinkan, atau tanyakan kepada pengguna, sesuai dengan aturan produk Anda.
Siap untuk memulai?
Pencarian Wajah tersedia di setiap akun Didit, tanpa perlu membeli produk terpisah.
- Baca dokumennya — Ikhtisar Pencarian Wajah 1:N dan API Daftar untuk daftar hitam wajah.
- Lihat produknya — Verifikasi Pengguna.
- Periksa harganya — Pencarian Wajah 1:N gratis; bundel verifikasi yang membangun indeks adalah $0.33.
- Mulai gratis — business.didit.me, 500 verifikasi KYC sebulan tanpa biaya.
Artikel terkait
- Masalah Akun Hydra: Mengapa Pertahanan Distilasi Dimulai dengan Resolusi Identitas (ID)
- Verifikasi Bisnis untuk Akses API AI: Siapa Sebenarnya yang Mengendalikan Akun Ini? (ID)
- Akses API Terverifikasi untuk Penyedia Model AI: Arsitektur Berjenjang Risiko (ID)
- Pencarian Wajah 1:N: Menemukan Setiap Akun yang Dikendalikan Satu Orang (ID)
- Otentikasi Biometrik untuk Akses API AI: Mengikat Hak Istimewa ke Individu (ID)
- Jaringan Akun Hydra: Bagaimana 20.000 Akun Menjadi Satu Aktor (ID)