Email verification that shows its work.

Verimail asks each address's mail server whether the mailbox exists and shows you what it said: the reason on every row of your list, the server's own words through the API. You know what will bounce before you send.

100 free verifications a month, no card.
Verifying email since 2019.

Verify any address

Live

No account needed. Protected by reCAPTCHA.

your-list.csv Example

10,000 addresses, answered.

  • Deliverable

    4,408

    44%

    The mailbox exists and accepts email.

  • Risky

    2,643

    26%

    2,417 on catch-all domains, 226 full mailboxes.

  • Unknown not charged

    983

    9.8%

    The mail server wouldn't say.

  • Undeliverable

    1,966

    20%

    1,795 with no such mailbox, 171 with no mail server.

9,017 credits. The 983 unknowns are not charged.

What Verimail checks

Every address, the same checks.

A list and an API call get the same checks. Duplicates and the second pass apply to lists.

Syntax
Malformed addresses, caught before any server is asked.
Domain
No mail server, no delivery.
Mailbox
Asked of the mail server. No email is sent.
Catch-all
Domains that accept every address, labeled risky.
Full mailbox
Real, over quota, labeled risky.
Disposable
Temporary inboxes.
Typos
gmal.com, with gmail.com suggested.
Duplicates
Verified once. Every copy carries the answer.
Second pass
Servers that ask us to come back later are asked again.

List verification

Every answer comes with its reason.

Upload a CSV of any size. It comes back whole, with the answer and its reason on every row, in columns you can filter on. Download all of it, or only the rows you want.

Upload a list
  • verimail_verdict
  • verimail_reason
  • verimail_status
  • verimail_code
  • verimail_deliverable
  • verimail_did_you_mean

Every answer and reason is defined on the result codes page.

No guesses

When the server won't say, we say so.

Some mail servers accept every address, some ask us to come back later, some won't answer at all. Verimail labels catch-all domains risky, gives a list a second pass, and marks what's left unknown, never charged.

Why we don't guess

Real-time API

One call, while they're still on the form.

Verify at signup, checkout or in a lead form. The response carries the answer, its reason and what to do with it: accept, confirm by email, or reject. Add evidence=true and you also get the mail server's replies, word for word.

{
  "email": "emma.wilson@acme-corp.com",
  "verdict": "deliverable",
  "reason": "mailbox_exists",
  "suggested_action": "accept",
  "billed": true,
  "evidence": {
    "smtp": [
      { "step": "connect",        "reply": "220 mx.google.com ESMTP" },
      { "step": "rcpt_to_random", "reply": "550-5.1.1 … does not exist." },
      { "step": "rcpt_to",        "reply": "250 2.1.5 OK" }
    ]
  },
  "latency_ms": 412
}

Pricing

You pay for answers, not attempts.

One credit verifies one address. Unknowns, duplicates and syntax errors are never charged.

10%

On one list we measured, about 10% came back unknown. That is our figure, not an industry one, and yours will differ.

Your list would cost

$71

90,000 credits at $0.79 per 1,000. The 10,000 expected unknowns are not charged.

Covered by the Professional plan

100,000 credits a month for $79. This list uses 90,000 of them, leaving 10,000 for the rest of the month.

Or buy once: a pack of 100,000 credits for $100, and they never expire.

The exact count comes from your file, before any credit is taken. All plans.

  • $4 per 1,000, down to $0.30 per 1,000 at a million a month.
  • Credits never expire.
  • No subscription needed.

Plans and packs on the pricing page.

The company

Who handles your list.

2019
The year we started
Verimail has verified email on its own infrastructure ever since.
0 emails
Sent to anyone on your list
Verimail asks each mail server whether the mailbox exists, and stops there.
30 days
Then your list is deleted
The upload, the result file and every working copy. Sooner, if you delete it yourself.
GDPR
DPA on request
Write to support and we'll send you the data processing agreement.

Verimail Ltd, 71 Shelton Street, London. Registered in England and Wales, company no. 14045644.

FAQ

Questions

Do you resolve catch-all domains?

No. A catch-all domain accepts every address, so no verifier can confirm one mailbox on it. Verimail tests a random address and yours, so a full or dead mailbox still gets its own answer, and labels the rest risky. Catch-all is charged, because it was verified. If you need catch-alls called valid, we're the wrong service.

Why do some addresses come back unknown?

Because the mail server wouldn't say. It asked us to come back later, it slows down anyone who asks, or it gives every address the same reply. We could guess. We don't. You see the server's reason, and you aren't charged.

How long does a list take?

Most of a list is answered at a few addresses per second. Servers that ask us to come back later get a second pass: six minutes after the first, your file is ready, with those rows marked unknown. The second pass carries on in the background and updates the file when they answer.

Is there a size limit?

No. The one check before a list starts is that you have the credits for it.

Do I need to be technical?

No. Upload a CSV, download the answers. The API is for developers who verify addresses as they're typed; the docs have a complete example in five languages.

Why verify a list at all?

Mail sent to an address that doesn't exist bounces, and mailbox providers judge your domain by its bounce rate. Too many bounces and more of your mail goes to spam, including the mail to real people. Verify before you send, and again when a list has rested for a few months.

We don't guess.

Start with 100 free verifications a month. No card.

Start free