An email finder produces a string. An email verifier produces a state
These two tools are sold as one category and they are not the same job. A finder answers "what is this person's address?" A verifier answers "does that mailbox accept mail?" The gap between the two answers is where bounce rates are made.
What each one actually returns
| Email finder | Email verifier | |
|---|---|---|
| Input | A name, a domain, a title, a company | An address you already have |
| Output | A string that matches the domain's naming pattern | valid, invalid or unknown |
| Can it be wrong in a way you notice? | No - every guess looks like an address | Yes - an invalid row is a visible cost |
| Billing unit | Per result returned | Per address checked |
The finder's failure mode is silent by design. first.last@company.com is a valid string, a plausible address and possibly a mailbox that was never issued. Nothing in the finder's response distinguishes it from a real one.
Why the handoff leaks
Run the two tools as separate steps and the file passes through a gap that costs three ways:
- Two bills, one outcome. You pay to find the row and again to learn the row is unusable. The finder is never charged for the addresses that turn out to be dead.
- Time between the two calls. Decades of decay statistics apply inside that window: 40% of addresses go dead within two years (NeverBounce) and 23% of business contacts change jobs annually (ZoomInfo, 2025). A stored list is a snapshot of a moving target.
- The unknown rows get sent anyway. A catch-all domain accepts a probe for every address, so the third state gets written off as "verified enough" and mailed. That is the mechanism behind the 10-35% bounce range that databases carry versus 2-5% for contacts confirmed at the moment of use.
Doing both in one request
TAPAC returns the contact and its mailbox state from the same call, so there is no handoff to schedule and no second vendor to pay:
curl -s -X POST https://tapacapi.com/v1/contacts/search \
-H "Authorization: Bearer ***" \
-H "Content-Type: application/json" \
-d '{"industry":"saas","job_titles":["vp marketing"],"company_size":"51-200","location":"france","source":"website","limit":25}'
Every row carries the person, the company, the title, the source the address was published in and the SMTP state of the mailbox. From an agent it is one tool call - npx -y @tapacapi/mcp, or the hosted endpoint at https://tapacapi.com/mcp with tapac_find_contacts and tapac_status. Single addresses already in your CRM go through POST /v1/contacts/verify.
The question to ask both vendors
Ask the finder how it reports an address it could not confirm, and ask the verifier how a catch-all domain is reported. A finder that has no "unconfirmed" state and a verifier that prints valid for catch-all are describing a file cleaner than the one you own. The honest answer for a catch-all mailbox is unknown.
Where to go next
- Verify email before sending · Catch-all email verification · Email verification API
- B2B email finder · Website contact extraction · Contact finder API
- Install the TAPAC MCP server - npx, uvx or the hosted endpoint, with the JSON block for Claude, Cursor, Codex and Windsurf.
- Compare TAPAC with Apollo, ZoomInfo, Hunter and Lusha · Pricing · Get a free API key