Skip to content

Explainable verification

Explainable email verification: see why, not just what

Every result shows its work. A status to act on, the precise reason, a plain-English summary and the checks behind it, down to the mail server's own reply.

100 free credits · No card required

How it works

Six layers of explanation on every result

Start with the status. Drill down as far as you need, all the way to the raw SMTP reply.

  1. status

    What to do

    deliverable, risky, undeliverable or unknown. One field to branch on.

  2. sub_status

    Why, precisely

    The exact cause, such as mailbox_not_found, greylisted, role_based or catch_all.

  3. evidence.summary

    In one sentence

    A plain-English explanation you can show to a teammate or a customer.

  4. evidence.checks

    The proof

    Each check that ran, marked pass, fail, warn or skipped, with the raw detail such as the SMTP reply.

  5. verdict_source

    Where it came from

    Whether the verdict was decided by SMTP, DNS, syntax, a list match, an earlier result or pre-checks.

  6. retry_after

    When to try again

    On unknown results, how many seconds to wait before retrying, for example after greylisting.

In the API

The same evidence, in every response

POST /v1/verify returns an evidence object next to the verdict, so you can log it, show it in your own product or use it to debug a send.

POST /v1/verify response excerpt
{
  "email": "tom.baker@fieldstone.io",
  "status": "undeliverable",
  "sub_status": "mailbox_not_found",
  "reason": "rejected_email",
  "score": 0,
  "verdict_source": "smtp",
  "evidence": {
    "summary": "tom.baker@fieldstone.io does not exist or was rejected by the mail server.",
    "sub_status": "mailbox_not_found",
    "checks": [
      {
        "name": "Syntax",
        "status": "pass",
        "detail": "RFC-compliant address format"
      },
      {
        "name": "Domain / DNS",
        "status": "pass",
        "detail": "Domain resolves"
      },
      {
        "name": "MX records",
        "status": "pass",
        "detail": "2 MX host(s): fieldstone-io.mail.protection.outlook.com, mx2.fieldstone.io"
      },
      {
        "name": "Mail provider",
        "status": "pass",
        "detail": "Hosted on microsoft (reputable)"
      },
      {
        "name": "SMTP mailbox check",
        "status": "fail",
        "detail": "550 5.1.1 User unknown"
      },
      {
        "name": "Email authentication",
        "status": "pass",
        "detail": "Configured: SPF, DKIM, DMARC"
      }
    ]
  }
}

The evidence

Up to 12 evidence checks per address

Syntax and the SMTP check appear on every result. The others appear whenever they apply, so the trail stays short and relevant.

  • Syntax

    Every result

    Whether the address is correctly formatted, and what is wrong if it is not.

  • Domain / DNS

    Every result that reaches DNS

    Whether the domain resolves. Temporary DNS failures are a warning, not a failure.

  • MX records

    Every result that reaches DNS

    The mail hosts that receive email for the domain.

  • Mail provider

    Known providers

    The mailbox provider behind the domain, such as Google or Microsoft.

  • SMTP mailbox check

    Every result

    The mail server’s reply, or why the check could not complete: greylisted, blocked or timed out.

  • Catch-all domain

    Accept-all domains

    How often the server accepted test addresses that cannot exist.

  • Disposable domain

    When detected

    The domain belongs to a temporary, throwaway email service.

  • Role-based address

    When detected

    A shared inbox such as info@ or support@ rather than a person.

  • Email authentication

    When records exist

    Which of SPF, DKIM and DMARC the domain has configured.

  • Spam trap

    When detected

    The address matches known spam-trap patterns.

  • Abuse list

    When detected

    A known complainer on the RocketVerifier abuse list.

  • Toxic pattern

    When detected

    The address matches a known toxic pattern.

FAQ

Explainable verification, answered

What does explainable verification mean?

Every result comes with the reason behind it: a status, a precise sub-status, a one-sentence summary and the individual checks that led there, including the mail server’s own reply. You never have to accept a bare score on trust.

How many checks are in the evidence trail?

Up to 12. Syntax and the SMTP mailbox check appear on every result. Domain, MX, provider, catch-all, disposable, role, authentication, spam-trap, abuse and toxic checks appear whenever they apply to the address.

Is the evidence available in the API?

Yes. POST /v1/verify returns an evidence object with the summary and checks, alongside status, sub_status and verdict_source. Sub-statuses and catch-all verdicts also appear in bulk results, CSV exports and webhooks.

Does the evidence trail slow verification down?

No. The evidence comes from checks that already run on every address, so there is no extra step. Typically under half a second, or 1 to 3 seconds when a live SMTP check is needed.

Why is a result sometimes unknown?

Some mail servers greylist, block or time out verification checks. Rather than guess, RocketVerifier returns unknown with the exact sub-status and a retry_after hint. Unknown results are never charged.

See the evidence behind your own list

Verify a list or a single address and get the reason behind every result.

100 free credits · No card required · Credits never expire