Email Finder & Verifier - MX + pattern confidence
Pricing
from $10.00 / 1,000 contact resolveds
Email Finder & Verifier - MX + pattern confidence
Find business emails from a name + company domain. Guesses the likeliest pattern, verifies the domain's MX records, scores confidence, and flags catch-alls. Plug in your own SMTP verifier API for mailbox-level checks. Clean per-contact pricing.
Pricing
from $10.00 / 1,000 contact resolveds
Rating
0.0
(0)
Developer
Korado Labs
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
9 days ago
Last modified
Categories
Share
Email Finder & Verifier ๐ง
Turn a name + company domain into a verified business email. This actor generates the common corporate email patterns, resolves the domain's mail servers, and checks each candidate for real over SMTP โ so you get a deliverable address with a confidence score, not a guess. Bulk-ready. Export data, run via API, schedule runs, or integrate with other tools.
What makes it reliable
- โ
Honest verification, no false positives โ resolves the domain's MX and,
where the network allows it (e.g. self-hosted), checks each candidate mailbox
for real over SMTP (
RCPT TO). On Apify โ whose platform blocks outbound SMTP (port 25) โ it returns truthful MX/pattern-level results (mx_only) instead of pretending an address is confirmed. Plug in an HTTPS verifier API (verifierApiUrl) for true mailbox checks on-platform. - ๐ณ๏ธ Catch-all detection โ probes a random mailbox first, so domains that
"accept everything" are flagged (
catchAll: true) instead of returning a false positive. - ๐ฏ Confidence score per result and the pattern that matched.
- ๐ Alternatives โ every other deliverable pattern it found.
- ๐ฆ Bulk โ pass hundreds of contacts; MX and catch-all results are cached per domain so large lists stay fast.
- ๐ซ Fair billing โ only resolved contacts are charged; no-MX/no-result contacts and failed runs cost nothing.
What data do I get per contact?
| Field | Description |
|---|---|
email | Best verified email (or best-guess on catch-all domains) |
status | valid, catch_all, invalid, mx_only, unknown, no_mx, no_domain, no_name |
deliverable | true / false / null (unknown / catch-all) |
catchAll | Whether the domain accepts all addresses |
confidence | 0โ100 score |
pattern | Which pattern matched (e.g. first.last, flast) |
alternativeEmails | Other deliverable candidates |
smtpCode | Raw SMTP response code |
candidatesTried | How many patterns were tested |
Email patterns tested
first.last, flast, first, firstl, f.last, first_last, firstlast,
last.first, lastf, last, last_first, f-last โ ranked by real-world
frequency, tested best-first.
How much does it cost?
Pay-per-event โ only resolved contacts are billed:
| Event | Price |
|---|---|
| Contact resolved (deliverable or catch-all best-guess) | $0.01 |
1,000 contacts where 700 resolve โ $7.00. No actor-start fee, nothing for no-result contacts, nothing on a failed run.
How do I use it?
Input โ single
{ "firstName": "Jane", "lastName": "Doe", "domain": "apify.com" }
Input โ bulk
{"contacts": [{ "firstName": "Jane", "lastName": "Doe", "domain": "apify.com" },{ "fullName": "John Smith", "domain": "example.com", "companyName": "Example Inc" }],"stopOnFirstValid": true}
Output
{"inputFirstName": "Jane", "inputLastName": "Doe", "domain": "apify.com","email": "jane.doe@apify.com", "status": "valid", "deliverable": true,"catchAll": false, "confidence": 95, "pattern": "first.last","alternativeEmails": [], "smtpCode": 250, "candidatesTried": 3}
What can you do with the data?
- ๐ Build outreach lists โ enrich a CSV of names + companies into verified emails.
- ๐งน Clean existing lists โ flag invalid and catch-all addresses before you send.
- ๐ค Sales & recruiting โ reach the right person with a deliverable address.
- ๐ Pipe into your CRM / sequencer via the Apify API or an integration.
FAQ
How is verification done? The actor resolves the domain's MX record. Where the
network permits (self-hosted), it opens an SMTP conversation and issues RCPT TO
per candidate โ 250 = mailbox accepted, 550 = doesn't exist. On Apify, which
blocks outbound port 25, it returns honest mx_only results unless you supply a
verifierApiUrl (an HTTPS verification API, which works over port 443).
Why mx_only instead of valid? Because faking a "valid" verdict without a
real mailbox check would bounce your emails. mx_only means: the domain accepts
mail and this is the most-likely pattern, but the mailbox wasn't individually
confirmed. Add a verifierApiUrl for a confirmed valid/invalid.
What is a catch-all domain? Some servers accept mail for any address. The
actor detects these by probing a random local-part first; when a domain is
catch-all, the best-guess email is returned with catchAll: true and a capped
confidence, because no single mailbox can be individually confirmed.
Why are some results unknown? Greylisting or temporary SMTP responses (4xx)
mean the server deferred the check. Re-running later usually resolves them.
Do you send any email? No. Verification stops at the RCPT TO step โ no
message is ever delivered.
Can I verify an email I already have? Yes โ pass the name whose address it is,
or watch for it in allCandidates with includeAllCandidates: true.
Is this legal / GDPR-safe? You're responsible for using contact data lawfully (legitimate interest, opt-outs, local rules). The actor only tests deliverability of business addresses and never sends mail.
Can I run it in bulk / via API? Yes โ pass a contacts array, and schedule or
call it via the Apify API/SDK like any actor.