Trusted by +1000 companies worldwide
OTP validity
(Time-limited code)
Risk assessment
(Breached, disposable, undeliverable)
Integration
(Workflow or API)
HOW IT WORKS
WHY DIDIT EMAIL VERIFICATION
Didit combines OTP verification with email intelligence — disposable detection, deliverability checks, duplicate usage, and breach exposure — so you can stop risky emails early.
If an email appears in known breaches, Didit can return breach details (source, date, data classes) so you can enforce stronger security for exposed users.
Choose how your application handles disposable, undeliverable, duplicated, or breached emails — approve, review, or decline — based on your risk policy.
Use simple REST endpoints, get structured JSON reports, receive webhooks instantly, and review everything in the Business Console — with transparent pay-per-use pricing.

Full TRANSPARENCY
No 🛠️ setup fees. No 💸 minimums. No 🎊 surprises. Just crystal-clear pricing ✨ charged only for completed features.

THE EASIEST TO INTEGRATE
Use Didit with no code or with a single API call. Go live in minutes.
Key points
BUILT FOR AI AGENTS
The only identity platform your AI coding agent can fully integrate — credentials, workflows, webhooks, and production code — without opening a browser.
Paste this into Claude Code, Cursor, or Copilot. Your agent registers for API credentials, creates verification workflows, sets up webhooks, and writes integration code — end to end, from a single copy-paste.
Key points
Integrate Didit identity verification into this project.
Didit is an all-in-one identity platform. Docs: https://docs.didit.me
Base URL: https://verification.didit.me/v3
Auth API: https://apx.didit.me/auth/v2
## Step 1: Get API credentials (no browser needed)
Register programmatically — 2 API calls:
POST https://apx.didit.me/auth/v2/programmatic/register/
Body: { "email": "dev@yourapp.com", "password": "SecurePass123!" }
→ Sends 6-char OTP to email
POST https://apx.didit.me/auth/v2/programmatic/verify-email/
Body: { "email": "dev@yourapp.com", "code": "ABC123" }
→ Returns { api_key, organization, application }
Or login if already registered:
POST https://apx.didit.me/auth/v2/programmatic/login/
Body: { "email": "...", "password": "..." }
→ Returns { access_token, refresh_token }
All subsequent API calls use: x-api-key: YOUR_API_KEY
## Step 2: Create a verification workflow
POST https://verification.didit.me/v3/workflows/
Headers: { "x-api-key": "YOUR_API_KEY", "content-type": "application/json" }
Body: {
"name": "KYC Flow",
"features": {
"id_verification": true,
"passive_liveness": true,
"face_match": true,
"aml_screening": false,
"nfc": false,
"ip_analysis": true,
"phone_verification": false,
"email_verification": false,
"proof_of_address": false,
"age_estimation": false,
"database_validation": false,
"questionnaire": false
}
}
→ Returns { uuid: "workflow_id", ... }
Or list existing workflows: GET /v3/workflows/
## Step 3: Create verification sessions
POST https://verification.didit.me/v3/sessions/
Body: {
"workflow_id": "WORKFLOW_ID",
"vendor_data": "your-internal-user-id",
"callback": "https://yourapp.com/api/didit/webhook"
}
→ Returns {
session_id, session_token, session_number,
url: "https://verify.didit.me/session/TOKEN"
}
Redirect users to the url, or embed via SDK:
- Web: npm install @didit-protocol/sdk-web
- React Native: npx expo install @didit-protocol/sdk-react-native
- iOS: SPM github.com/didit-protocol/sdk-ios
- Android: me.didit:didit-sdk:3.2.0
- Flutter: flutter pub add didit_sdk
## Step 4: Get results
Option A — Webhook (recommended):
Configure callback URL. Didit sends POST with session data when status changes.
Verify webhook signature using your webhook secret (GET /v3/webhook/).
Option B — Poll:
GET https://verification.didit.me/v3/sessions/{session_id}/
Session statuses: Pending → In Progress → Approved | Declined | In Review | Expired
You can also: update status (PATCH /v3/sessions/{id}/status/),
generate PDF reports (POST /v3/sessions/{id}/generate-pdf/),
or delete sessions (DELETE /v3/sessions/{id}/).
## Standalone APIs (call individually without sessions)
POST /v3/id-verification/ — Submit document images, get OCR + authenticity
POST /v3/passive-liveness/ — Verify person is real from selfie
POST /v3/face-match/ — Compare two faces (similarity 0-100)
POST /v3/face-search/ — 1:N search against all approved sessions
POST /v3/age-estimation/ — Estimate age from face
POST /v3/aml-screening/ — Screen against 1,300+ watchlists
POST /v3/proof-of-address/ — Extract + validate address documents
POST /v3/database-validation/ — Government DB checks (18+ countries)
POST /v3/email/send/ + /v3/email/check/ — Email OTP
POST /v3/phone/send/ + /v3/phone/check/ — Phone OTP (SMS/WhatsApp)
## Pricing
Free core KYC: ID Verification + Passive Liveness + Face Match + IP Analysis (500 free/month)
Premium checks: Prepaid credits, no contracts, no minimums, credits never expire.
Details: https://didit.me/pricing
## Rate Limits
300 req/min per method, 600 session creations/min.
On 429: check Retry-After header.
CERTIFICATIONS
Our platform meets the highest international standards for information security, data privacy, and biometric accuracy.
Full EU data protection compliance
Information security management
PAD (liveness + face match)
TRUSTED WORLDWIDE
Join thousands of companies that trust Didit for their verification needs
EMAIL VERIFICATION FAQ
Email Verification confirms that an email address is reachable and controlled by the user using a one-time passcode (OTP). It is a critical step to prevent fake accounts, reduce fraud, ensure reliable communication, and improve overall account security.
Get a free account, instant sandbox, and full access to every feature. No contracts. No sales calls. No credit card required.