Install any skill in seconds. Free to start, no credit card required.
Get Started Free →didit-protocol/didit-biometric-age-estimation
Estimates a person's age from a facial image via the Didit standalone API.
Passed 21 of 21 test cases with the skill, and 7 of 21 without it.
and 27 more in the full report
15 fixed7 passed either way0 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
This benchmark measured an earlier version of the skill.
A newer attempt on gemini-3.6-flash on 10/15/2026 did not produce a publishable comparison (not comparable). The snapshot above is the previously measured run.
One of 14 test cases the skill fixed. Same model, same prompt, with and without the skill.
Show the bash command to run the included Python utility script `scripts/estimate_age.py` on `user_photo.jpg` enforcing a minimum age threshold of 21 and passing user reference string `usr_99`.
| Checked | Without skill | With skill |
|---|---|---|
| The command invokes python scripts/estimate_age.py user_photo.jpg --threshold 21 --vendor-data usr_99 | Missed | Passed |
The instructions your model reads when the skill loads.
Estimates a person's age from a facial image and runs a passive liveness check in the same call to block spoofs. The age is model-predicted from the face, not verified against a document: use it for age gates and low-friction checks, not as legal proof of age.
Key constraints:
age_estimationPricing: $0.10 (per successful call; standalone calls have no free tier). These are the list prices until 1 November 2026, when Didit pricing changes and the 500 free checks a month become $10 of free credit a month. Check didit.me/pricing for current prices.
Decision: any warning declines. status is Approved only when warnings is empty. There is no In Review on this endpoint. method is always PASSIVE.
Not on this endpoint: blocklist and duplicate-face screening, MULTIPLE_FACES_DETECTED, the ID verification fallback for borderline ages and per-country age limits. Those are workflow features (see Adaptive Age Estimation).
Saving (save_api_request, default true): the call is saved as an API session (Business Console, status.updated webhook, and GET /v3/session/{request_id}/decision/, where the result appears in liveness_checks[] with features: ["AGE_ESTIMATION"]), the face crop and reference image are stored, and the face is added to your application's face search index (used by Face Search and duplicate detection). With false nothing is stored and request_id cannot be looked up.
Sandbox: sandbox API keys return a static Approved payload (age_estimation: 30, no warnings) after request validation; nothing is saved or billed.
API Reference: https://docs.didit.me/standalone-apis/age-estimation Feature Guide: https://docs.didit.me/core-technology/age-estimation/overview
Every request needs the x-api-key header. Use your application's API key from the Didit Business Console under Developers > API keys, or create an account and key programmatically (see Getting Started). Named keys with custom access need Sessions write to run standalone checks; a key limited to some workflows or to approved sessions cannot run them.
If you don't have a Didit API key, create one in 2 API calls:
POST https://apx.didit.me/auth/v2/programmatic/register/ with {"email": "[email protected]", "password": "MyStr0ng!Pass"}POST https://apx.didit.me/auth/v2/programmatic/verify-email/ with {"email": "[email protected]", "code": "A3K9F2"}. The key is in the response at application.api_key.To add credits: GET /v3/billing/balance/ to check, POST /v3/billing/top-up/ with {"amount_in_dollars": 50} for a Stripe checkout link.
test cases passed, vs 7 / 21 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.