Email Finder API - Find Work Email by Name and Domain
Pricing
$4.99 / 1,000 verified email founds
Email Finder API - Find Work Email by Name and Domain
No API key required. Email lookup by name + company domain (or company name): find anyone's work email, verified live over SMTP. Hunter alternative: pay only for verified emails, $4.99/1,000. Catch-all guesses free.
Pricing
$4.99 / 1,000 verified email founds
Rating
0.0
(0)
Developer
PNDA
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
๐ง Email Finder: Find Verified Work Emails by Name and Domain
Give a first name, last name and company domain. Get back the person's work email, verified live over SMTP. You need no API key, no Hunter, Snov or Apollo subscription and no credits to buy. You pay $4.99 per 1,000 emails found, and only for addresses that were actually verified.
It is a Hunter alternative that runs on Apify. Paste a list, click Run, and export a cold-email-ready CSV. You can also call it as an email finder API from n8n, Make, Zapier, Clay or your own code.
- ๐ No API key. Everything runs inside the Actor. You don't need an account with any other email lookup service.
- โ
Verified, not guessed. Each candidate address is checked against the company's mail server (MX lookup, then SMTP
RCPT TO). The search stops at the first deliverable mailbox. - ๐ธ You pay only for verified emails. Not found, unknown and catch-all results are never charged. There is no start fee.
- ๐ง Smart patterns. It tests
first.last,first,flast,firstlast,f.last,first_lastand more, in order of real-world frequency. It handles accents, compound names and particles (van der,de). - ๐ข No domain? Give the company name. The Actor deduces the domain (
Acme Labsโacmelabs.com) and keeps it only if it actually receives email. - ๐ Try it free. On the free Apify plan, the first 10 persons of every run are looked up at no cost.
๐ก Who is it for?
- Sales and SDR teams who need to turn a lead list (name + company) into verified work emails before a cold email campaign.
- Recruiters who want to reach candidates directly at their work email.
- Founders and marketers doing partnership, PR, podcast or investor outreach.
- RevOps and CRM owners filling in a missing email column in bulk.
- Clay, n8n, Make and Zapier users who need an email lookup step without paying for another seat.
- Developers who want a pay-as-you-go email finder API without a monthly plan.
๐งฐ Use cases
- Find an email by name and domain.
Rand Fishkin+sparktoro.comreturnsrand@sparktoro.com, verified. - Bulk email lookup. Upload thousands of contacts exported from LinkedIn Sales Navigator, a conference attendee list or a CRM.
- Enrich scraped leads. Chain it after a Google Maps, LinkedIn or company website scraper to add the decision maker's work email.
- Clean a list before sending. Rows marked
catch-allorunknowntell you which addresses are risky, so you can protect your sender reputation. - Find the company email pattern. The
patternfield (first.last,flastโฆ) shows you how a company formats its addresses.
โ๏ธ How it works
- Normalize. For each person, the name is normalized: accents are removed and titles like
Dr.are dropped. The domain is cleaned too:https://www.acme.com/aboutbecomesacme.com. - Build candidates. Up to 12 candidate addresses are built, from the most common corporate pattern to the least common.
- Verify. Candidates are verified one by one over SMTP. The first deliverable address is returned with
status: "found"andconfidence: "verified". - Catch-all domains. Some domains accept any address, which is common on Google Workspace, so no mailbox can be proven. For these, the most likely pattern is returned with
status: "catch-all", free of charge. The domain is remembered for the rest of the run, so other people at the same company cost no extra check.
No email is ever sent. The SMTP conversation stops before any message is delivered.
๐ฅ Input
| Field | Type | Required | Description |
|---|---|---|---|
persons | array | โ | One object per person: { "firstName", "lastName", "domain" } or { "fullName", "companyDomain" }. Use companyName when you don't know the domain. |
maxPatternsPerPerson | integer | How many patterns are tested per person, from 1 to 16 (default 12). | |
concurrency | integer | How many persons are looked up in parallel, from 1 to 10 (default 5). |
Example input
{"persons": [{ "firstName": "Rand", "lastName": "Fishkin", "domain": "sparktoro.com" },{ "fullName": "Sahil Lavingia", "companyDomain": "https://gumroad.com" },{ "firstName": "Jane", "lastName": "Doe", "companyName": "Acme Labs" }]}
URLs and email addresses are accepted as domains, for example https://www.acme.com/team or someone@acme.com.
๐ค Output
You get one row per input person.
{"input": { "firstName": "Rand", "lastName": "Fishkin", "domain": "sparktoro.com" },"firstName": "rand","lastName": "fishkin","domain": "sparktoro.com","domainSource": "input","email": "rand@sparktoro.com","status": "found","confidence": "verified","pattern": "first","mxHost": "aspmx.l.google.com","checkedEmails": 2,"charged": true}
Here is a row for a catch-all domain:
{"domain": "acme.com","email": "jane.doe@acme.com","status": "catch-all","confidence": "catch-all","pattern": "first.last","charged": false}
status | Meaning | Charged? |
|---|---|---|
found | The mailbox was verified over SMTP. | โ |
catch-all | The domain accepts every address. You get the best guess, unverified. | โ free |
not-found | The mail server rejected every tested pattern. | โ |
unknown | The mail server gave no clear answer (greylisting, anti-spam). | โ |
no-mx | The domain does not receive email. | โ |
invalid-input | The first name or the domain is missing. | โ |
A SUMMARY record in the key-value store gives the totals by status. You can export the dataset to CSV, Excel or JSON, or read it through the API.
๐ฐ Pricing
The Actor uses pay per event, with one event and no start fee:
| Event | What triggers it | Price |
|---|---|---|
email-found | 1 verified email found | $4.99 / 1,000 ($0.00499 each) |
Catch-all guesses, not found, unknown and invalid rows are free.
| Example run | Persons | Verified emails | Cost |
|---|---|---|---|
| Quick test | 10 | 4 | ~$0.02 |
| Lead list | 1,000 | 400 | ~$2.00 |
| Big list | 10,000 | 4,000 | ~$19.96 |
- Free Apify plan: the first 10 persons of each run are looked up for free, and nothing is charged. Upgrade to a paid plan to process full lists.
- Spending cap: set Maximum cost per run in the run options. The Actor never starts a lookup that your limit could not pay for. The persons it skips are counted as
skippedForBudgetinSUMMARY.
๐ฅ Email finder comparison
The table below compares public prices for finding a work email from a name and a domain, as of October 2026.
| Tool | What you pay for | Price per 1,000 | API key or subscription |
|---|---|---|---|
| This Actor | Verified emails only | $4.99 | None |
| Hunter.io | Credits (monthly plan) | ~โฌ24.50 (โฌ49 for 2,000) | Subscription |
| Findymail / Prospeo | Credits (monthly plan) | ~$20โ25 | Subscription |
| Icypeas | Credits | ~$10โ19 | Subscription |
| clearpath/email-finder-api | Every pattern tested, plus a start fee | $8 per pattern (several patterns per person) | None |
| automation-lab/email-finder | Every person searched, found or not | $5 + start fee | None |
| memo23/email-finder | Email found, plus a start fee | $20 | None |
You only pay when a mailbox is proven to exist. Misses and catch-all guesses cost nothing.
๐ Use it as an email finder API
curl -X POST "https://api.apify.com/v2/acts/pnda~email-finder/run-sync-get-dataset-items" \-H "Authorization: Bearer <APIFY_TOKEN>" \-H "Content-Type: application/json" \-d '{"persons":[{"firstName":"Rand","lastName":"Fishkin","domain":"sparktoro.com"}]}'
You can also use the Apify JavaScript and Python clients, the n8n, Make and Zapier integrations, or an HTTP column in Clay.
โ FAQ
Do I need an API key from Hunter, Snov or another provider? No. Everything runs inside the Actor. You only need an Apify account.
How accurate is it?
An email with status found passed a live SMTP check: the company's mail server confirmed that the mailbox exists. On domains that are not catch-all, most lookups end with a verified address.
What is a catch-all domain?
It is a mail server that accepts every address, so no mailbox can be proven. You get the most likely pattern for free, flagged confidence: "catch-all". Verify it with your own tools before you send to it.
Why was an email not found?
The person may use a nickname or an unusual pattern, or may have left the company. The server may also block verification, which gives unknown. You are not charged in any of these cases.
Does it send any email? No. The check stops before any message is sent.
Can I use it on the free Apify plan? Yes. The first 10 persons of each run are free. For larger lists, use a paid Apify plan (pricing).
Can I find an email from a LinkedIn profile? Yes, if you pass the person's name and the domain of their current company. Chain this Actor after a LinkedIn or company scraper.
Is it legal? It checks professional addresses built from public information. You are responsible for using the results in compliance with the GDPR, CAN-SPAM, the CCPA and any other law that applies to you. That includes having a legitimate interest before you contact anyone.
๐งฉ More tools from PNDA
| Actor | What it does |
|---|---|
| ๐ Semrush Keyword Scraper | Keyword volume, CPC, difficulty and intent, plus domain overview, competitors and backlinks. No Semrush login. |
โถ๏ธ Start now
Paste your names and company domains, click Run, and export your verified emails. You pay only for what is found.