curl -X POST \
"https://verilock.io/api/v1/age-verify" \
-H "Authorization: Bearer qi_live_your_api_key_here" \
-F "file=@selfie.jpg" \
-F "min_age=18"
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://verilock.io/api/v1/age-verify',
[
'headers' => [
'Authorization' => 'Bearer qi_live_your_api_key_here',
],
'multipart' => [
['name' => 'file', 'contents' => fopen('selfie.jpg', 'r')],
['name' => 'min_age', 'contents' => '18'],
],
]
);
import requests
response = requests.post(
"https://verilock.io/api/v1/age-verify",
headers={"Authorization": "Bearer qi_live_your_api_key_here"},
files={"file": open("selfie.jpg", "rb")},
data={"min_age": 18},
)
{
"verified": true,
"estimated_age_low": 24,
"estimated_age_high": 32,
"min_age_required": 18,
"confidence": 99.2
}
{
"verified": false,
"estimated_age_low": 14,
"estimated_age_high": 17,
"min_age_required": 18,
"confidence": 97.8
}
{
"verified": false,
"reason": "no_face_detected"
}
Data & Compliance
Age Verification
AI-powered age estimation from selfie images for age-gating and compliance.
POST
/
age-verify
curl -X POST \
"https://verilock.io/api/v1/age-verify" \
-H "Authorization: Bearer qi_live_your_api_key_here" \
-F "file=@selfie.jpg" \
-F "min_age=18"
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://verilock.io/api/v1/age-verify',
[
'headers' => [
'Authorization' => 'Bearer qi_live_your_api_key_here',
],
'multipart' => [
['name' => 'file', 'contents' => fopen('selfie.jpg', 'r')],
['name' => 'min_age', 'contents' => '18'],
],
]
);
import requests
response = requests.post(
"https://verilock.io/api/v1/age-verify",
headers={"Authorization": "Bearer qi_live_your_api_key_here"},
files={"file": open("selfie.jpg", "rb")},
data={"min_age": 18},
)
{
"verified": true,
"estimated_age_low": 24,
"estimated_age_high": 32,
"min_age_required": 18,
"confidence": 99.2
}
{
"verified": false,
"estimated_age_low": 14,
"estimated_age_high": 17,
"min_age_required": 18,
"confidence": 97.8
}
{
"verified": false,
"reason": "no_face_detected"
}
Verify a person’s age using facial analysis. Returns an estimated age range with confidence. No session required — standalone endpoint.
Parameters
file
required
Selfie image file. Accepted:
jpg, jpeg, png. Max: 10 MB.integer
required
Minimum required age (1–120). The person must appear at least this old to pass.
curl -X POST \
"https://verilock.io/api/v1/age-verify" \
-H "Authorization: Bearer qi_live_your_api_key_here" \
-F "file=@selfie.jpg" \
-F "min_age=18"
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://verilock.io/api/v1/age-verify',
[
'headers' => [
'Authorization' => 'Bearer qi_live_your_api_key_here',
],
'multipart' => [
['name' => 'file', 'contents' => fopen('selfie.jpg', 'r')],
['name' => 'min_age', 'contents' => '18'],
],
]
);
import requests
response = requests.post(
"https://verilock.io/api/v1/age-verify",
headers={"Authorization": "Bearer qi_live_your_api_key_here"},
files={"file": open("selfie.jpg", "rb")},
data={"min_age": 18},
)
{
"verified": true,
"estimated_age_low": 24,
"estimated_age_high": 32,
"min_age_required": 18,
"confidence": 99.2
}
{
"verified": false,
"estimated_age_low": 14,
"estimated_age_high": 17,
"min_age_required": 18,
"confidence": 97.8
}
{
"verified": false,
"reason": "no_face_detected"
}
Age in Sessions
When a selfie is uploaded to a KYC session, age estimation is extracted automatically. Results appear in the session selfie data:{
"selfies": [{
"face_match_score": 96.45,
"liveness_score": 88.30,
"estimated_age_low": 32,
"estimated_age_high": 38
}]
}
If a
min_age threshold is configured in your verification profile, sessions where the estimated maximum age is below the threshold are automatically declined.
