Business Email Enricher - Emails, Phones & Socials
Pricing
Pay per event
Business Email Enricher - Emails, Phones & Socials
Turn a plain list of business website URLs into enriched B2B leads. Visits each site's homepage and contact/about pages to extract email addresses (incl. Cloudflare-obfuscated), phone numbers, and social media profiles — the perfect second step after a Google Maps or directory scraper.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Halven Labs
Maintained by CommunityActor stats
0
Bookmarked
16
Total users
16
Monthly active users
a month ago
Last modified
Categories
Share
Business Email Enricher — Emails, Phones & Socials from Website URLs
Turn a plain list of business website URLs into enriched B2B leads. For each site, this actor visits the homepage and its contact/about pages and extracts email addresses, phone numbers, and social media profiles (Facebook, X/Twitter, LinkedIn, Instagram, YouTube, TikTok, Pinterest, Telegram, WhatsApp, Discord, Snapchat, Threads, Reddit).
The perfect second step after a Google Maps / directory scraper: feed in the website column, get back contactable leads. Export to CSV, Excel, JSON, or Google Sheets.
🎯 Why use this actor
- Get leads, not just a list of businesses — turn plain company websites into actual contact points (email, phone, socials) ready for outreach.
- Skip hours of manual "find the contact page" work — the actor visits contact/about pages for you, across hundreds of sites in one run.
- Drop straight into your existing pipeline — designed to plug directly into Google Maps / directory scraper output, no reformatting needed.
✨ Features
- Email extraction that actually works — finds
mailto:links, plain-text emails, and even Cloudflare-obfuscated addresses. Aggressively filters out junk (image filenames, placeholder/CDN domains). - Contact & about page crawling — most emails aren't on the homepage, so the actor automatically follows likely contact/about/impressum pages.
- Social profiles — first profile URL per network, found in links and in JS/JSON blobs, ignoring share/embed noise.
- Phone numbers — high-precision extraction from
tel:links. - Flexible input — accepts bare domains, full URLs, or objects with a
website/urlfield (drop-in for Google Maps scraper output). - Robust — unreachable sites are recorded (not charged) and never crash the run.
- Bounded —
maxItemsandmaxPagesPerSitecap time and cost exactly.
🚀 Quick start
- Paste your business website URLs into Business website URLs.
- (Optional) Adjust Max pages per site or enable Only output sites where an email was found.
- Click Start. The default input runs successfully with zero edits.
Example input
{"websiteUrls": ["https://acme-plumbing.com","https://www.example-dentist.com"],"maxItems": 100,"maxPagesPerSite": 3,"onlyWithEmail": false,"proxyConfiguration": { "useApifyProxy": true }}
| Field | Type | Default | Description |
|---|---|---|---|
websiteUrls | array | (required) | Website URLs (bare domain, full URL, or objects with a website/url field). |
maxItems | integer | 100 | Max websites to enrich. 0 = no limit. |
maxPagesPerSite | integer | 3 | Homepage + up to (this − 1) contact/about pages. |
onlyWithEmail | boolean | false | Skip (and don't charge for) sites with no email found. |
proxyConfiguration | object | Apify Proxy (auto) | Proxy settings. |
📦 Output
One flat row per website:
{"inputUrl": "https://www.basecamp.com","finalUrl": "https://basecamp.com/","domain": "basecamp.com","companyName": "Basecamp","primaryEmail": "jason@basecamp.com","emails": "jason@basecamp.com, support@basecamp.com","emailCount": 2,"emailFound": true,"phones": "+1 312-555-0100","facebook": "https://www.facebook.com/basecamp","twitter": "https://twitter.com/basecamp","linkedin": "https://www.linkedin.com/company/basecamp","instagram": null,"youtube": null,"tiktok": null,"pinterest": null,"telegram": null,"whatsapp": null,"discord": null,"snapchat": null,"threads": null,"reddit": null,"pagesCrawled": 3,"status": "ok"}
status is ok for reachable sites and unreachable for sites that failed to load (those rows are not charged).
Output fields
| Field | Type | Description |
|---|---|---|
inputUrl | string | The URL/domain you supplied. |
finalUrl | string | null | URL after redirects, when reachable. |
domain | string | Bare domain. |
companyName | string | null | From og:site_name or page title. |
primaryEmail | string | null | Best-guess primary contact email. |
emails | string | All found emails, comma-separated. |
emailCount | number | Count of emails found. |
emailFound | boolean | Whether any email was found. |
phones | string | Phone number(s) found, comma-separated. |
facebook / twitter / linkedin / instagram / youtube / tiktok / pinterest / telegram / whatsapp / discord / snapchat / threads / reddit | string | null | First profile URL per network. |
pagesCrawled | number | Pages actually visited for this site. |
status | string | ok or unreachable. |
💡 Use cases
- Lead generation — enrich scraped business listings with direct contact details.
- Cold outreach — build targeted email/social lists for sales and partnerships.
- CRM enrichment — fill missing contact fields for existing accounts.
- Recruiting & partnerships — find the right inbox and social profiles fast.
🔗 Works great with
- Google Maps scrapers — pipe the
websitefield straight in. - Directory / Yellow Pages scrapers — enrich any list of company sites.
💳 Pricing (pay-per-event)
| Event | Price |
|---|---|
| Actor start | $0.005 per run |
| Website enriched | $0.004 per reachable site |
Enriching 1,000 websites costs about $4.01. Unreachable sites are recorded free of charge. Set maxItems to cap spend.
❓ FAQ
Why didn't it find an email for some sites? Many businesses hide emails behind contact forms or images. This actor extracts real, publicly listed addresses (including Cloudflare-protected ones) but can't read data that isn't published as text.
Can I feed in Google Maps scraper output directly?
Yes — pass the objects (it reads the website/url field) or just the website strings.
How do I get more emails per site?
Increase maxPagesPerSite so the actor crawls more contact/about pages.
⚖️ Legal
This actor collects only publicly available business contact information from public web pages. You are responsible for using the data in compliance with applicable laws (including GDPR, CAN-SPAM, and local anti-spam rules) and each website's terms. Do not use extracted emails for unsolicited bulk messaging where prohibited.