Website Email Finder & Contact Details Scraper
Pricing
from $1.60 / 1,000 website with contacts
Website Email Finder & Contact Details Scraper
Website email finder: get emails, phone numbers and LinkedIn, X, Facebook, Instagram and YouTube links from any list of websites or a Google Maps dataset. Reads Contact, Imprint and About pages and decodes Cloudflare-protected emails. $2 per 1,000 sites with contacts; none found, no charge.
Pricing
from $1.60 / 1,000 website with contacts
Rating
0.0
(0)
Developer
Tapaswai Ashok Choudhary
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
14 hours ago
Last modified
Categories
Share
Turn a list of websites into a contact list: a website email finder that also returns phones and social profiles. For each website you get e-mail addresses, phone numbers, social profiles (LinkedIn, X/Twitter, Facebook, Instagram, YouTube, TikTok, GitHub), the company name, description and postal address, and the page where the contacts were found — as a clean, spreadsheet-ready table. Export to CSV or Excel, push to your CRM or Google Sheets, or call it as an API.
Built for sales and business-development teams building lead lists, marketers and agencies doing outreach, recruiters, and anyone enriching a list of company domains.
Why this scraper
- Finds contacts where they actually are. It reads the page you give, then picks the pages most likely to list contacts — Contact, Imprint / Impressum, Legal notice, About, Team — instead of crawling blindly. Five pages per site finds most contacts.
- Reads what simple scrapers miss. E-mails from links and text, e-mails hidden by Cloudflare's email protection, and the company's own structured data (the name, e-mail, phone and address a site publishes for search engines).
- Clean results, not noise. Image file names, placeholder addresses (
name@example.com), tracking ids and share buttons are filtered out. Phone numbers come in international format, duplicates removed, and the website's own e-mail addresses are listed first. - Pay only for results. Websites where nothing is found are free. Dead or unreachable domains are skipped in a second instead of wasting run time.
- Fast and cheap to run. A small native program — no browser — that runs in 256 MB and checks many websites in parallel. Platform usage for a typical run is a fraction of a cent.
- Handles rate limits for you. When a site says “slow down” (HTTP 429) the Actor waits as long as asked and adapts its speed; timeouts and dropped connections are retried automatically.
- Never loses or double-bills work. Each website is saved as soon as it's done; if the platform moves your run to another server it resumes without charging twice, and it stops cleanly at your maximum charge.
How to use it
- Paste websites into Websites — domains (
apify.com) or any page URL. - Optionally change Pages per website (default 5), tick Only the website's own e-mail addresses, or report only websites with an e-mail or a phone number.
- Press Start. Download the results from the Output tab, or connect an integration.
Example input
{"startUrls": ["apify.com", "zalando.de", "mailchimp.com"],"maxPagesPerSite": 5,"sameDomainEmailsOnly": false}
What you get
One row per website:
| Field | Description |
|---|---|
domain / url | The website and the page it was read from |
companyName / description | Company name and the site's own description |
primaryEmail / emails | Best e-mail (the site's own domain, or a free-mail inbox if the site has none; never another company's address) and every e-mail found |
primaryPhone / phones | First phone number and every number found, in international format where the site gives it |
linkedin / twitter / facebook / instagram / youtube / tiktok / github / vimeo | Social profile links |
address | Postal address, when the site publishes one |
contactPageUrl | The contact / imprint / about page where details were found |
pagesScraped / scrapedAt | Pages checked and when |
source | When reading another scraper's results: the original row's name, id, address, phone and link |
Example:
{"domain": "apify.com","url": "https://apify.com/","companyName": "Apify","primaryEmail": "support@apify.com","emails": ["support@apify.com", "hello@apify.com"],"linkedin": "https://www.linkedin.com/company/apify","twitter": "https://x.com/apify","github": "https://github.com/apify","tiktok": "https://www.tiktok.com/@apifytech","address": "Na Příkopě 959/27, Prague, 11000, CZ","contactPageUrl": "https://apify.com/contact","pagesScraped": 5}
Add contacts to another scraper's results
Already scraping businesses — from Google Maps, a directory, or any list that includes websites? Let this Actor enrich those results automatically:
- Open the other Actor (for example a Google Maps scraper) and go to its Integrations tab.
- Choose Add integration → Actor, pick Website Contact Details Scraper, and trigger it when the run succeeds.
- Done. After every run, each website in its results is checked for e-mails, phones and social profiles.
You can also run it by hand on any existing dataset: pick it under …or websites from another scraper's results.
The website column is found automatically (website, url, domain and similar; map, social-media and job-board links are skipped). If yours is called something else, set Website column. Every result carries a source object with the original row's name, id, address and phone, so you can join the contacts back to your list. Rows that share a website are checked once.
Only new websites
Working through a growing lead list? Turn on Only new websites and re-run with the whole list — websites an earlier run already delivered are skipped (and not charged).
Use it as an instant API
The Actor also runs in Standby mode — an always-ready endpoint that returns contacts straight in the response, ideal for enriching leads from your own app, CRM workflow or AI agent. Find the URL on the Standby tab:
curl "https://<standby-url>/?url=apify.com,zalando.de" \-H "Authorization: Bearer <YOUR_APIFY_TOKEN>"
Any input field works as a query parameter (url is shorthand; separate several websites with commas), or POST the full input as JSON. The response is {"success": true, "count": 2, "items": [ … ]}.
Pricing
Pay per result: about $2 per 1,000 websites with contacts found (lower on higher Apify plans) plus a tiny start fee. Websites with nothing found, and unreachable ones, cost nothing. See the Pricing tab for exact rates, and set a maximum charge per run to cap spend.
On Apify's free plan each run returns up to 100 websites — plenty to try everything. Any paid Apify plan removes the limit.
FAQ
Why is a website missing from the results? Nothing was found on it, or it couldn't be loaded — those are free and listed in the run's summary. Turn on Include websites with no contacts to get a row for every input.
Some sites return fewer details than I expected. A few websites block automated visitors or load contacts only with JavaScript. Try raising Pages per website, or turn on a proxy.
Is it legal? The Actor collects contact details that websites publish publicly. You're responsible for how you use them — follow the privacy and marketing laws that apply to you (e.g. GDPR, CAN-SPAM) before contacting anyone.
Support
Found a problem or need a field that isn't there yet? Open an issue on the Issues tab with the website and what you expected — requests genuinely decide what gets built next.