curl -X POST \
"https://verilock.io/api/v1/auth/biometric" \
-H "Authorization: Bearer qi_live_your_api_key_here" \
-F "session_id=ses_a1b2c3d4-e5f6-7890-abcd-ef1234567890" \
-F "file=@new_selfie.jpg" \
-F "threshold=85"
import requests
response = requests.post(
"https://verilock.io/api/v1/auth/biometric",
headers={"Authorization": "Bearer qi_live_your_api_key_here"},
files={"file": open("new_selfie.jpg", "rb")},
data={
"session_id": "ses_a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"threshold": 85,
},
)
const form = new FormData();
form.append('session_id', 'ses_a1b2c3d4-e5f6-7890-abcd-ef1234567890');
form.append('file', fs.createReadStream('new_selfie.jpg'));
form.append('threshold', '85');
const res = await fetch('https://verilock.io/api/v1/auth/biometric', {
method: 'POST',
headers: { 'Authorization': 'Bearer qi_live_your_api_key_here' },
body: form,
});
{
"id": "bio_f1e2d3c4-b5a6-9870-fedc-ba0987654321",
"status": "processing",
"message": "Biometric authentication started."
}
Verification Enhancements
Biometric Authentication
Re-authenticate users by comparing a new selfie against their approved session.
POST
/
auth
/
biometric
curl -X POST \
"https://verilock.io/api/v1/auth/biometric" \
-H "Authorization: Bearer qi_live_your_api_key_here" \
-F "session_id=ses_a1b2c3d4-e5f6-7890-abcd-ef1234567890" \
-F "file=@new_selfie.jpg" \
-F "threshold=85"
import requests
response = requests.post(
"https://verilock.io/api/v1/auth/biometric",
headers={"Authorization": "Bearer qi_live_your_api_key_here"},
files={"file": open("new_selfie.jpg", "rb")},
data={
"session_id": "ses_a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"threshold": 85,
},
)
const form = new FormData();
form.append('session_id', 'ses_a1b2c3d4-e5f6-7890-abcd-ef1234567890');
form.append('file', fs.createReadStream('new_selfie.jpg'));
form.append('threshold', '85');
const res = await fetch('https://verilock.io/api/v1/auth/biometric', {
method: 'POST',
headers: { 'Authorization': 'Bearer qi_live_your_api_key_here' },
body: form,
});
{
"id": "bio_f1e2d3c4-b5a6-9870-fedc-ba0987654321",
"status": "processing",
"message": "Biometric authentication started."
}
Compare a new selfie against the original selfie from an approved verification session. Ideal for step-up authentication, login verification, or high-value transaction confirmation.
Authenticate
string
required
The ID of an approved verification session to compare against.
file
required
New selfie image. Accepted:
jpg, jpeg, png. Max: 10 MB.number
Minimum similarity score to consider a match (50–100). Default:
80.object
Optional device metadata (model, OS, IP).
curl -X POST \
"https://verilock.io/api/v1/auth/biometric" \
-H "Authorization: Bearer qi_live_your_api_key_here" \
-F "session_id=ses_a1b2c3d4-e5f6-7890-abcd-ef1234567890" \
-F "file=@new_selfie.jpg" \
-F "threshold=85"
import requests
response = requests.post(
"https://verilock.io/api/v1/auth/biometric",
headers={"Authorization": "Bearer qi_live_your_api_key_here"},
files={"file": open("new_selfie.jpg", "rb")},
data={
"session_id": "ses_a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"threshold": 85,
},
)
const form = new FormData();
form.append('session_id', 'ses_a1b2c3d4-e5f6-7890-abcd-ef1234567890');
form.append('file', fs.createReadStream('new_selfie.jpg'));
form.append('threshold', '85');
const res = await fetch('https://verilock.io/api/v1/auth/biometric', {
method: 'POST',
headers: { 'Authorization': 'Bearer qi_live_your_api_key_here' },
body: form,
});
{
"id": "bio_f1e2d3c4-b5a6-9870-fedc-ba0987654321",
"status": "processing",
"message": "Biometric authentication started."
}
Get Result
GET /v1/auth/biometric/{id}
{
"id": "bio_f1e2d3c4-...",
"session_id": "ses_a1b2c3d4-...",
"result": "match",
"similarity": 94.32,
"liveness_score": 87.50,
"liveness_passed": true,
"threshold_used": 85.00,
"created_at": "2026-03-16T14:30:00Z"
}
{
"id": "bio_f1e2d3c4-...",
"session_id": "ses_a1b2c3d4-...",
"result": "no_match",
"similarity": 45.10,
"liveness_score": 82.00,
"liveness_passed": true,
"threshold_used": 85.00,
"created_at": "2026-03-16T14:30:00Z"
}
Result Values
| Result | Description |
|---|---|
match | Similarity meets threshold and liveness passed |
no_match | Similarity below threshold or liveness failed |
error | Processing error (no face detected, file corrupt) |
pending | Still processing |
Processing is asynchronous. Poll
GET /auth/biometric/{id} or subscribe to the biometric.completed webhook event.
