If you run an online shop for alcohol or vapes, a dating app, a gaming platform or any service with adult content, you now need a real age verification API, not an "Are you over 18?" checkbox. Regulators in the UK and Germany have moved to enforcement, and the vendors split into two camps: certified identity platforms that run liveness and ID checks, and fast facial age estimation APIs that cost a fraction of a cent.
Below: what you can sign up for in 2026, what it costs at 10,000 checks a month, and a Python age gate that does not let borderline faces through.
Curious what an estimate looks like on your own users? Try the Face Analyzer API on a few selfies.
Quick Comparison
Prices from each provider's official pages, checked in October 2026:
- AI Engine Face Analyzer: selfie age range for every face. About $0.0023 per call
- Didit: age estimation with passive liveness. $0.10 per check
- Yoti: predicted age with uncertainty, optional anti-spoofing. Price not published
- Persona: age estimation with liveness and deepfake detection. Price not published
- Veriff: age estimation sold separately, liveness certified to ISO/IEC 30107-3. ID checks from $0.80, age estimation price not published
- Sumsub: age estimation enabled on request, with liveness. Verifications from $1.35
Estimation vs Verification vs Liveness
- Facial age estimation: a selfie in, an estimated age or range out. No document, about a second. Add a safety buffer and it screens every user cheaply.
- Document-based verification: date of birth read from an ID, document checked, selfie matched to the ID photo. Slower, but proves an exact age.
- Liveness: checks the camera sees a real person, not a printed photo, a replay or a deepfake.
Most production flows estimate first and only ask for an ID when the estimate is too close to the legal age.
When You Need a Certified Provider
Ofcom lists facial age estimation among the methods capable of being "highly effective" age assurance under the UK Online Safety Act, but the whole process must also be accurate, robust against circumvention, reliable and fair, with evidence. In Germany, the KJM assesses and approves age verification systems for adult content.
If you fall under those adult content rules, buy liveness, published accuracy and audit evidence. For lower-risk cases (a first filter before checkout, age-appropriate content, flagging likely minors), a fast estimation API with a safety buffer is enough and far cheaper.
The Providers in Short
-
AI Engine Face Analyzer:
AgeRangewithLow/Highfor every face, one REST call, works on photos you already store. Best for age gates and minor flagging at volume; pair with a certified provider for regulated adult content. - Didit: age estimation $0.10 per check with passive liveness, ID verification $0.15, 500 free verifications a month for its ID bundle.
- Yoti: predicted age with standard deviation, optional anti-spoofing. July 2025 white paper reports a mean absolute error of 1.1 years for ages 13 to 17 (self-reported); evaluated in NIST's face analysis program. Quote only.
- Persona: selfie estimation with liveness and deepfake detection, configurable buffers, ID fallback. Used by Vimeo. No public per-check price.
- Veriff: Age Estimation as a separate product with real-time liveness. ID plans from $0.80 per verification ($49 minimum).
- Sumsub: facial estimation on its liveness tech, 1 to 2 year typical error claimed, recommends 3, 7 or 10 year buffers, KJM approved. Plans from $1.35 ($149 minimum).
Cost at 10,000 Checks a Month
- AI Engine Face Analyzer (age range estimate): $22.99
- Didit (estimate with passive liveness): about $1,000
- Veriff Essential (full ID verification): about $8,000
- Sumsub Basic (full verification): about $13,500
- Yoti, Persona: quote only
These do not buy the same thing. The point is the structure: an estimate for everyone plus an ID check for the borderline few costs far less than an ID check for everyone.
The full comparison with the decision guide has the detailed tables and sources.
A Python Age Gate with a Safety Buffer
Passing everyone estimated above 18 lets a 17-year-old estimated at 16 to 21 through. Use a challenge age (legal age plus a buffer) on the lowest estimate, block clear minors, and send the rest to an ID check:
import requests
API_URL = "https://faceanalyzer-ai.p.rapidapi.com/faceanalysis"
HEADERS = {
"x-rapidapi-host": "faceanalyzer-ai.p.rapidapi.com",
"x-rapidapi-key": "YOUR_API_KEY",
}
def age_gate(selfie_path, legal_age=18, buffer=5):
"""Return 'pass', 'id_check', 'deny' or 'retry' for one selfie."""
with open(selfie_path, "rb") as f:
resp = requests.post(API_URL, headers=HEADERS, files={"image": f}, timeout=30)
faces = resp.json()["body"]["faces"]
if len(faces) != 1:
return "retry", None # no face or several faces: ask for a new selfie
age = faces[0]["facialFeatures"]["AgeRange"]
if age["Low"] >= legal_age + buffer:
return "pass", age # clearly above the challenge age
if age["High"] < legal_age:
return "deny", age # clearly under age
return "id_check", age # too close to call: fall back to an ID document
for photo in ["selfie_1.jpg", "selfie_2.jpg", "selfie_3.jpg"]:
decision, age = age_gate(photo)
print(photo, age, decision)
On six stock photos with an 18+ rule and a 5-year buffer (challenge age 23):
A larger buffer sends more adults to the ID step but lets fewer minors through. Sumsub's 3, 7 or 10 years is a sensible starting range, the same idea as "Challenge 25" in UK shops. For a complete endpoint with edge cases and data retention, see the face-based age verification tutorial.
Which One?
- AI Engine Face Analyzer: lower-risk age gates and minor-flagging at the lowest cost per check
- Didit: published prices with liveness included
- Yoti, Persona, Veriff, Sumsub: regulated adult content, or when you need liveness, deepfake detection, audit evidence and an ID fallback from one vendor
Sources
- Ofcom: Age Assurance and Children's Access statement
- Didit pricing
- Yoti age estimation developer docs
- Yoti Age Estimation White Paper, July 2025
- Persona selfie age estimation
- Veriff plans and Veriff Age Estimation
- Sumsub pricing and Sumsub Facial Age Estimation docs
Run it on your own selfies: grab a key on the Face Analyzer API page and paste it into the script above.

Top comments (0)