This tutorial uses the Face Analyzer API. See the docs, live demo, and pricing.
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 a "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. This guide compares the options developers can sign up for in 2026, what they really cost at 10,000 checks a month, and how to build an age gate that does not let borderline faces through.
Quick Comparison
Prices come from each provider's official pages, checked in October 2026. "Not published" means the vendor only quotes through sales.
| Provider | Selfie age estimation | Liveness / anti-spoofing | Published price |
|---|---|---|---|
| AI Engine Face Analyzer | Yes (age range) | No | ~$0.0023 per call |
| Didit | Yes | Passive liveness bundled | $0.10 per check |
| Yoti | Yes (age + uncertainty) | Optional anti-spoofing | Not published |
| Persona | Yes | Yes, incl. deepfakes | Not published |
| Veriff | Yes (separate product) | Yes, ISO/IEC 30107-3 | ID checks from $0.80; age estimation not published |
| Sumsub | Yes (enabled on request) | Yes | Verifications from $1.35 |
Age Estimation vs Age Verification: Know Which One You Need
Vendors use both words loosely, but they are different checks with different legal weight:
- Facial age estimation looks at a selfie and returns an estimated age or age range. No document, no personal data beyond the face, a result in a second or two. Combined with a safety buffer, it screens every user at a fraction of a cent.
- Document-based age verification reads the date of birth from a passport or ID card, checks the document is genuine and matches the selfie to the ID photo. Slower and more intrusive, but it proves an exact age.
- Liveness detection sits on top of either one and checks that the camera sees a real person, not a printed photo, a screen replay or a deepfake. Without it, a teenager can hold up a photo of an adult.
Most production flows combine them: estimate first, and only ask for an ID when the estimate is too close to the legal age. That keeps friction low for the clear majority of adults.
When a Regulator Expects a Certified Provider
Under the UK Online Safety Act, Ofcom lists facial age estimation among the methods capable of being "highly effective" age assurance, next to photo-ID matching, open banking and credit card checks. Self-declaration does not qualify. The catch: the whole process has to meet four criteria (technical accuracy, robustness against circumvention, reliability and fairness), and you must be able to show evidence. In Germany, the KJM (the commission for youth protection in media) assesses and approves age verification systems for adult content.
So the right split is this. If you fall under the Online Safety Act's pornography or harmful-content duties, or under KJM rules, buy from a provider that sells liveness, published accuracy figures and audit evidence. If you need an age gate for lower-risk cases (age-appropriate content, a first filter before checkout, routing users to the right experience, flagging likely minors for review), a fast estimation API with a safety buffer does the job at a much lower price.
1. AI Engine Face Analyzer API
The Face Analyzer API returns an AgeRange with Low and High bounds for every face in a photo, along with gender, smile, glasses and emotions. It is a plain REST call with one API key, no SDK and no sales call.
- Price: free tier of 30 requests a month; $22.99/month for 10,000 requests (about $0.0023 per check); $92.99 for 50,000
- Strength: the cheapest way to estimate age at volume, and it handles group photos and images you already store
- Best for: age gates, minor flagging and content routing at volume. For regulated adult-content duties, pair it with a certified ID or liveness provider
For a full step-by-step build of an age verification endpoint with this API (Flask endpoint, edge cases, consent and data retention), see our face-based age verification tutorial. The decision logic with a buffer is shown further down in this guide.
2. Didit
Didit is the low-cost option among the identity platforms and publishes its prices.
- Age estimation: $0.10 per check, bundled with passive liveness so the selfie is checked as live
- Other modules: ID verification $0.15 per check, full KYC bundle $0.33
- Free tier: 500 free verifications a month, defined as an ID verification bundle; the page does not say age estimation is part of it
3. Yoti
Yoti is one of the best known names in facial age estimation. Its API returns either an age check result or a predicted age with a standard deviation, and offers an optional anti-spoofing check. Yoti publishes regular white papers: the July 2025 edition reports a mean absolute error of 1.1 years for 13 to 17 year olds (self-reported), and the technology has been evaluated in NIST's face analysis program.
- Price: not published; you register a business on the Yoti Hub and get a quote
- Note: Yoti points adult-industry customers to its separate Age Verification Service rather than the estimation API alone
4. Persona
Persona offers selfie age estimation with liveness and deepfake detection, configurable age cutoffs and safety buffers, and a fallback to government ID when the result is borderline. It also supports non-biometric signals such as email-based age inference. Vimeo uses it for its age checks.
- Price: we could not find a published per-check price for age estimation; contact sales
- Best for: platforms that want one vendor for age assurance, KYC and fraud signals
5. Veriff
Veriff sells Age Estimation as a separate product from its ID verification plans: the user takes a selfie, liveness is checked in real time, and you get an estimated age to approve, deny or escalate. Veriff lists ISO/IEC 30107-3 (presentation attack detection) Level 1 and 2 certifications.
- ID verification plans: $0.80 per verification ($49 monthly minimum), $1.39 ($99 minimum) and $1.89 ($209 minimum), 15-day trial
- Age estimation price: not published (talk to sales)
6. Sumsub
Sumsub offers both document-based age verification and Facial Age Estimation built on its liveness technology, which also flags masks, deepfakes and video replays. Its docs claim a typical error of 1 to 2 years and recommend buffers of 3, 7 or 10 years depending on the sector. Sumsub is approved by the KJM for German age verification.
- Price: verification plans from $1.35 per verification ($149 monthly minimum); age estimation is enabled per account and not priced separately on the page
Cost at 10,000 Checks a Month
| Provider | What you buy | Monthly cost |
|---|---|---|
| AI Engine Face Analyzer | Age range estimate in about a second | $22.99 |
| Didit | Age estimation with passive liveness | about $1,000 |
| Veriff (Essential) | Full ID verification | about $8,000 |
| Sumsub (Basic) | Full verification | about $13,500 |
| Yoti, Persona | Age estimation with anti-spoofing | Quote only |
These rows do not buy the same thing, and the table is not meant to say the cheapest one wins. The useful takeaway is the structure: if only a small share of your users are borderline, an estimate for everyone plus an ID check for the borderline few costs far less than an ID check for everyone.
Build an Age Gate with a Safety Buffer in Python
The mistake to avoid is passing anyone whose estimate is above 18. A 17-year-old estimated at 16 to 21 would get through. Instead, define a challenge age (legal age plus a buffer), pass only users whose lowest estimate clears it, block clear minors, and send everyone in between 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)We ran this exact function on six stock photos with an 18+ rule and a 5-year buffer (challenge age 23). A photo without a face returned an empty faces list and came back as retry:

If the selfie is already hosted, send it as a form field instead of a file upload: requests.post(API_URL, headers=HEADERS, data={"url": photo_url}) returns the same response. The buffer is a business decision: a larger one sends more adults to the ID step but lets fewer minors through. Sumsub's guidance of 3, 7 or 10 years is a reasonable starting range, and UK retailers already apply the same idea with "Challenge 25" at the till.
Which Age Verification API Should You Choose?
Choose AI Engine Face Analyzer if...
- You need an age gate or minor-flagging for a lower-risk use case and want the lowest cost per check
- You want to estimate age on photos you already have (profile pictures, uploads), not only live selfies
- You plan to send borderline users to an ID step and only need the estimate to keep that step rare
Choose Didit if...
- You want published prices with liveness included and can live with a newer vendor
Choose Yoti, Persona, Veriff or Sumsub if...
- You are in scope of the Online Safety Act's adult content duties, KJM rules or similar regulation
- You need liveness, deepfake detection, audit evidence and an ID fallback from one vendor
- You already run KYC with one of them and can add age estimation to the same flow
Age checks often sit next to identity checks. For those, see our guides to identity verification with a face comparison API and selfie-to-ID matching for eKYC.
Sources
- Ofcom: Age Assurance and Children's Access statement - methods capable of highly effective age assurance and the four criteria
- Didit pricing - age estimation, liveness and ID verification prices
- Yoti age estimation developer docs - predicted age, standard deviation and anti-spoofing
- Yoti Age Estimation White Paper, July 2025 - self-reported accuracy by age band
- Yoti in the NIST Face Analysis Technology Evaluation - independent evaluation program
- Persona selfie age estimation - liveness, cutoffs, buffers and ID fallback
- Veriff plans and Veriff Age Estimation - ID verification prices and age estimation features
- Sumsub pricing and Sumsub Facial Age Estimation docs - plan prices, error range and recommended buffers
- Sumsub age verification - ID-based and facial flows, KJM approval
- Mobile ID World: Vimeo's Persona-powered age checks - customer reference
All prices and features checked in October 2026.
The right age verification API depends on how much proof your regulator expects. If an estimate with a buffer is enough for your case, grab a free key on the Face Analyzer API page, paste it into the age gate above and run it on a few selfies from your own users.
Frequently Asked Questions
- How much does an age verification API cost?
- It ranges from fractions of a cent to over a dollar per check. A facial age estimate costs about $0.0023 per call on AI Engine's 10,000-request plan and $0.10 per check on Didit, while full ID verification plans start at $0.80 (Veriff) and $1.35 (Sumsub) per verification. Yoti and Persona quote prices on request.
- Is facial age estimation accepted by regulators?
- In the UK, Ofcom lists facial age estimation among the methods capable of being highly effective age assurance under the Online Safety Act, but the whole process must also be accurate, robust against spoofing, reliable and fair. For those regulated duties, pair a fast estimation API with a certified liveness or ID provider; for everything else, an estimation API is the fastest and cheapest first layer.
- What age buffer should I use with facial age estimation?
- Pick a challenge age above the legal age and send anyone estimated below it to an ID check. Sumsub recommends buffers of 3, 7 or 10 years depending on the sector, so an 18+ service with a 7-year buffer asks everyone who looks 25 or younger for an ID.



