What are the verification results?
Every verification returns a result indicating whether an email address is safe to use. The fields available depend on the verification method.
The is_reachable field:
- •
safe— Address passed all checks and is considered valid - •
invalid— Address failed one or more checks (bad syntax, no MX records, SMTP rejection, known disposable/relay, or a custom rule override) - •
unknown— Mail server could not conclusively confirm the mailbox — common on catch-all domains where the server accepts all addresses without verifying mailbox existence (Deep Verification only)
Fast Check results:
Fast Check (integration) and the free widget both return only safe or invalid. A safe result means syntax, MX records, disposable provider, and relay checks all passed. No SMTP handshake is performed, so mailbox-level SMTP fields are not available.
Deep Verification — SMTP fields:
- •
smtp.is_deliverable— SMTP server confirmed the mailbox exists and can receive mail - •
smtp.is_catch_all— Domain accepts all addresses regardless of whether the mailbox exists; deliverability cannot be guaranteed - •
smtp.has_full_inbox— Server indicated the inbox may be full - •
smtp.can_connect_smtp— An SMTP connection was successfully established with the mail server
MX fields:
- •
mx.accepts_mail— The domain has valid MX records and is configured to receive email. This is the first hard-failure check: iffalse, the address is unreachable regardless of SMTP result.
Miscellaneous fields:
- •
misc.is_disposable— Address is from a known disposable/temporary provider - •
misc.is_role_account— Role-based address (info@, admin@, support@, sales@, noreply@, etc.) - •
misc.is_free— Address is from a free consumer email provider - •
misc.is_relay— Address routes through an email relay or forwarding service - •
is_disabled— The address or account has been flagged as disabled
Syntax fields:
- •
syntax.is_valid_syntax— Email address passes RFC format validation - •
syntax.domain— Domain portion of the address - •
syntax.username— Username (local-part) of the address
Any of these fields can be referenced in custom rules using dot notation. See How can I use custom rules? for details.
Typo suggestion field:
Free widget and API responses may include a suggestion field when a common domain typo is detected (e.g. gmial.com → gmail.com). The widget displays this as a clickable prompt; via the API you can use it to prompt the user in your own UI.
Send to Verify — send_to field:
For Send to Verify integrations, a successful response includes a send_to field containing the unique proxy address the visitor must email to confirm ownership (e.g. [email protected]). The widget displays this automatically. If you’re handling the response yourself, show this address to the user and poll the endpoint until you receive verified: true.
PHP loader status codes:
The PHP loader returns one of four internal statuses after calling the verification endpoint:
- •
valid— Email was verified; form processing continues normally - •
invalid— Email failed verification;exit()is called with the mapped error message - •
pending— Send to Verify: visitor has not yet emailed the proxy address;exit()is called with theawaiting_confirmationmessage - •
unknown— API or network error;exit()is called with theservice_unavailablemessage and the error is written to the loader’s log file