Skip to main content
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
file
required
Selfie image file. Accepted: jpg, jpeg, png. Max: 10 MB.
min_age
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.