Verification API
Verify a single email address in real-time and get detailed results including deliverability status, risk flags, and enrichment data.
Endpoint
POST
/v1/verifyRequest Body
| Parameter | Type | Required | Description |
|---|---|---|---|
email | string | Yes | Email address to verify |
include_activity | boolean | No | Include engagement activity data (default: false) |
options.deep_verify | boolean | No | Request extended checks. The current production workers attempt SMTP mailbox probing when deep verification is requested and the target mail server supports the check; otherwise Kawaa falls back to syntax, domain, MX, and AI risk analysis. |
options.include_ai | boolean | No | Include AI-powered analysis (default: true) |
Example Request
cURL
curl -X POST https://api.kawaa.com/v1/verify \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"email": "john@example.com",
"include_activity": true,
"options": {
"deep_verify": true,
"include_ai": true
}
}'Response
200 OK
{
"success": true,
"data": {
"email": "john@example.com",
"status": "risky",
"quality_score": 72,
"verification": {
"syntax_valid": true,
"domain_exists": true,
"mx_found": true,
"catch_all": false
},
"flags": {
"disposable": false,
"role_account": false,
"free_provider": false,
"spam_trap": false,
"honeypot": false,
"bot_generated": false
},
"enrichment": {
"first_name": "John",
"full_name": "John",
"gender": "male",
"country": "United States",
"country_code": "US"
},
"ai": {
"typo_suggestion": null,
"typo_confidence": null,
"catch_all_confidence": 15
},
"activity": {
"level": "active",
"score": 78,
"last_activity_at": "2026-01-15T10:30:00Z",
"engagement": { "open_count": 12, "click_count": 5, "reply_count": 1 },
"deliverability": { "hard_bounce_count": 0, "soft_bounce_count": 0, "complaint_count": 0 },
"confidence": 80,
"data_points": 18
},
"verified_at": "2026-02-03T14:22:15.123Z"
}
}Response Fields
Status Values
| Status | Description |
|---|---|
valid | SMTP accepted the address and no catch-all/provider-limited caveat was detected during this run |
invalid | No valid mail server or SMTP rejected the mailbox |
risky | May receive mail, but risk signals or incomplete proof remain |
unknown | Could not determine deliverability |
catch_all | Domain accepts all emails - individual mailbox unverifiable |
disposable | Temporary email address |
role | Role-based email (info@, support@) |
spam_trap | Known spam trap - do not send |
Quality Score
The quality_score is a 0-100 score indicating overall email quality:
- 90-100: Excellent - lowest observed risk
- 70-89: Good - Generally safe
- 50-69: Fair - Review recommended
- 0-49: Poor - High risk of issues
For catch-all domains, policy blocks, and provider-limited responses, see Understanding Results & Provider Limits.
Credits
- 1 credit per verification (cache miss)
- 0.5 credits for cached results (within 24 hours)
- Async cache-miss checks hold 1 credit while processing
- Held credits are refunded by job reconciliation if the worker fails before producing a result
- Activity data included at no extra cost when available