メインコンテンツへスキップ
Diditが750万ドルを調達、本人確認と不正対策のインフラを構築
Didit
ブログ一覧へ
ブログ2026年8月4日

顔検索1:N: 一人の人物が管理するすべてのアカウントを特定する (JA)

1回のAPI呼び出しで、検証済みの全ユーザーの中から顔を検索し、一致するすべてのアカウントを独自の識別子とともに返します。Diditの検証機能と連携すれば無料で利用でき、アカウントリストをアクタマップに変える基本機能です。.

By Didit更新日
face-search-duplicate-account-detection.png

プラットフォーム上で40のアカウントを運用しているオペレーターは、おそらく40のメールアドレス、40の支払い手段、そして場合によっては40のデバイスを持っています。しかし、彼らが40の顔を持っていることはありません。

アクセスフローの一部でセルフィーをキャプチャしている場合、あなたは既に、複製するのが非常に困難な唯一の識別子を保持しています。顔検索1:Nは、それを使用する呼び出しです。1つのリクエスト、1つの顔で、同じ人物が検証したあなたのシステム内のすべてのアカウントが返されます。

Diditの本人確認と連携すれば無料で利用でき、2秒以内に結果が返され、検証セッション内のライブネス中に自動的に実行されます。

主なポイント

  • POST /v3/face-search/は、共有のグローバルインデックスではなく、あなたのアプリケーションが登録した顔save_api_request=trueで実行されたセッション)に対して顔を検索します。
  • 一致する結果には、それぞれにあなたのvendor_dataが付与されるため、結果はあなたのアカウントIDに直接マッピングされます。
  • 2つのモードがあります。重複排除と既存ユーザーの検出のためのmost_similar、ブロックリストスクリーニングのためのblocklisted_or_approvedです。
  • statusは、ブロックリストに一致した場合にのみ"Declined"となります。重複は、DUPLICATED_FACEの警告とともに"Approved"を返します。これは、重複排除ポリシーがあなたのものであるため、意図的に情報提供に留められています。
  • レスポンスは、配列ではなく単一のface_searchオブジェクトです。これは人々を混乱させることがあります。
  • Diditの検証と連携すれば無料です。2秒未満で応答します。ライブネス中に自動的に実行されます。

1:Nが意味するもの、そしてそれが適切なツールである理由

1:1の顔照合は、「この人物はこの書類の人物か?」という質問に答えます。これは検証の質問であり、オンボーディング中に実行されます。

1:N検索は、異なる質問に答えます。「すでに検証済みのすべての人物の中で、この人物はそのうちの一人か?」1つの画像が入力され、インデックス内のすべての一致する結果が出力されます。

連携されたアカウントの悪用には、2番目の質問が重要です。Anthropicの蒸留キャンペーンに関するレポートでは、共有された支払い方法、連携されたタイミング、共有されたインフラストラクチャといった関係性シグナルから構築されたアトリビューションが説明されています。生体認証1:N検索は、オペレーターが複製するのに最もコストのかかる識別子から得られる、同じ種類のシグナルです。

インデックスはあなた自身のものです。顔検索は、save_api_request=trueを使用するセッション、またはsave_api_request=trueを使用するパッシブライブネスを通じて、あなたのアプリケーションが以前の検証で登録した顔に対して実行されます。これは、他のDidit顧客のユーザーを横断する検索ではありません。顔を登録していない場合、検索するものはありません。

API

リクエスト

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形式で、x-api-keyで認証されます。

必須: user_image — jpg、jpeg、png、tiff、またはwebp形式で、最大5 MB。PDFは受け付けられません。画像には少なくとも1つの検出可能な顔が含まれている必要があります。複数の顔がある場合は、最も大きいバウンディングボックスが優先されます。

オプション:

  • search_type — 重複排除と再訪ユーザー検出のためのmost_similar(デフォルト)、またはブロックリストスクリーニングのためのblocklisted_or_approved
  • save_api_request — この画像をあなたのインデックスに登録します。
  • vendor_data — 主体に対するあなたの識別子。

レスポンス

レスポンスには単一のface_searchオブジェクトが含まれます。ほとんどのDidit機能は複数の配列を返しますが、これはパーサーを作成する前に注意深く読む価値のある形状です。

{
  "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": []
  }
}

調査に役立つフィールド:

  • total_matches — この顔を共有するアカウントの数。
  • vendor_data(各一致結果に付与) — あなたの識別子なので、一致リストは即座にアカウントリストになります。
  • similarity_percentage — 各個別一致の強度。
  • verification_date — タイムライン。11ヶ月間にわたって検証された12のアカウントは、午後1時に検証された12のアカウントとは異なる意味を持ちます。
  • is_blocklisted — この一致がすでにブロックリストに登録されているかどうか。
  • session_id — そのセッションがキャプチャした他のすべての情報(デバイスやネットワークの警告を含む)へのピボット。

ステータスの意味論

これはエンドポイント全体の最も重要な動作です。

statusは、少なくとも1つのブロックリスト一致が見つかった場合にのみ"Declined"となります。純粋な重複一致は"Approved"を返します。

重複は拒否ではありません。それは情報です。Diditは、重複には正当な説明があり、あなたの製品のルールを知っているのはあなただけであるため、意図的に重複排除の決定をあなたに委ねています。

警告

警告意味
FACE_IN_BLOCKLIST確定的なブロックリスト一致 — 拒否
POSSIBLE_FACE_IN_BLOCKLISTしきい値以下のギリギリの一致 — 手動レビューへルーティング
DUPLICATED_FACEこの顔はすでに別のvendor_dataで検証済み
POSSIBLE_DUPLICATED_FACEギリギリの重複
MULTIPLE_FACES_DETECTED提出された画像に複数の顔が検出された

失敗モード

  • HTTP 400user_imageで顔が検出されませんでした。撮り直しを要求してください。
  • HTTP 403 — クレジット不足です。
  • status: "Declined"FACE_IN_BLOCKLIST — 確定的な一致。拒否してください。
  • POSSIBLE_FACE_IN_BLOCKLIST — しきい値を下回っています。手動レビューが必要です。
  • DUPLICATED_FACE — 別のvendor_dataで既に検証済みです。あなたのポリシーに従って、結合、ブロック、または許可してください。

自動パス

多くの場合、エンドポイントを呼び出す必要すらありません。顔検索は、検証セッション内のライブネス中に自動的に実行されます

  • 顔の生体認証は、以前に検証されたすべてのユーザーと比較されます。
  • 顔の類似性によって、潜在的な重複アカウントが特定されます。
  • 設定された類似度しきい値に従って、一致がフラグ付けされます。
  • 顔はブロックリストと照合され、ブロックリストに一致すると自動的に検証が拒否されます。

したがって、すでに完全な検証を実行している任意のティアでは、重複検出は追加費用なし、追加呼び出しなしで含まれています。スタンドアロンエンドポイントは、セッションフローではカバーできないケース(事後のアカウント調査、別の方法で取得した画像のスクリーニング、またはすでに保持している画像に対してブロックリストに特化した検索を実行するためにsearch_typeを切り替える場合)のためにあります。

一致をアクタマップに変える

1つの疑わしいアカウントから始まる実用的なワークフロー:

  1. 顔を検索します。total_matches: 12 — 12のアカウント、1人の人物。
  2. vendor_dataを読み取ります。あなたの独自のアカウントIDが12個、結合は不要です。
  3. タイムラインを読み取ります。verification_dateの値をクラスタリングします。一斉に作成されたアカウントは、数年間にわたって作成されたアカウントとは運用上異なります。
  4. session_idでピボットします。各セッションのデバイスとネットワークの警告を抽出します。DUPLICATED_DEVICE_FINGERPRINTを共有する顔はクラスタを強化しますが、関連性のないデバイス上のアカウントは異なる配置である可能性があります。
  5. 展開します。ステップ4で浮上したデバイスとIP範囲は、顔検索で見逃されたアカウント(別の人物がこれらのチェックを完了したため)を取り込みます。
  6. 一度決定し、識別子全体に適用します。クラスタが不正行為と確認された場合、確認済みのreference_session_idを、関心のある各エントリタイプブロックリスト(顔、デバイス、IP、メール、電話、書類)に投稿します。各リストにつき1回の呼び出しで、各呼び出しはそのセッションから正しい値を自動抽出するため、手動で再入力する必要はありません。

6つのステップ、1つの開始点、そしてどこにもプロンプト検査はありません。トラフィックレイヤーはこのアカウントに何か問題があることを伝えます。これは、それが実際にはいくつのアカウントであるかを伝えます。

はっきりと述べておく価値があります。1:N顔検索は、モデル抽出を防止せず、検出もしません。顔検索はあなたのAPIトラフィックを認識しません。それはアカウントを人物に解決し、それによって1つの行ではなく、クラスター全体でアラートに対応することができます。モデルレベルの出力制御とセマンティックトラフィック検出は別のレイヤーであり、モデルプロバイダーの責任です。

ユースケース

AI APIプラットフォームが行動アラートをオペレーターが管理する全アカウントセットに解決します。

無料枠とクレジットの悪用 — 1人の人物が多数の試用アカウントを持つことは、リスクが低いだけで同じ検出問題です。

マーケットプレイスとギグプラットフォームが、禁止された販売者、ドライバー、または配達員が再登録するのを捕捉します。

iGamingが、単一アカウントルールと自己排除を強制します。排除されたプレイヤーが戻ってくることは、単なる悪用ケースではなく、規制違反となります。

金融サービスが、1つの実在の顔が多数の偽造された身元に拡散されている合成身元リングを特定します。

よくある質問

私の顔インデックスは他のDidit顧客と共有されますか?

いいえ。顔検索は、あなたのアプリケーションが独自の検証を通じて構築したインデックスに対して実行されます。顧客間の検索ではありません。

顔がインデックスに入るかどうかは何によって制御されますか?

検証セッションまたはパッシブライブネス呼び出しにおけるsave_api_request=trueです。あなたは、生体認証データの処理に関する自身のプライバシー通知と法的根拠に沿って、何を登録し、保持するかを決定します。

どの類似度しきい値を使用すべきですか?

チューニングが適用される場所を認識してください。スタンドアロンエンドポイントでは、確定的な一致(FACE_IN_BLOCKLISTDUPLICATED_FACE)と可能性のある一致(POSSIBLE_FACE_IN_BLOCKLISTPOSSIBLE_DUPLICATED_FACE)を分ける類似度帯は内部的に固定されています。アプリケーションごとのしきい値チューニングは、ワークフローのライブネスチェックに適用され、POST /v3/face-search/には適用されません。したがって、スタンドアロンパスでは、一致ごとにsimilarity_percentageを読み取り、アプリケーションロジックで独自の基準を適用し、POSSIBLE_*の警告を拒否キューではなくレビューキューとして扱ってください。

大規模な場合、どれくらいの速さで動作しますか?

2秒未満で応答します。

Diditの検証を受けていない顔を検索できますか?

はい。受け入れられた形式のuser_imageであれば機能します。顔が検出されない場合、呼び出しはHTTP 400を返します。

本当に無料ですか?

はい。顔検索1:NはDiditの本人確認と連携すれば無料です。検索ごとの料金はかかりません。インデックスを構築する検証に対して料金を支払うことになり、フルバンドルで0.33ドル、毎月最初の500回は無料です。

同じ人物が正当に2つのアカウントを持っている場合はどうなりますか?

その場合、DUPLICATED_FACEはまさに情報提供のためのシグナルとして設計されており、それが拒否されない理由です。あなたの製品のルールに従って、それらを結合するか、許可するか、またはユーザーに尋ねてください。

始める準備はできましたか?

顔検索は、すべてのDiditアカウントで利用でき、別途製品を購入する必要はありません。

本人確認と不正対策のインフラ。

KYC、KYB、取引監視、ウォレットスクリーニングを一つのAPIで。5分で統合できます。

AIにこのページの要約を依頼する
顔検索1:Nで重複アカウントを検出 | Didit.