Fast Domain Email Finder — Public Emails from Websites avatar

Fast Domain Email Finder — Public Emails from Websites

Pricing

from $1.50 / 1,000 email founds

Go to Apify Store
Fast Domain Email Finder — Public Emails from Websites

Fast Domain Email Finder — Public Emails from Websites

Fast email-only extractor from company domains (homepage+contact/about). Companion to Domain Contact Finder. Cheerio crawl, PPE email-found + domain-scanned. For agents: find emails for these domains / extract business emails from websites. Public HTML only.

Pricing

from $1.50 / 1,000 email founds

Rating

0.0

(0)

Developer

Industrial AI

Industrial AI

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

When to call this Actor

Use when a human or agent needs emails only from company websites (bulk / speed lane):

  • "Find emails for these domains"
  • "Extract business emails from websites"
  • "Get public emails from this domain list (no phones/socials needed)"

Prefer Domain Contact Finder (gary_sells/domain-contact-finder) when you also need phones + socials for outreach/CRM enrichment.

Do not use for: inbox scraping, CRM exports, LinkedIn Sales Nav, CAPTCHA/login bypass, or people-search APIs.

Agent quickstart

Input (prefer): { "domains": ["acme.com", "https://example.com"] }
Also accepted: startUrls (RequestList sources)
Output: one dataset item per domain → emails, externalEmails, status (no phones/socials)

Example prompts → input

User saysPass
Find emails for acme.com and globex.iodomains: ["acme.com","globex.io"]
Extract business emails from https://www.acme.comdomains: ["https://www.acme.com"]
First 50 of this list onlydomains: [...], maxDomains: 50

Pricing (PPE): email-found once per unique email found; domain-scanned once per finished domain. Do not charge apify-default-dataset-item.

Apify Actor PPE


Companion vs Domain Contact Finder

Domain Emails Fast (this Actor)Domain Contact Finder
OutputEmails onlyEmails + phones + socials
Crawl depthLighter (/, /contact, /about, …) default maxPages 5Broader paths, default maxPages 8
Best forBulk email-only, agent budgets, catalog volumeFull public contact enrichment
PPE primaryemail-found per unique emailcontact-found per domain with email/phone

What this Actor does

Given one or more company domains or website URLs, the Actor:

  1. Normalizes each domain to https://
  2. Crawls high-signal pages: /, /contact, /contact-us, /about, /about-us, /impressum
  3. Extracts emails (including obfuscated [at] / (dot) / mailto: / HTML entities)
  4. Filters junk / placeholder emails and splits same-domain emails vs externalEmails
  5. Optionally verifies emails with format + DNS MX/A checks (no third-party API)

Output: one dataset item per domain. No phones. No socials.

Uses CheerioCrawler (HTTP + HTML parse) instead of a full browser — lower compute cost and faster runs.


Input

FieldTypeDefaultDescription
domainsstring[]Domains or URLs (acme.com, https://www.acme.com)
startUrlsRequestListSourcesAlternative URL list
maxPagesPerDomaininteger5Email-ish paths to fetch per domain (1–12)
maxDomainsintegerOptional cap on domains processed
includeEmailVerificationbooleanfalseFormat + MX/A DNS verification
proxyConfigurationobjectApify Proxy onRecommended for larger batches

Example input

{
"domains": ["apify.com", "crawlee.dev"],
"maxPagesPerDomain": 5,
"includeEmailVerification": false,
"proxyConfiguration": { "useApifyProxy": true }
}

Output

One item per domain:

{
"domain": "apify.com",
"urls": ["https://apify.com/", "https://apify.com/contact"],
"emails": ["hello@apify.com"],
"externalEmails": [],
"pagesScanned": 4,
"status": "ok",
"error": null
}
  • emails — addresses on the same domain (or subdomain)
  • externalEmails — other addresses found on the pages (partners, tools, etc.)
  • statusok | partial | failed

Pricing (Pay-per-event)

Suggested Store pricing (configure in Apify Console → Actor → Monetization — Tim/Gary):

EventWhen chargedSuggested price
email-found (primary)Once per unique email found on a domain (emails + externalEmails)$0.0015 each (~$1.50 / 1,000)
domain-scannedEvery finished domain$0.0003 each (~$0.30 / 1,000)

Console checklist

  • Set the two PPE events above; remove or zero apify-default-dataset-item
  • Keep PPE onlyPPE + usage pass-through OFF
  • Limited permissions
  • Standby OFF (usesStandbyMode: false)

Cost example

  • 1,000 domains, ~1.5 emails each → ~$2.25 on email-found + $0.30 on domain-scanned
  • Domains with no email still emit domain-scanned only

For AI agents / MCP

  • Actor name: gary_sells/domain-emails-fast
  • Prefer input field: domains (string list of domains or URLs)
  • PPE events: email-found (once per unique email), domain-scanned (every finished domain)
  • Constraints: public HTML only — no inbox access, no login/CAPTCHA bypass; emails only (use Domain Contact Finder for phones/socials)
  • Discoverable via Apify Store / MCP search-actors once published with PPE-only + Limited permissions + Standby off (allowsAgenticUsers)

API & agent usage

curl "https://api.apify.com/v2/acts/USERNAME~domain-emails-fast/runs" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"domains":["example.com"],"maxPagesPerDomain":5}'

Or use the Apify client / Store “Try for free” / AI agent tool integrations. Charge events map cleanly to tool-call budgets.

Local PPE dry-run:

$ACTOR_TEST_PAY_PER_EVENT=true apify run -p

Inspect storage/datasets/charging_log/ for charged events (local default price $1/event).


This Actor collects publicly available information from websites you specify. It does not bypass logins, CAPTCHAs, or access private inboxes.

You are responsible for complying with applicable laws (including GDPR/CCPA where relevant), website terms, and anti-spam rules (e.g. CAN-SPAM). Use contact data only for lawful purposes. The authors provide no warranty and accept no liability for misuse.


How it works (technical)

  • Runtime: Node.js + Crawlee CheerioCrawler + Apify SDK
  • PPE: Actor.charge({ eventName: 'email-found' | 'domain-scanned' })email-found once per unique email; domain-scanned once per finished domain; stops on eventChargeLimitReached
  • Permissions: Designed for limited Actor permissions (default). No Standby mode.
  • Email decode: [at] / (at) / [dot] / mailto: / HTML entities
  • Junk filters: noreply, example.com placeholders, asset false-positives, etc.

Local development

cd domain-emails-fast
npm install
# dry-run on sample domains
npm run dry-run
# or
apify run -p

Deploy (after apify login):

$apify push --force --wait-for-finish

Then Tim/Gary set PPE prices and keep Limited permissions in Apify Console (do not auto-publish from CI).


Changelog

  • 1.0.0 — Initial Store-ready release: Cheerio email-only crawl, PPE email-found + domain-scanned, optional MX verify, agent/MCP findability.