The unknown status
UnknownAlways free · default action: Retry later
Unknown means we could not get a definite answer this time. Unknown results are always free, including checks that ran out of time, and the action is retry_later.
Why checks end as unknown
To check a mailbox we ask the domain's mail server whether it exists. Some servers delay new senders on purpose (greylisting), sit behind anti-spam systems that stop the conversation, are briefly down, or answer too slowly. In each case there is no reliable answer to give, so we return unknown and charge nothing.
What to do
- Retry later. A second check minutes or hours later often succeeds, especially for
greylisted,temporary_errorandserver_unavailable. Bulk jobs check each address once and finish fast, so re-check theunknownrows yourself later (a new job or single checks); they cost nothing the first time. - Do not retry in a tight loop. Repeating the same failing check every second will not help, and accounts that produce far more free outcomes than charged ones are slowed down for a while (
429 abuse_throttled). - On forms: accept the address and check it again later; do not block the person.
timeout: the check did not finish within yourtimeout(at most 15 seconds). A largertimeoutcan help with slow servers.
Reasons
Mail server unavailable
server_unavailable: The mail server refused or dropped our connection, so the mailbox could not be checked.
- Recommended action: Retry later. Check the address again later; the answer often becomes definite on a second try.
- Credit: free, always.
- Test address:
server_unavailable@sandbox.email-validation.org(free)
Example response
{
"email": "server_unavailable@sandbox.email-validation.org",
"status": "unknown",
"reason": "server_unavailable",
"action": "retry_later",
"account": "server_unavailable",
"domain": "sandbox.email-validation.org",
"did_you_mean": null,
"free_email": null,
"role_account": null,
"disposable": null,
"catch_all_domain": null,
"mx_found": null,
"mx_record": null,
"smtp_provider": null,
"domain_age_days": null,
"processed_at": "2026-11-02T09:30:00.000Z",
"credits_used": 0,
"request_id": "req_7Hq2LmX9cV4bN8tR1zK6wD"
}Temporary server error
temporary_error: The mail server reported a temporary problem while we were checking the address.
- Recommended action: Retry later. Check the address again later; the answer often becomes definite on a second try.
- Credit: free, always.
- Test address:
temporary_error@sandbox.email-validation.org(free)
Example response
{
"email": "temporary_error@sandbox.email-validation.org",
"status": "unknown",
"reason": "temporary_error",
"action": "retry_later",
"account": "temporary_error",
"domain": "sandbox.email-validation.org",
"did_you_mean": null,
"free_email": null,
"role_account": null,
"disposable": null,
"catch_all_domain": null,
"mx_found": null,
"mx_record": null,
"smtp_provider": null,
"domain_age_days": null,
"processed_at": "2026-11-02T09:30:00.000Z",
"credits_used": 0,
"request_id": "req_7Hq2LmX9cV4bN8tR1zK6wD"
}Asked to retry later
greylisted: The mail server asked us to come back later, which is a common anti-spam delay.
- Recommended action: Retry later. Check the address again later; the answer often becomes definite on a second try.
- Credit: free, always.
- Test address:
greylisted@sandbox.email-validation.org(free)
Example response
{
"email": "greylisted@sandbox.email-validation.org",
"status": "unknown",
"reason": "greylisted",
"action": "retry_later",
"account": "greylisted",
"domain": "sandbox.email-validation.org",
"did_you_mean": null,
"free_email": null,
"role_account": null,
"disposable": null,
"catch_all_domain": null,
"mx_found": null,
"mx_record": null,
"smtp_provider": null,
"domain_age_days": null,
"processed_at": "2026-11-02T09:30:00.000Z",
"credits_used": 0,
"request_id": "req_7Hq2LmX9cV4bN8tR1zK6wD"
}Blocked by an anti-spam system
anti_spam_block: An anti-spam system in front of the mail server stopped our check before it could finish.
- Recommended action: Retry later. Check the address again later; the answer often becomes definite on a second try.
- Credit: free, always.
- Test address:
anti_spam_block@sandbox.email-validation.org(free)
Example response
{
"email": "anti_spam_block@sandbox.email-validation.org",
"status": "unknown",
"reason": "anti_spam_block",
"action": "retry_later",
"account": "anti_spam_block",
"domain": "sandbox.email-validation.org",
"did_you_mean": null,
"free_email": null,
"role_account": null,
"disposable": null,
"catch_all_domain": null,
"mx_found": null,
"mx_record": null,
"smtp_provider": null,
"domain_age_days": null,
"processed_at": "2026-11-02T09:30:00.000Z",
"credits_used": 0,
"request_id": "req_7Hq2LmX9cV4bN8tR1zK6wD"
}Took too long
timeout: The check did not finish within the time limit, so we stopped waiting and charged nothing.
- Recommended action: Retry later. Check the address again later; the answer often becomes definite on a second try.
- Credit: free, always.
- Test address:
timeout@sandbox.email-validation.org(free)
Example response
{
"email": "timeout@sandbox.email-validation.org",
"status": "unknown",
"reason": "timeout",
"action": "retry_later",
"account": "timeout",
"domain": "sandbox.email-validation.org",
"did_you_mean": null,
"free_email": null,
"role_account": null,
"disposable": null,
"catch_all_domain": null,
"mx_found": null,
"mx_record": null,
"smtp_provider": null,
"domain_age_days": null,
"processed_at": "2026-11-02T09:30:00.000Z",
"credits_used": 0,
"request_id": "req_7Hq2LmX9cV4bN8tR1zK6wD"
}Check could not finish
internal_error: Something went wrong on our side while checking this address, so no credit is used.
- Recommended action: Retry later. Check the address again later; the answer often becomes definite on a second try.
- Credit: free, always.
- Test address:
internal_error@sandbox.email-validation.org(free)
Example response
{
"email": "internal_error@sandbox.email-validation.org",
"status": "unknown",
"reason": "internal_error",
"action": "retry_later",
"account": "internal_error",
"domain": "sandbox.email-validation.org",
"did_you_mean": null,
"free_email": null,
"role_account": null,
"disposable": null,
"catch_all_domain": null,
"mx_found": null,
"mx_record": null,
"smtp_provider": null,
"domain_age_days": null,
"processed_at": "2026-11-02T09:30:00.000Z",
"credits_used": 0,
"request_id": "req_7Hq2LmX9cV4bN8tR1zK6wD"
}