Guides
Understanding results & provider limits
Email verification combines syntax, DNS, MX, SMTP response where available, and risk signals. Some mailbox providers intentionally make mailbox-level confirmation impossible, so Kawaa flags those cases instead of presenting them as confirmed mailboxes.
Status is the primary verdict
| Status | How to use it |
|---|---|
| valid | Low risk. Use for normal sends, while still honoring unsubscribe and consent rules. |
| risky | Use caution or skip. The address may receive mail, but a risk signal or provider limitation remains. |
| unknown | Do not treat as confirmed. Retry later or use another confirmation signal. |
| invalid | Do not send. The address failed a hard verification check. |
| catch_all | Treat as risky. The domain accepts mail for any address, so this mailbox could not be confirmed. Counted as risky in a job summary. |
| role | Send with care. A shared address such as info@ or support@ reaches a team or a shared inbox rather than a person. Counted as risky in a job summary. |
| disposable | Do not send. The domain is a disposable or temporary mail provider, so the address is not a lasting contact. Counted as invalid in a job summary. |
| spam_trap | Do not send. The address is at a domain on the reviewed list of trap-only domains, where every mailbox is a trap. Kawaa does not guess traps from how an address looks (sample@ and fake@ get the mailbox check like any other address), and the list is empty today. Counted as risky in a job summary. |
Reading a result
Quality score
The score is a supporting number, not a replacement for status and sub_status. Risky, unknown, catch-all, policy-blocked, greylisted, and connection-failure results are capped so they cannot outrank their caveat.
Catch-all domains
A catch-all domain accepts mail for many or all local parts. Kawaa marks these as risky or catch_all because SMTP cannot prove whether a specific mailbox belongs to a real user.
Provider accept-all
Some consumer mailbox providers accept verification probes for addresses that do not exist: Outlook.com (Outlook, Hotmail, Live) accepts some of them, and Yahoo and AOL accept every address. These results are down-ranked and flagged with provider_accept_all.
SDK booleans
SDK helpers such as isDeliverable are true only when the API status is valid. For automation, also inspect status, sub_status, and verification details before sending.
Recommended automation
- Send normally only for
status: valid. - Review, suppress, or confirm by another channel for
status: risky. - Retry later for
unknown,greylisted, orconnection_failure. - Do not treat
catch_allorprovider_accept_allas mailbox-confirmed. - Suppress
disposableandspam_trap. A job summary countsspam_trapas risky, so filter on the status itself rather than the summary bucket.
See the Verification API reference for the full response shape.