API reference · v1
Email verification statuses and reason codes
Branch your code on status. Use reason when you want finer rules, for example allowing role accounts for B2B signups but rejecting disposable ones.
| Status | Reasons | Billing |
|---|---|---|
| Deliverable | accepted_email | One credit, cached 30 days |
| Undeliverable | invalid_syntax, invalid_domain, no_mx_record, rejected_email, mailbox_full | One credit, cached 30 days |
| Risky | disposable, role_account, catch_all, low_quality, low_deliverability | One credit, cached 30 days |
| Unknown | timeout, greylisted, unavailable_smtp | Never charged |
DeliverableThe mailbox exists and the receiving server confirmed it will accept mail for this address.
Send with confidence.
UndeliverableThe address cannot receive mail. The syntax is wrong, the domain has no mail server, or the mailbox was rejected.
Remove from your list. Never billed twice for the same address in 30 days.
RiskyThe address might receive mail, but sending to it carries risk: disposable inboxes, role accounts, or catch-all domains.
Decide per use case. We give you the reason so you can write the rule.
UnknownThe mail server timed out, greylisted us, or refused the check. We retry automatically before returning this.
Never billed. Retry later or treat as risky.