Prices increase in 00D : 00H : 00M Upgrade now Pay less later.

Email Status Values

Docs index for AI agents: https://mailvalid.io/llms.txt. Every docs page is also available as Markdown: add .md to its URL.

MailValid uses industry-standard status codes, the same ones ZeroBounce and NeverBounce use. The status field holds the verification result. The status_reason field gives the specific machine-readable reason.

Status codes

Status is_valid Description Action
valid true SMTP confirmed the mailbox exists. Safe to send (under 2% bounce rate). Safe to send
invalid false Address will bounce: bad syntax, no domain, or mailbox not found Do not send
catch_all false Domain accepts all addresses. Cannot confirm the individual mailbox Send with caution
unknown false Could not determine validity (provider blocked SMTP, timeout). Free: 0 credits charged Retry later or use the bounce webhook
do_not_mail false Address may work but is risky: disposable, role-based (info@, support@), or spam complaint Do not send marketing

Sub-status reasons

The status_reason field gives the specific reason behind the status:

status_reason Status Meaning
mailbox_confirmed valid SMTP server confirmed the mailbox exists (250 response)
historical_delivery_confirmed valid Email was previously delivered successfully (from bounce webhook data)
mailbox_not_found invalid SMTP server rejected the recipient (550 response)
failed_syntax_check invalid Email address format is invalid
no_dns_entries invalid Domain does not exist (no DNS records)
no_mx_records invalid Domain exists but has no MX records configured
historical_hard_bounce invalid Email previously hard-bounced (from bounce webhook data)
accept_all catch_all Domain accepts all addresses; individual mailbox cannot be confirmed
failed_smtp_connection unknown Provider blocks SMTP verification (Microsoft, Apple)
antispam_system unknown Anti-spam system blocked the verification attempt
greylisted unknown Server uses greylisting and temporarily rejected the check
mail_server_temporary_error unknown Mail server returned a temporary error
disposable do_not_mail Disposable/temporary email domain (e.g. mailinator.com)
role_based do_not_mail Role-based address (info@, support@, admin@)
historical_complaint do_not_mail Recipient previously filed a spam complaint (from bounce webhook data)

Confidence score

Every result includes a confidence_score from 0 to 100 that shows how confident MailValid is in the result:

Range Meaning
90–100 Very high confidence: SMTP confirmed, historical hard bounce, or syntax/domain failure
70–89 High confidence: historical delivery data, trusted provider response
40–69 Medium confidence: catch-all domain, DNS-only verification
0–39 Low confidence: provider blocked verification, timeout

Billing by status

valid, invalid, catch_all and do_not_mail cost 1 credit each, whether fresh or cached. unknown results are free.

We value your privacy

We use cookies to keep you signed in and, with your permission, to understand how MailValid is used so we can improve it. Choose "Accept All", "Reject All" or pick categories in Cookie Settings. Privacy Policy