Bulk Email Verifier — Low-Bounce List Cleaner avatar

Bulk Email Verifier — Low-Bounce List Cleaner

Pricing

from $0.50 / 1,000 email-verifieds

Go to Apify Store
Bulk Email Verifier — Low-Bounce List Cleaner

Bulk Email Verifier — Low-Bounce List Cleaner

Verify any list of emails before you send. Checks syntax, domain MX, disposable, role and free-provider — returns a valid / risky / invalid verdict per address so your bounce rate stays low.

Pricing

from $0.50 / 1,000 email-verifieds

Rating

0.0

(0)

Developer

Mohammed Samaan

Mohammed Samaan

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

15 hours ago

Last modified

Share

Bulk Email Verifier

Paste a list, chain a dataset, or point at a CSV URL — get back every address with a status, a 0–100 score, and the exact reason, so you can delete the bounces before they wreck your sender reputation.

Who it's for

  • Cold-email agencies and SDR teams cleaning a list before a send
  • Anyone chaining this after a scraper (ours or another) to grade the emails it found before they hit an outreach tool
  • Newsletter and e-commerce lists that need a periodic bounce-risk cleanup

What you get

FieldWhat it is
emailNormalized address
statusvalid / invalid / catch_all / unknown / disposable / risky
score0–100 deliverability confidence
reason / reason_detailMachine-readable code + a plain-English sentence
syntax_validPassed the offline format check
mx_found / mx_hostDomain has a mail destination, and which one
smtp_checkedWhether the mailbox-level check actually ran
smtp_validMail server's verdict on the mailbox, null if not checked
is_disposable / is_role / is_free_providerThrowaway / generic inbox / consumer provider
has_tag / base_email+tag detection and the de-dupe base address
typo_suggestionSuggested fix for a likely-mistyped domain, or null
domain_has_spf / domain_has_dmarcWhether the domain publishes those records
checked_at / duration_msTimestamp and how long the check took

A SUMMARY record with the run's tally is written to the key-value store.

Input

{
"emails": ["info@apify.com", "someone@gmial.com", "throwaway@mailinator.com"],
"treatRoleAsRisky": true,
"concurrency": 20
}

Instead of (or alongside) emails, you can chain another actor's dataset with inputDatasetId + emailField, or point csvUrl at a CSV file (Google Sheets and Dropbox share links are converted to direct downloads automatically). All three sources merge and de-duplicate in one run.

Verification depth

Every address always gets: syntax check, typo suggestion, plus-tag detection, disposable/role/free-provider lookup, MX lookup, and SPF/DMARC presence check — all free, offline or DNS-only.

SMTP mailbox check is available when a relay is configured. Apify's cloud blocks outbound port 25, so the mailbox-level RCPT TO probe runs through a small relay you point the actor at (relayUrl + relayToken, or the EMAIL_RELAY_URL / EMAIL_RELAY_TOKEN environment variables). A relay is also what lets the actor detect catch-all domains, by probing a random address on the domain first. Without a relay, the run does not fail — it logs a warning, sets smtp_checked: false on every row, and grades from syntax, lists, MX and domain health instead. The relay is open source and ships in this repo under email-relay/.

Pricing

$0.50 per 1,000 emails verified. Addresses that fail the free, offline syntax check are not charged by default (skipInvalidSyntax). Duplicates are removed before verification, so you pay for unique addresses only.

How it compares

No browser, no per-second compute — verification is DNS lookups and (when a relay is configured) short SMTP conversations that stop before DATA, so nothing is ever sent. That keeps this fast and cheap to run against large lists compared to a verifier built around a heavier scraping stack.

Use with n8n / Make / Zapier

Add an Apify integration node, run this actor with your list or dataset ID as input, then read the finished dataset back into your workflow to filter out anything that isn't valid before it reaches your send step.

FAQ

Why is an address unknown? Either the mail server greylisted the probe and it didn't clear after retries, the server refuses probes from unknown IPs, or no relay was configured for mailbox-level checking. unknown means the check didn't reach a verdict — it isn't a soft "invalid".

Does it detect catch-all domains? Only when a relay is configured — that's what lets the actor probe a random address on the domain to test whether it accepts mail for anything. Without a relay, catch-all domains are not flagged; they come back MX-only.

Do you send email to the addresses? No. The SMTP conversation, when it runs, stops at RCPT TO and never reaches DATA.

Can I re-run it later? Yes — mailboxes go stale. Re-verifying a list every few months is normal practice.

What does the score mean? A 0–100 deliverability confidence built from whichever checks actually ran, adjusted for role/free-provider/typo/plus-tag flags — not a claimed accuracy percentage, since accuracy depends on the mix of domains in your list.

More from leadharbor