Learn how to interpret the verification results returned by the Kawaa API.
Response fields
| Field | Description |
|---|---|
data.email | The email address that was verified |
data.status | Overall status: valid, invalid, risky, or unknown |
data.sub_status | Why that status was reached (e.g. catch_all, domain_not_found) |
data.quality_score | Quality score from 0-100 |
data.verification.mx_found | Whether MX records exist for the domain |
data.verification.catch_all | Whether the domain accepts mail for any address |
data.flags.disposable | If using a temporary email service |
data.flags.role_account | If it's a role address (info@, support@) |
data.flags.free_provider | If using a free email provider |
data.flags.abuse_email | If the address is a known abuse or complaint contact |
data.flags.spam_trap | If the address matches known spam-trap patterns |
data.credits_used | Credits consumed by this request |
Status values
Handle all eight values — an address that is disposable, a role account, a catch-all or a spam trap is reported under its own status rather than folded into risky, so code that only branches on the first four will fall through on real traffic.
- valid - Verification checks indicate the address is deliverable; provider-limited and catch-all results are flagged separately
- invalid - No valid mail server or SMTP rejected the mailbox
- risky - Use caution; risk signals or incomplete proof remain
- unknown - Could not be determined, server didn't respond
- disposable - Throwaway address from a temporary-mail provider
- role - Shared department address such as info@ or support@
- catch_all - Domain accepts mail for any address, so the mailbox cannot be proven
- spam_trap - Address matches known spam-trap patterns; do not send
Quality score
The score (0-100) indicates overall email quality:
- 90-100: Excellent - lowest observed risk
- 70-89: Good - minor concerns
- 50-69: Fair - Use caution, some risk factors
- 0-49: Poor - High risk, consider not sending