Bulk Email List Verifier - MX, Null-MX, Disposable, Typos avatar

Bulk Email List Verifier - MX, Null-MX, Disposable, Typos

Pricing

$1.00 / 1,000 verified emails

Go to Apify Store
Bulk Email List Verifier - MX, Null-MX, Disposable, Typos

Bulk Email List Verifier - MX, Null-MX, Disposable, Typos

Clean a list before you send it. Catches null-MX domains that guarantee a bounce, keeps implicit-MX domains other tools wrongly delete, flags typo domains that resolve anyway, and separates disposable from role addresses. Never charges for an address it could not resolve. $1.00 per 1,000.

Pricing

$1.00 / 1,000 verified emails

Rating

0.0

(0)

Developer

Anthony Snider

Anthony Snider

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Bulk Email Verifier

Clean a list before you send to it. Paste addresses, get back which will deliver, which are risky, and which will bounce - each with a reason you can act on.

You are only charged for addresses that return a verdict. If DNS is temporarily unreachable an address comes back unknown, free, with a note to re-run it. No verifier can be certain in that moment, and pretending otherwise is how good customers get deleted.


Why lists bounce even after "verification"

Most cheap verifiers run a regex and check whether an MX record exists. That is wrong in four ways, and each one costs money in a different direction.

1. A null MX record means the domain refuses mail - and naive tools call it valid

Under RFC 7505, a domain can publish a single MX record whose exchange is a lone dot:

example.com. IN MX 0 .

That is not a mail server. It is an explicit, standards-defined statement that this domain accepts no email at all. A tool that only asks "is an MX record present?" sees one record and returns valid. Every message you send there bounces. We detect it and mark the address invalid with the reason stated.

2. A domain with no MX record can still receive mail - and naive tools delete it

RFC 5321 defines an implicit MX: if a domain has no MX record but does have an A or AAAA record, mail is delivered to that host. Plenty of small business domains work exactly this way. A verifier that requires an MX record marks these invalid and you quietly remove real, reachable customers from your list. We check A and AAAA as a fallback and report mxKind: "implicit-a" so you can see why it passed.

3. A typo domain resolves, accepts mail, and is not your customer

gmial.com, hotnail.com, yahooo.com - these are registered, they run mail servers, and they accept whatever arrives. That is the entire business model of typosquatting: collecting misdirected email. Check only for an MX record and they come back valid, which is worse than useless - you're told a wrong address is safe. We flag them risky and return the likely correction in didYouMean.

4. A DNS timeout is not evidence of a bad address

If a lookup fails for a moment, that tells you nothing about the address. Tools that return invalid on a lookup error silently destroy list quality over time. We return unknown, don't charge for it, and tell you to re-run.


Disposable and role addresses are different problems

Most tools lump them together as "risky", which makes the flag useless because you can't act on it.

Disposable - mailinator.com, 10minutemail.com, guerrillamail.com and similar. The address works right now and will be abandoned. Someone wanted your lead magnet without giving you a real address. These are churn: they inflate your list size and deflate every engagement metric.

Role-based - info@, sales@, support@, billing@, careers@. These are usually real, monitored, and deliverable. They are not a person, so open and click rates look terrible, and some ESPs weigh them negatively. For B2B outreach they may be exactly who you want; for a consumer newsletter they are noise. Different decision, so we report them separately - and +tag addressing (you+newsletter@gmail.com) is correctly read as personal, not as a role account.


What each verdict means

statusdeliverablewhat to do
validyesSend. Domain accepts mail, no risk flags.
riskyyesYour call - check disposable, roleBased, didYouMean to decide.
invalidnoRemove. Bad syntax, dead domain, or a null-MX refusal.
unknownunknownRe-run. DNS was unreachable. Not charged.

mxKind tells you exactly why: mx, implicit-a, implicit-aaaa, null-mx, no-mx, dns-error.


Input

Paste a list - new lines, commas or spaces all work, and duplicates are removed automatically:

{ "emailsText": "hello@acme.com\ninfo@example.com\ntest@mailinator.com" }

Or pass an array:

{ "emails": ["a@b.com", "c@d.com"], "maxEmails": 5000 }
FieldTypeDefaultNotes
emailsTextstring-Pasted list, any common separator
emailsarray-For API and integration use
emailstring-Verify a single address
maxEmailsinteger1000Cap on addresses, and therefore on spend

Output

One record per address, plus a SUMMARY with counts and rates:

{
"email": "someone@gmial.com",
"status": "risky",
"deliverable": true,
"reason": "Likely typo of gmail.com - this domain resolves and accepts mail, which is how typosquatters collect misdirected email. Confirm before sending.",
"domain": "gmial.com",
"mxFound": true,
"mxKind": "mx",
"disposable": false,
"roleBased": false,
"freeProvider": false,
"didYouMean": "someone@gmail.com"
}

What this does not do

Stated plainly, because a verifier that overclaims is the problem it's meant to solve.

  • No SMTP mailbox probing. We do not open a connection to the mail server to ask whether a specific mailbox exists. Tools that do are throttled, blocked, or graylisted by every major provider, and catch-all domains accept everything anyway, so the answer is frequently wrong. We verify the domain can receive mail and report risk signals honestly rather than guessing at the mailbox.
  • No spam-trap database. Nobody has a reliable public one; anyone claiming otherwise is selling confidence.
  • No engagement history. We see the address, not what your recipients did.

If you need mailbox-level certainty, no DNS-based verifier can give it to you - send a double-opt-in confirmation.

For agents and automation

  • Capability: bulk email deliverability verification via DNS
  • Required input: one of emailsText, emails, or email
  • Returns: one JSON record per address plus a SUMMARY
  • Bounded: maxEmails caps the run and the spend
  • Side effects: none - DNS lookups only. No mail is sent, nothing is stored externally.
  • Determinism: deterministic given stable DNS. The non-deterministic case is marked unknown explicitly rather than guessed.

Pricing

$0.001 per address that returns a verdict - one email-verified event, so $1.00 per 1,000 addresses. No actor-start fee, no subscription, no minimum.

Two things reduce what you actually pay, and both happen before billing:

  • Duplicates are removed from the submitted list first. Paste 5,000 rows containing 3,800 unique addresses and you are charged for 3,800.
  • unknown is free. A DNS failure is not a verdict, so it is not billed. Re-run those.
  • Stray tokens with no @ in them - the fragments a messy paste produces - are reported and not charged either.

maxEmails (default 1,000, max 10,000) is a hard cap on the run and therefore on the spend.

Honest comparison

Measured from each actor's live pricing on 2026-08-15, for a 1,000-address list:

ActorPrice shape1,000 addressesMethod
eliai/email-list-verifier (this one)$0.001 per verdict, no start fee$1.00DNS: MX / null-MX / implicit-MX + risk flags
automation_studio/bulk-unlimited-email-verifier$0.00005 start + $0.0001 per result$0.10per its listing
yabanana99/email-list-cleaner-verifier$0.005 start + $0.00075 per verdict$0.76DNS, with optional SMTP
juryless_lens/email-verifier$0.01 start + $0.005 per result$5.01per its listing

We are not the cheapest, and you should know why before you pay more. What you get for the difference is the correctness work described at the top of this page: null-MX caught instead of passed, implicit-MX kept instead of deleted, typo domains flagged instead of blessed, transient DNS returned as unknown and unbilled instead of guessed as invalid. If a verifier gets those four wrong, its cheaper price is buying you a list that is worse than the one you started with - which is the expensive outcome, not the $1.

If your list is already clean and you only need a syntax-and-MX sanity pass, the cheaper options above will do that fine.

When NOT to use this

  • You need to know that a specific mailbox exists. No DNS-based verifier can tell you that. See What this does not do above; send a double opt-in.
  • You want catch-all detection. A catch-all domain accepts every address, so neither we nor an SMTP prober can distinguish a real mailbox from a typo there.
  • You want reputation, blocklist or spam-trap data. Not included, and anyone selling a reliable public spam-trap list is selling confidence.
  • You want to audit a domain's mail configuration (SPF, DKIM, DMARC) rather than its addresses. That is a different job - Email Deliverability Checker does it.
  • Single-address checks in a hot loop. It is fine, but at $0.001 each the per-call overhead is the run, not the price; batch them.

Use from code or AI agents

Verify a list from any HTTP client and get the verdicts back in the same call:

curl -X POST "https://api.apify.com/v2/acts/eliai~email-list-verifier/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"emails": ["hello@acme.com", "test@mailinator.com", "someone@gmial.com"]}'

AI agents can call this actor as a tool through Apify's MCP server - the "For agents and automation" contract above is written to be read by an LLM choosing tools.

FAQ

Does it send any email? No. Verification is DNS-only - MX, A and AAAA lookups. Nothing touches the recipient's inbox and your sender reputation is never at risk.

Does it check whether a specific mailbox exists? No, deliberately - no DNS-based verifier can. SMTP mailbox probing gets throttled or blocked by every major provider, and catch-all domains accept everything anyway, so the answer is frequently wrong. This actor verifies the domain can receive mail and reports risk signals honestly; for mailbox-level certainty, send a double-opt-in confirmation.

What does unknown mean - and am I charged for it? DNS was temporarily unreachable for that domain, so no verdict is honest. unknown results are free; re-run them.

Why did it keep an address whose domain has no MX record? RFC 5321 implicit MX: a domain with only an A or AAAA record can still receive mail, and many small-business domains work exactly that way. It's reported as mxKind: "implicit-a" so you can see why it passed.

Why did it reject a domain that does have an MX record? RFC 7505 null MX: a single MX record pointing at "." is a standards-defined statement that the domain refuses all mail. Naive tools count the record and call it valid; every message bounces.

How is it billed? $0.001 per address that returns a verdict, so $1.00 per 1,000 addresses, with no actor-start fee. Duplicates are removed before billing and unknown results are never charged.

How do I get the results into my CRM or spreadsheet? Download the dataset as CSV, Excel, JSON, or JSONL from the run's Storage tab, or pull it via the dataset API. To convert it in a pipeline instead, hand the dataset to JSON to CSV Converter.

How many addresses can one run handle? Up to 10,000, with maxEmails defaulting to 1,000 so a first run cannot surprise you. Larger lists: split them across runs.

Will this hurt my sender reputation? No. It sends no mail and opens no SMTP connections - it only asks DNS about the domain. Nothing you verify here ever sees a message from you.

What is the difference between risky and invalid? invalid means the address cannot receive mail - bad syntax, dead domain, or a null-MX refusal - and should be removed. risky means it will deliver but something about it should inform your decision: a disposable inbox, a role account, or a typo domain. Check disposable, roleBased and didYouMean and apply your own policy.

Built by Broke to Built.

For AI agents

This Actor is built to be called by software, not just by people.

  • Mount it directly as an MCP tool — no Store search, no ranking, just this one tool: https://mcp.apify.com/?actors=eliai/email-list-verifier
  • Or call it over HTTP and get the results in the same request: POST https://api.apify.com/v2/acts/eliai~email-list-verifier/run-sync-get-dataset-items
  • Pay with x402, without an Apify account. This Actor is whitelisted for agentic payments, so an agent holding USDC on Base can buy a prepaid token and spend it here. The minimum purchase is $1, the token balance is an absolute spending cap, and it expires 14 days after purchase.
  • Costs are predictable before you call. Pricing is pay-per-event (see Pricing above), so an agent can budget a run in advance instead of discovering the bill afterwards.
  • Send only the field you mean. If you pass the bulk field, it is used on its own; the single-value field is a fallback, never merged into your request. You are charged for the items you sent and nothing else.