Website Email Finder - Optional Email Verification
Pricing
from $5.00 / 1,000 email founds
Website Email Finder - Optional Email Verification
Find publicly listed email addresses on business websites, with source URLs. Scan a website list or CSV and optionally verify the extracted emails. Email verification is off by default.
Pricing
from $5.00 / 1,000 email founds
Rating
0.0
(0)
Developer
Lead Proof
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
21 hours ago
Last modified
Categories
Share
Find email addresses published on company websites. Paste domains or supply a CSV file. Each email comes with its source pages. Turn on mailbox verification only when you need it.
This is useful when you already have a list of companies from a CRM, directory, spreadsheet, or another scraper and want to fill in their contact emails.
How to use
- Enter website URLs or domains in Websites or domains, or provide a CSV file URL.
- Leave Verify found email addresses off for extraction only. This mode makes no verification requests and requires no verification-service credentials.
- Optionally enable verification. The developer supplies the verification integration; customers do not need an API key.
- Set website, page and email limits, then run the Actor.
- Export the dataset as JSON or CSV. Read
SUMMARYto check coverage and stop reasons.
Extraction only:
{"websites": ["https://www.python.org/"],"verifyEmails": false,"maxWebsites": 10,"maxPagesPerWebsite": 5,"maxEmailsPerWebsite": 10}
With verification, use the same input with "verifyEmails": true.
For CSV input, set csvUrl to a public or signed file URL and websiteColumn to the exact
column header (default: website). UTF-8 CSV, quoted fields, and a UTF-8 BOM are supported.
Files are limited to 2 MB and 1,000 nonempty website entries. CSV and direct inputs are combined.
Output
One row per website/email pair. Repeated occurrences on the same site are combined into one row with all observed source pages. A domain supplied more than once is scanned once. The same email published by different domains may produce one row for each domain. The verifier caches repeated addresses during a run.
If a site yields no email, an uncharged diagnostic row is returned with email: null.
no_email_found means the fetched pages had no usable email; it is not proof that the entire
website has no email. website_failed means no content page could be read.
| Field | Meaning |
|---|---|
website, domain | Input website and normalized domain |
email | Published email, or null on diagnostics |
sourceUrls, methods | Source pages and extraction methods |
verificationStatus | not_requested, ok, catch_all, unknown, invalid, disposable, error, not_applicable |
isDeliverable | True for provider ok, false for invalid/disposable, null otherwise |
verificationReason | Sanitized reason when verification fails |
scanStatus | succeeded, partial, or failed |
resultType | email, no_email_found, or website_failed |
pagesAttempted, pagesSucceeded | Content-page coverage; excludes robots.txt and redirects |
errors | URLs and failure categories for unreadable/disallowed pages |
crawlLimited | More pages or addresses remained beyond the configured limits |
billingEvent | email-found, email-checked, or null on diagnostics |
scrapedAt | UTC timestamp |
ok is a mailbox verification result at the time of checking, not a guarantee of future
delivery. Catch-all and unknown results never set isDeliverable to true. In extraction-only
mode, every returned email has verificationStatus: "not_requested" and isDeliverable: null.
What it scans
- The starting page and discovered contact, about, team, staff, and international equivalents.
- Common contact/about paths as fallbacks, within the same page limit.
- Visible text,
mailto:links, JSON-LD email fields, and Cloudflare's encoded public emails. - HTTP(S) sites on standard ports, with TLS validation, response limits, and bounded redirects.
robots.txtrules, including crawl delays up to 10 seconds. Longer delays are reported as unsupported instead of ignored. An unavailable robots file fails the site conservatively.
The Actor does not guess mailbox names, log in, execute JavaScript, solve challenges, OCR
images, or crawl social networks. JS-only email displays and protected pages can be missed.
Navigation stays on the input hostname, allowing its www/non-www equivalent. Redirects to
other domains are reported. Free-provider addresses such as Gmail are included unless
sameDomainOnly is enabled. A published address can belong to a vendor or partner; the source
page is evidence of publication, not proof of ownership.
Pricing behavior
Extraction costs $5 per 1,000 returned email rows. Extraction with a completed verification costs $10 per 1,000 rows, including extraction. The two events are mutually exclusive:
email-found: extracted email, no completed verification. Provider-error results also use this event, withverificationStatus: "error".email-checked: extracted email plus a completed provider check, including catch-all, unknown, invalid and disposable results. This replaces email-found; it is not added to it.
Diagnostic rows have no custom event charge. Actor start costs $0.00005 per GB of allocated
memory, with a one-event minimum. Platform usage is included. No third-party Actor is run on
the customer's account. Missing verification
configuration or credits fails before crawling when verification is enabled. Three provider
errors stop the run with partial results retained. Spending limits are checked before each
provider request and output charge; a batch of at most concurrency websites may already have
been scanned when the budget is reached.
Summary and recovery
SUMMARY reports input deduplication, websites omitted by the limit, processed/readable/failed
sites, sites without emails, returned email rows, checked rows, provider errors, and stop reason.
If every website fails, the Actor fails with diagnostic rows saved instead of claiming a
successful empty search. CHECKPOINT records completed sites and an input fingerprint.
After migration or restart, already emitted website/email pairs are skipped. Checkpoint and
dataset writes are not transactional: a crash between a platform charge and its durable write
cannot provide an exactly-once billing guarantee. Start a fresh run when changing input.
Development
python -m pip install -r requirements.txtpython -m unittest discover -s test -vpython -m src
For local input, create storage/key_value_stores/default/INPUT.json.
Only verification mode needs the developer's MV_API_KEY secret environment variable.
Do not put API keys in input examples, source files, logs, or result datasets.
Use published business contacts responsibly and comply with applicable rules and site terms.
Related LeadProof tools: Google Maps Scraper, Bulk Email Verifier, Google Maps Verified Leads, and LeadProof.