Skip to main content
POST
/
face-search
curl -X POST \
  "https://verilock.io/api/v1/face-search" \
  -H "Authorization: Bearer qi_live_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "session_id": "ses_a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "threshold": 90
  }'
{
  "id": "fs_d4e5f6a1-b2c3-7890-fedc-ba0987654321",
  "duplicate_found": true,
  "highest_similarity": 97.82,
  "matches": [
    {
      "face_id": "aws-face-id-xxx",
      "similarity": 97.82,
      "session_id": "ses_previous-session-uuid",
      "external_image_id": "session-ses_previous-session-uuid"
    }
  ],
  "threshold_used": 90.00
}
Search a selfie against all previously verified faces in your organization’s collection. Detects duplicate identities — where the same person verified under different names or credentials.

Search for Duplicates

session_id
string
required
The session whose selfie will be used as the search query.
threshold
number
Minimum similarity score to consider a match (50–100). Default: 90.
curl -X POST \
  "https://verilock.io/api/v1/face-search" \
  -H "Authorization: Bearer qi_live_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "session_id": "ses_a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "threshold": 90
  }'
{
  "id": "fs_d4e5f6a1-b2c3-7890-fedc-ba0987654321",
  "duplicate_found": true,
  "highest_similarity": 97.82,
  "matches": [
    {
      "face_id": "aws-face-id-xxx",
      "similarity": 97.82,
      "session_id": "ses_previous-session-uuid",
      "external_image_id": "session-ses_previous-session-uuid"
    }
  ],
  "threshold_used": 90.00
}

Get Search Result

GET /v1/face-search/{id}
Retrieve a previous face search result by ID.

How It Works

1

Face indexing

When a session is approved, the selfie is automatically indexed into your organization’s face collection.
2

Search query

When you call POST /face-search, the session’s selfie is compared against all indexed faces in your collection.
3

Duplicate detection

If a match exceeds the threshold (self-matches excluded), it’s flagged as a duplicate. A face.duplicate_found webhook is dispatched.
Face collections are per-organization. Cross-organization searches are not supported.