Install any skill in seconds. Free to start, no credit card required.
Get Started Free →didit-protocol/didit-email-verification
Integrate Didit Email Verification standalone API to verify email addresses via OTP.
Passed 24 of 25 test cases with the skill, and 3 of 25 without it.
and 38 more in the full report
21 fixed3 passed either way1 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 21 test cases the skill fixed. Same model, same prompt, with and without the skill.
A user enters an incorrect OTP code and Didit returns status Failed. How many total entry attempts does Didit permit per code before requiring a fresh resend?
| Checked | Without skill | With skill |
|---|---|---|
| States maximum code check attempt limit is 3 | Passed | Passed |
| Advises asking user to re-enter code until 3 attempts fail then resending a new code | Missed | Passed |
The instructions your model reads when the skill loads.
Three standalone endpoints:
POST /v3/email/send/POST /v3/email/check/POST /v3/email/risk/Key constraints (send + check):
email address. It does not take request_id."Failed"; the 3rd wrong code finalizes it as "Declined" (EMAIL_CODE_ATTEMPTS_EXCEEDED)."Retry" with the same request_id and a fresh code (the previous code stops working). A further send starts a new verification with a new request_id.200 with status: "Expired or Not Found".request_id works with GET /v3/session/{sessionId}/decision/, shows in the Business Console, and fires status.updated webhooks as it progresses. Each risk call also creates an API session.Capabilities: known data breaches (breaches[]), disposable providers, deliverability (syntax and DNS/MX), duplicates across your sessions (matches[]), your email blocklist/allowlist, optional social footprint (enable_social), fraud signals.
Sandbox: sandbox API keys skip delivery, billing and persistence. Send returns a static "Success" with a random request_id; on check use code 123456 (any well-formed code returns a simplified "Approved" payload). Risk returns deterministic approved data. Malformed input still returns 400.
Pricing: Email Verification $0.03 per successful send ("Success"); "Retry" and "Undeliverable" sends and checks are free (apart from the optional social add-on); standalone calls have no free tier. No list price is published for POST /v3/email/risk/ (the docs say it is lower than Email Verification) or for the social footprint add-on (enable_social, billed per request on top of the endpoint price, not billed when the lookup could not complete). 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.
API Reference: Send Code | Check Code | Email Risk Feature Guide: https://docs.didit.me/core-technology/email-verification/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"}test cases passed, vs 3 / 25 without
Published skills whose descriptions closely match this one, with their headline benchmark lift.
More skills from the same source and nearby in the registry, with their headline benchmark lift.