Lewati ke konten utama
Didit Raih $7,5 Juta untuk Membangun Infrastruktur Identitas dan Fraud
Didit
Kembali ke blog
Blog · 4 Agustus 2026

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.

Oleh DiditDiperbarui
face-search-duplicate-account-detection.png

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 dengan save_api_request=true — bukan indeks global bersama.
  • Hasil yang cocok dikembalikan dengan vendor_data Anda sendiri pada masing-masing, sehingga hasilnya langsung dipetakan ke ID akun Anda.
  • Dua mode: most_similar untuk deduplikasi dan mengembalikan pengguna, blocklisted_or_approved untuk penyaringan daftar hitam.
  • status adalah "Declined" hanya pada kecocokan daftar hitam. Duplikat mengembalikan "Approved" dengan peringatan DUPLICATED_FACE — informatif berdasarkan desain, karena kebijakan deduplikasi adalah milik Anda.
  • Responsnya adalah objek face_search yang 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_typemost_similar (default) untuk deduplikasi dan deteksi pengguna yang kembali, atau blocklisted_or_approved untuk 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_data pada 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:

status adalah "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

PeringatanArti
FACE_IN_BLOCKLISTKecocokan daftar hitam definitif — tolak
POSSIBLE_FACE_IN_BLOCKLISTKecocokan batas bawah ambang batas keras — arahkan ke tinjauan manual
DUPLICATED_FACEWajah ini sudah diverifikasi dengan vendor_data yang berbeda
POSSIBLE_DUPLICATED_FACEDuplikat batas
MULTIPLE_FACES_DETECTEDLebih 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" dengan FACE_IN_BLOCKLIST — kecocokan definitif. Tolak.
  • POSSIBLE_FACE_IN_BLOCKLIST — di bawah ambang batas keras. Tinjauan manual.
  • DUPLICATED_FACE — sudah diverifikasi dengan vendor_data yang 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:

  1. Cari wajahnya. total_matches: 12 — dua belas akun, satu orang.
  2. Baca vendor_data. Dua belas ID akun Anda sendiri, tidak perlu gabungan.
  3. Baca garis waktunya. Kelompokkan nilai verification_date. Akun yang dibuat secara beruntun secara operasional berbeda dari akun yang dibuat selama bertahun-tahun.
  4. Pivot pada session_id. Tarik peringatan perangkat dan jaringan setiap sesi. Wajah yang berbagi DUPLICATED_DEVICE_FINGERPRINT memperketat klaster; akun pada perangkat yang tidak terkait mungkin merupakan pengaturan yang berbeda.
  5. 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.
  6. Putuskan sekali, terapkan di seluruh pengidentifikasi. Jika klaster dikonfirmasi sebagai penyalahgunaan, posting reference_session_id yang 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.

Infrastruktur untuk identitas dan fraud.

Satu API untuk KYC, KYB, Transaction Monitoring, dan Wallet Screening. Integrasi dalam 5 menit.

Minta AI untuk merangkum halaman ini
Pencarian Wajah 1:N untuk Deteksi Akun Duplikat | Didit.