Email Verification API - Verify, Find and Reverse Lookup
Pricing
$12.00 / 1,000 results
Email Verification API - Verify, Find and Reverse Lookup
Verify email addresses with SMTP checks, a safe-to-send verdict and a reason code, find the address behind a person at a company, and reverse-look-up the person or company behind an address, a domain or a profile URL. Flags catch-all, disposable, free, role and gibberish. Pay per result.
Pricing
$12.00 / 1,000 results
Rating
0.0
(0)
Developer
Nabeel Hassan
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Clean a list, find the addresses missing from it, and work backwards from an address to the person behind it. Fifteen modes over one API token, one flat row per input.
What this actor does
- Verifies with a reason, not just a verdict. Every address comes back as valid, invalid, catch-all or unknown, with a safe-to-send rating on top and a numeric reason code underneath. The code is where the decisions live: 407 is a greylisting server that will verify perfectly on a retry, 406 is a mailbox that does not exist. Both are offered as filters, and every row carries the reason spelled out next to the code so a dataset is readable without a lookup table.
- Finds the address behind a person at a company. Give it a name and a company and it returns the address with a confidence score, the business or consumer flag, and every runner-up candidate it considered. Paste one company and a list of names to run a whole account in a single pass.
- Recovers a slow find instead of throwing it away. When a lookup outruns its timeout the provider keeps working in the background and hands back a queue id. The actor takes the id and polls it, because the credit has already been spent and giving up wastes it.
- Works backwards from an address, a domain or a profile URL. Reverse lookup returns the person: name, job title, company, company domain, public profile URL and total years of experience. That turns a bare list of addresses into a list of people you can actually write to.
- Flags disposable, free, role, gibberish, catch-all and business addresses. Each is a column and a filter, and each is also available as a standalone mode when a single flag is all you need and a full verification is not worth the credit.
- Validates names. Signup and lead forms collect as much keyboard noise as they do real names. The name mode returns a verdict plus separate gibberish and profanity flags, with three sensitivity levels.
- Reads mail exchanger and registration records for a domain. Useful for judging whether a domain can receive mail at all before spending anything on the addresses under it.
- Suggests a typo correction. When an address looks like a misspelling of a real domain, the suggested address comes back on the row. That is the difference between discarding a signup and recovering it.
- Tells the three kinds of "no" apart. An empty credit balance, an exhausted daily limit and a per minute rate limit arrive looking similar and need opposite reactions. The rate limit is retried automatically; the other two stop the run instead of spending an hour on requests that cannot succeed.
- Checks the balance before it starts. The balance read is free, and knowing a run will dry up at row four hundred is worth much more before the run than after it.
- Never charges for a miss. Only rows carrying a resolved result are billed.
Input
| Field | What it does |
|---|---|
mode | Which of the fifteen questions to ask. |
emails | Addresses, for the verify, reverse email and flag modes. |
people | Names, for the find mode. Paired line by line with companies. |
companies | Company names or websites. |
domains | Domains, for reverse domain, mail exchanger and registration modes. |
profileUrls | Public profile URLs, for the reverse profile mode. |
names | Names, for the validate names mode. |
statuses | Keep only these verification verdicts. |
safeToSend | Keep only these safe-to-send ratings. |
subStatusCodes | Keep only these reason codes. |
excludeDisposable | Drop throwaway addresses. |
excludeFreeEmail | Drop free consumer mailboxes. |
excludeRoleAccounts | Drop shared inboxes such as info and support. |
excludeGibberish | Drop machine-generated mailbox names. |
excludeCatchAll | Drop addresses on catch-all domains. |
requireBusinessEmail | Keep only company addresses. |
minConfidence | Minimum finder confidence to keep a found address. |
gibberishThreshold | Sensitivity of the name gibberish check. |
timeoutMs | Milliseconds the provider may spend on one lookup. |
queueSlowFinds | Poll for a find that outran its timeout. On by default. |
requestsPerMinute | Pace the run under your plan's rate limit. |
skipNotFound | Leave inputs with no result out of the dataset. |
maxResults | Hard cap on rows, and therefore on spend and run time. |
authScheme | Which token shape to send. Automatic by default. |
apiKey | Your own API token. Stored as a secret. |
Example output
{"found": true,"mode": "verify","query": "jane.doe@example.com","email": "jane.doe@example.com","status": "valid","safeToSend": "yes","subStatusCode": 200,"subStatusReason": "Success","bounceType": null,"account": "jane.doe","domain": "example.com","mxRecord": "aspmx.l.google.com","smtpProvider": "google","disposable": false,"free": false,"role": false,"gibberish": false,"suggestedEmail": null,"profile": "business","verifiedOn": "2026-08-26T09:14:02.000Z","timeTakenMs": 412,"error": null,"raw": { }}
Frequently asked questions
What does an email verification API actually check?
It works in layers. The address is checked for correct syntax, the domain is looked up for mail exchanger records, and the receiving mail server is then contacted over SMTP and asked whether that specific mailbox exists. On top of that the provider applies its own knowledge of disposable providers, role addresses, catch-all configurations and machine-generated mailbox names. Each row returns the verdict of that whole process, a safe-to-send rating, and the numeric reason code that decided it.
What is the difference between the verdict and the reason code?
The verdict is one of valid, invalid, catch-all or unknown. The reason code is the detail underneath it, and it is the field worth reading twice. Two addresses can both come back unknown when one hit a greylisting server that will verify on the second attempt, code 407, and the other could not be connected to at all, code 402. Filtering on the reason code lets you retry the first group and discard the second instead of throwing away both. Every row carries the code and the reason it stands for.
What is the difference between the verdict and safe to send?
The verdict describes the mailbox. Safe to send describes the risk of actually mailing it. A valid address on a badly configured server, or on a domain that accepts everything and only reveals the truth when mail arrives, is technically valid and still a bad idea to send to. The safe-to-send rating folds those cases in, which is why a run aimed at protecting sender reputation usually filters on it rather than on the verdict.
How does the email finder work?
Give it a person's name and a company name or website. It returns the most likely address with a confidence score from zero to one hundred, a flag for whether the address is a business or consumer account, and the full list of candidates it considered. Paste one company and a list of names and the single company applies to every person, which is the usual way to run a whole account in one pass.
What happens when a find takes too long?
The provider does not simply fail. It hands back a queue id and finishes the lookup in the background, and this actor takes that id and polls until the answer arrives. That matters because the credit is spent either way: abandoning a slow lookup means paying for an answer you never collect. Turn queueSlowFinds off if you would rather have the run move on.
What can reverse lookup tell me?
Given an address, a domain or a public professional profile URL, it returns the person or company behind it: name, job title, employer, employer domain, profile URL and total years of experience. It is the inverse of the finder, and it is what turns an inherited list of bare addresses into a list of people with enough context to write to.
What is a catch-all domain and why does it matter?
A catch-all domain is configured to accept mail for every possible mailbox, whether or not it exists. An SMTP check against any address there comes back positive and proves nothing about the individual mailbox, which is why these come back as catch-all rather than valid and are rated risky rather than safe. Use the catch-all mode when that single question is all you need, and the drop catch-all filter when you want them out of a verification run.
Why check names as well as addresses?
Because the name field on a signup form collects as much keyboard noise as it does real names, and a lead with a gibberish name is not a lead. The name mode returns a verdict with separate gibberish and profanity flags, at three sensitivity levels. It costs less attention than discovering the problem later in a mail merge.
Do I need my own API key?
Yes. This actor does not include data access. You use your own API token from Clearout, which is the provider whose email verification and email finder API this actor calls, created on their dashboard. Your own plan, credit balance and terms apply. Paste the token into the apiKey field, where it is stored as an Apify secret. The provider accepts two token shapes, a bearer token from the current dashboard and an older account id and secret pair, and the actor picks the right one by looking at your key. Override it with authScheme if you ever need to.
What happens when a lookup returns nothing?
An invalid address is a verdict, not a miss: the provider telling you a mailbox does not exist is the question you asked, so that row is written and billed like any other. A miss is an input the provider returned no result for at all, such as a person whose address could not be found, and those are written with found: false and never billed. Set skipNotFound to true to leave them out of the dataset entirely.
How much does a run cost?
Pricing is pay per result: you are charged for each input resolved into the dataset, and never for misses, for rows dropped by the filters, or for duplicates. Apify platform usage is included in the per-result price. Your own API provider's credit balance is separate and billed by them, and the actor reads and reports that balance before the run starts.
Keyword map
email verification API, email validation API, bulk email verifier, email finder API, find email by name and company, email list cleaning, SMTP verification, MX record lookup, whois lookup, catch-all detection, disposable email detection, role account detection, gibberish email detection, email typo correction, safe to send, bounce rate reduction, sender reputation, list hygiene, signup form validation, reverse email lookup, email to person, domain to company, profile URL lookup, name validation API, profanity check, lead form validation, B2B contact enrichment