Website contact extraction: the address has to be published somewhere first
Most business email addresses that work are not guessed - they are published somewhere, attached to a role, and someone eventually copied them into a file. Website contact extraction is the practice of collecting addresses from those places instead of inferring them.
Published versus inferred
| Published address | Inferred address | |
|---|---|---|
| Where it comes from | A page or profile that displays it | A naming pattern applied to a name and a domain |
| Evidence it exists | Someone put it in public as a contact point | None - the string only has to look plausible |
| Typical failure | Stale: the person left, the role moved | Wrong entirely, and invisibly so |
| What you can audit later | The page it was on | Nothing |
Inferred addresses are not useless, but they carry a second failure mode that published ones do not: the row looks exactly like a good row until it bounces.
Where business addresses actually sit
- Team, contact and about pages on the company site - and for many European companies the legal notice (Impressum) is where a monitored address is guaranteed to be.
- Support, press and partner pages, which often name a person and a role beside the address.
- Community profiles - Discord servers and Telegram channels where the person selling or supporting the product posts a reachable address themselves.
Fresh data collected from these sources outperforms stored databases by 42% on response (Harvard Business Review, 2024), which is the quantitative version of an obvious point: the page was updated when the company changed, the database was not.
Extract, then prove
Extraction gives you the address; it does not tell you whether the mailbox is alive. A collection pass produces three states, and only one of them is safe to mail:
valid- the mail server accepted a probe for that specific mailbox.invalid- rejected, or the domain does not accept mail. Drop the row and the pattern that built it.unknown- catch-all domain: every address is accepted, including invented ones, so no probe can confirm the named mailbox.
Running extraction without verification is what produces a list that tests at 10-35% bounce instead of 2-5%. 40% of email addresses go dead within two years (NeverBounce) and 23% of business contacts change jobs every year (ZoomInfo, 2025), so the collected-then-stored list has a decay clock running from the day it is built.
Doing it in one call
TAPAC resolves business contacts from company websites, Discord and Telegram and runs the SMTP probe in the same request:
curl -s -X POST https://tapacapi.com/v1/contacts/search \
-H "Authorization: Bearer ***" \
-H "Content-Type: application/json" \
-d '{"industry":"manufacturing","job_titles":["purchasing manager"],"company_size":"51-200","location":"italy","source":"website","limit":50}'
Each returned contact carries the person, the company and role, the source the address was found in, and the verification state - so the audit trail travels with the row instead of living in a spreadsheet column nobody maintained. From an agent it is tapac_find_contacts via npx -y @tapacapi/mcp or the hosted endpoint at https://tapacapi.com/mcp.
info@, the honest result is that address - not a guessed personal one. TAPAC returns what the source shows and what the mail server answers, and nothing it cannot verify.Where to go next
- Lead scraping tool · B2B email finder · B2B contact database alternative
- Email finder vs verifier · Verify email before sending · Email list cleaning
- 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