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_error and server_unavailable. Bulk jobs check each address once and finish fast, so re-check the unknown rows 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 your timeout (at most 15 seconds). A larger timeout can 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"
}

Updated · Maintained by the email-validation.org team