# Result statuses and reasons

URL: https://email-validation.org/docs/statuses/
Updated: 2026-10-20

> Documentation index: https://email-validation.org/llms.txt

Every result has one of four **statuses**, a **reason** that explains it, and a recommended **action**. Only
`unknown` is free: results with any other status cost 1 credit when they come from a completed check.

## The four statuses

| Status | What it means | Default action | Credit |
|---|---|---|---|
| [`deliverable`](https://email-validation.org/docs/statuses/deliverable/) | The mailbox exists and accepted our check, so mail sent to it should arrive. | `send` (send) | 1 |
| [`undeliverable`](https://email-validation.org/docs/statuses/undeliverable/) | Mail sent to this address will not arrive, so it should come off your list. | `remove` (remove) | 1 |
| [`risky`](https://email-validation.org/docs/statuses/risky/) | The address may accept mail, but sending to it can hurt your bounce rate or sender reputation. | `send_with_caution` (send with caution) | 1 |
| [`unknown`](https://email-validation.org/docs/statuses/unknown/) | We could not get a definite answer this time, so no credit is used and a later retry often succeeds. | `retry_later` (retry later) | Free |

## Actions

The action is our recommendation for the address. It usually follows the status, but some reasons carry their own
advice: a rarely used mailbox is `deliverable` with `send_with_caution`, and a disposable inbox is `risky` with
`remove`.

| Action | What to do |
|---|---|
| `send` | Keep the address and send to it as usual. |
| `send_with_caution` | Send only if the address matters to you, and watch bounces and complaints for this segment. |
| `remove` | Remove the address from your list or ask for another one. |
| `retry_later` | Check the address again later; the answer often becomes definite on a second try. |

## Every reason

Each reason links to its section on the status page, with an example response and a free test address.

| Reason | Status | What it means | Action |
|---|---|---|---|
| [`accepted`](https://email-validation.org/docs/statuses/deliverable/#accepted) | `deliverable` | The mail server confirmed that this mailbox exists and accepts messages. | `send` |
| [`alias`](https://email-validation.org/docs/statuses/deliverable/#alias) | `deliverable` | The address is an alias that forwards to another mailbox, and mail sent to it is delivered. | `send` |
| [`normalized`](https://email-validation.org/docs/statuses/deliverable/#normalized) | `deliverable` | We corrected a harmless formatting detail in the address, and the corrected address accepts mail. | `send` |
| [`low_engagement`](https://email-validation.org/docs/statuses/deliverable/#low_engagement) | `deliverable` | The mailbox works, but it looks like a secondary address that its owner seldom reads. | `send_with_caution` |
| [`high_engagement`](https://email-validation.org/docs/statuses/deliverable/#high_engagement) | `deliverable` | The mailbox works and shows signs of a person who reads mail regularly. | `send` |
| [`trusted_catch_all`](https://email-validation.org/docs/statuses/deliverable/#trusted_catch_all) | `deliverable` | The domain accepts mail for any address, but mail sent to it has a strong record of arriving. | `send` |
| [`ai_agent`](https://email-validation.org/docs/statuses/deliverable/#ai_agent) | `deliverable` | The mailbox accepts mail and appears to be handled by an automated AI agent rather than a person. | `send_with_caution` |
| [`no_mailbox`](https://email-validation.org/docs/statuses/undeliverable/#no_mailbox) | `undeliverable` | The domain receives mail, but this particular mailbox does not exist. | `remove` |
| [`no_inbound_mail`](https://email-validation.org/docs/statuses/undeliverable/#no_inbound_mail) | `undeliverable` | The domain is set up to send mail only and turns away incoming messages. | `remove` |
| [`invalid_syntax`](https://email-validation.org/docs/statuses/undeliverable/#invalid_syntax) | `undeliverable` | The text is not a well-formed email address, so no mail server could ever accept it. | `remove` |
| [`likely_typo`](https://email-validation.org/docs/statuses/undeliverable/#likely_typo) | `undeliverable` | The domain looks like a misspelling of a common mail provider, so check the suggested correction. | `remove` |
| [`no_dns`](https://email-validation.org/docs/statuses/undeliverable/#no_dns) | `undeliverable` | The domain has no DNS records that tell senders where to deliver mail. | `remove` |
| [`mailbox_full`](https://email-validation.org/docs/statuses/undeliverable/#mailbox_full) | `undeliverable` | The mailbox exists but is over its storage limit and is turning away new mail. | `remove` |
| [`unroutable`](https://email-validation.org/docs/statuses/undeliverable/#unroutable) | `undeliverable` | The domain points its mail to a server address that cannot be reached on the public internet. | `remove` |
| [`catch_all`](https://email-validation.org/docs/statuses/risky/#catch_all) | `risky` | The domain accepts mail for every address, so this specific mailbox cannot be confirmed. | `send_with_caution` |
| [`role_account`](https://email-validation.org/docs/statuses/risky/#role_account) | `risky` | The address belongs to a team or function, such as info@ or sales@, rather than to one person. | `send_with_caution` |
| [`role_catch_all`](https://email-validation.org/docs/statuses/risky/#role_catch_all) | `risky` | A team or function address on a domain that accepts mail for every address. | `send_with_caution` |
| [`disposable`](https://email-validation.org/docs/statuses/risky/#disposable) | `risky` | The address comes from a throwaway mail service whose inboxes are usually abandoned quickly. | `remove` |
| [`toxic`](https://email-validation.org/docs/statuses/risky/#toxic) | `risky` | The address is associated with spam, abuse or automated sign-ups. | `remove` |
| [`forwarding_domain`](https://email-validation.org/docs/statuses/risky/#forwarding_domain) | `risky` | The domain only relays mail to mailboxes elsewhere, which hides whether the final mailbox exists. | `send_with_caution` |
| [`suppressed`](https://email-validation.org/docs/statuses/risky/#suppressed) | `risky` | The address appears on widely shared do-not-contact lists, often after earlier bounces or complaints. | `remove` |
| [`possible_trap`](https://email-validation.org/docs/statuses/risky/#possible_trap) | `risky` | The address follows patterns that traps often use, so mailing it can damage your sender reputation. | `remove` |
| [`spamtrap`](https://email-validation.org/docs/statuses/risky/#spamtrap) | `risky` | The address is believed to exist only to catch senders who mail lists without consent. | `remove` |
| [`complainer`](https://email-validation.org/docs/statuses/risky/#complainer) | `risky` | The person behind this address often reports legitimate mail as spam. | `remove` |
| [`server_unavailable`](https://email-validation.org/docs/statuses/unknown/#server_unavailable) | `unknown` | The mail server refused or dropped our connection, so the mailbox could not be checked. | `retry_later` |
| [`temporary_error`](https://email-validation.org/docs/statuses/unknown/#temporary_error) | `unknown` | The mail server reported a temporary problem while we were checking the address. | `retry_later` |
| [`greylisted`](https://email-validation.org/docs/statuses/unknown/#greylisted) | `unknown` | The mail server asked us to come back later, which is a common anti-spam delay. | `retry_later` |
| [`anti_spam_block`](https://email-validation.org/docs/statuses/unknown/#anti_spam_block) | `unknown` | An anti-spam system in front of the mail server stopped our check before it could finish. | `retry_later` |
| [`timeout`](https://email-validation.org/docs/statuses/unknown/#timeout) | `unknown` | The check did not finish within the time limit, so we stopped waiting and charged nothing. | `retry_later` |
| [`internal_error`](https://email-validation.org/docs/statuses/unknown/#internal_error) | `unknown` | Something went wrong on our side while checking this address, so no credit is used. | `retry_later` |

## What a result can and cannot tell you

- **`deliverable` is a snapshot.** The mailbox accepted our check at that moment. It can still bounce later if the
  mailbox is closed, fills up, or the receiving server starts refusing your mail.
- **Catch-all domains cannot be confirmed.** They accept every address during a check, so the specific mailbox may
  or may not exist. These results are `risky` with the reason `catch_all`, unless the domain has a strong record of
  delivering mail (`deliverable`, reason `trusted_catch_all`).
- **`unknown` is not a verdict.** It means we could not get a definite answer this time, so it costs nothing.
  Checking again later often gives a definite result.

## Related

- [Test addresses](https://email-validation.org/docs/test-addresses/) that return every reason for free.
- [Catch-all emails explained](https://email-validation.org/guides/catch-all-emails/).
- [Credits and billing](https://email-validation.org/docs/credits-and-billing/): what is free.
