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
7
Total users
2
Monthly active users
2 months 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.