Website Email Scraper & Phone Finder ✅ $2/1k
Pricing
from $2.00 / 1,000 saved website contact results
Website Email Scraper & Phone Finder ✅ $2/1k
From $2.00 / 1,000 saved results. Website email scraper and domain email finder for lead generation: public business emails, phones, social profiles, source URLs, and contact-page diagnostics from domains.
Pricing
from $2.00 / 1,000 saved website contact results
Rating
0.0
(0)
Developer
Hundevmode Labs
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Website Email Scraper & Phone Finder: Scrape Emails, Phones & Socials from Domains
From $2.00 / 1,000 saved website contact results on paid Apify plans. Use this website email scraper and website email finder for lead generation: scan domains or website URLs and extract public business emails, phone numbers, social media profiles, source URLs, and crawl diagnostics.
This actor is built as a fast domain email scraper, email phone finder, and domain contact enrichment tool. Paste a list of websites, run a fast shallow crawl, and get one clean contact record per matching website. It checks the homepage or supplied URL, follows likely contact/about/legal/team pages, extracts public contacts, and saves only websites with emails by default.
Use it when you already have domains from Google Maps, CRMs, spreadsheets, directories, search results, company databases, or lead lists and need public contact details from each website.
AI agent skill
Use the dedicated Website Email Scraper Apify agent skill when you want AI agents to normalize domain lists, run this actor through Apify, control spend with maxTotalChargeUsd, and return public website email/contact rows for outreach, CRM, Sheets, n8n, BI, or enrichment workflows.
Install with skills.sh-compatible agents:
npx skills add hundevmode/apify-website-email-scraper-agent-skill \--skill website-email-scraper-apify
ClawHub skill slug: website-email-scraper-apify.
At a glance
| Need | Use this actor for |
|---|---|
| Domain email scraping | Find public emails from company websites |
| Website email finder | Turn domains and website URLs into structured email lead records |
| Website email scraper | Crawl homepage, contact, about, team, legal, and imprint pages for public emails |
| Lead generation | Enrich existing website lists with outreach-ready business contact details |
| Sales enrichment | Add emails, phones, and socials to existing domain lists |
| CRM cleanup | Convert raw domains into structured contact records |
| Agency prospecting | Scan niche website lists collected from Google Maps, directories, or search results |
| Bulk export | Download contacts as JSON, CSV, Excel, or through the Apify API |
Quick start
Start with a list of domains. The actor accepts bare domains and full URLs in the same input field.
{"domains": ["centralrestaurante.com","alchemist.dk","caitlinmcweeney.com"],"maxResults": 1000,"resultMode": "emailsOnly","maxPagesPerWebsite": 3,"concurrency": 100,"extractPhones": true,"extractSocials": true,"includePersonalData": true}
Pricing
The actor uses Apify pay-per-event pricing. The primary event is website-contact-saved, charged when a website contact result is saved to the dataset.
| Event | Free | Paid plans |
|---|---|---|
| Saved website contact result | $5.00 / 1,000 saved results | $2.00 / 1,000 saved results |
| Actor start | $0.00005 per start event | $0.00001 per start event |
Scanned websites that do not match the selected result mode are not charged as saved contact results. The actor respects Apify maxTotalChargeUsd and stops before saving more paid results than the run budget allows.
What it extracts
| Data group | Example fields |
|---|---|
| Website identity | input, url, domain, status |
| Emails | emails, emailDetails.email, emailDetails.type, emailDetails.sourceUrl, emailDetails.domainMatch |
| Phones | phones |
| Social links | facebooks, instagrams, linkedIns, twitters, youtubes, tiktoks, socialLinks |
| Crawl diagnostics | pagesFetched, fetchedUrls, httpStatusCodes, errors, durationMs |
| Contact counts | contactSignals.emails, contactSignals.phones, contactSignals.socialProfiles, contactSignals.pagesFetched |
This website email scraper saves normalized contact records that are easy to export to CSV, Excel, JSON, CRM tools, sales workflows, enrichment pipelines, and agent workflows.
Email types:
| Type | Meaning |
|---|---|
role | Generic company inbox such as info@, sales@, hello@, or contact@ |
personal | Person-like email found on a public website |
unknown | Public email that is not clearly role-based or person-like |
Input options
Domains or URLs
Use domains for domains and URLs. Both formats are accepted:
{"domains": ["example.com","https://example.com/contact"]}
The actor tries HTTPS, WWW, and HTTP variants when needed.
For bulk domain email scraping, paste one domain per row. For exact-page extraction, paste full URLs such as contact pages, about pages, or company profile pages.
Result mode
| Mode | Saved dataset items |
|---|---|
emailsOnly | Only websites where at least one public email was found. This is the default. |
contactsOnly | Websites with at least one email, phone, or social profile. |
allWebsites | All scanned websites, including websites where no contact was found. |
Crawl depth and speed
| Field | What it does |
|---|---|
maxPagesPerWebsite | Number of pages to fetch per website. Default is 3. |
concurrency | Number of websites scanned in parallel. Default is 100. |
requestTimeoutSecs | Per-page timeout. Default is 5 seconds. |
sameDomainOnly | Follow only same-domain contact/about links. Social links are still extracted. |
The actor prioritizes URLs containing contact, about, team, staff, impressum, imprint, legal, privacy, and similar contact-page hints.
Contact fields
| Field | What it does |
|---|---|
extractPhones | Extract phone numbers from visible text and tel: links. |
extractSocials | Extract public social media profile links. |
includePersonalData | Include person-like emails and personal LinkedIn URLs when found on public websites. |
How it works
- Normalizes every domain or URL.
- Tries HTTPS, WWW, and HTTP variants when needed.
- Downloads HTML with a Chrome-like HTTP client optimized for high concurrency.
- Extracts emails, phones,
mailto:,tel:, and social profile links. - Scores internal links and follows the best contact/about/legal/team pages.
- Applies
resultMode. - Saves one dataset item per matching website using the PPE result event.
- Writes
RUN_SUMMARYwith processed count, saved count, filters, and budget guard details.
The default path is HTTP-first and browserless for speed. It uses a Chrome-like HTTP client with high concurrency, so large domain lists can run faster than browser-first website contact scrapers.
Output example
{"input": "caitlinmcweeney.com","url": "https://caitlinmcweeney.com/","domain": "caitlinmcweeney.com","status": "found","emails": ["caitlin@caitlinmcweeney.com"],"emailDetails": [{"email": "caitlin@caitlinmcweeney.com","type": "unknown","sourceUrl": "https://caitlinmcweeney.com/contact","domainMatch": true}],"phones": [],"facebooks": ["https://www.facebook.com/caitlinmcweeneyphotography"],"instagrams": ["https://www.instagram.com/caitlinmcweeneyphotography/"],"contactSignals": {"emails": 1,"phones": 0,"socialProfiles": 2,"pagesFetched": 2},"pagesFetched": 2,"fetchedUrls": ["https://caitlinmcweeney.com/","https://caitlinmcweeney.com/contact"],"durationMs": 1530}
Run summary
Every run writes RUN_SUMMARY to the default key-value store.
Useful fields:
| Field | Meaning |
|---|---|
inputWebsites | Number of submitted websites |
processed | Number of websites scanned |
saved | Number of saved dataset items |
filteredOut | Websites scanned but not saved due to result mode |
failed | Websites that could not be fetched |
chargeLimitReached | Whether Apify PPE budget stopped the run |
exhaustionReason | target_reached, input_exhausted, or charge_limit_reached |
API usage
curl -X POST "https://api.apify.com/v2/acts/x_guru~website-email-phone-finder/runs?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"domains": ["example.com", "apify.com"],"resultMode": "emailsOnly","maxPagesPerWebsite": 3,"concurrency": 100,"extractPhones": true,"extractSocials": true}'
Tips
- Use
emailsOnlyfor paid email lead extraction and website email scraping. - Use
contactsOnlyif phones and social profiles are useful even when no email is found. - Increase
maxPagesPerWebsiteto 5-10 for sites where emails are hidden on team, staff, legal, or imprint pages. - Keep
requestTimeoutSecslow for large batches so slow websites do not block throughput. - Set an Apify maximum cost per run when processing very large domain lists.
Common searches this actor covers
- website email scraper
- website email finder
- domain email scraper
- domain contact finder
- email phone finder
- business email scraper
- company email finder
- website contact scraper