Website Emails Scraper avatar

Website Emails Scraper

Pricing

Pay per event

Go to Apify Store
Website Emails Scraper

Website Emails Scraper

Extract emails, phone numbers, social profiles, and contact/about page URLs from public websites. Fast HTTP crawler for lead enrichment.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

18 hours ago

Last modified

Categories

Share

Extract emails, phone numbers, social profile links, and contact/about pages from public websites.

Use this actor when you have a list of company websites and need a clean contact dataset for lead generation, recruiting, data enrichment, prospect research, or outreach preparation.


What does Website Emails Scraper do?

Website Emails Scraper crawls public website HTML and looks for contact details that companies publish on their pages.

It starts from each URL or domain you provide, fetches the homepage, follows likely contact/about/team/support links, and returns one structured row per website.

Typical extracted data includes:

  • 📧 Email addresses
  • ☎️ Phone numbers
  • 🔗 Social profile links
  • 📄 Contact/about/team page URLs
  • 🌐 Crawled URLs
  • 🧾 Page titles and evidence snippets
  • ✅ Crawl status and errors

Who is it for?

This scraper is built for teams that already have website lists and need contact enrichment.

Sales and revenue teams

  • 🧑‍💼 Enrich target account lists with public emails before outbound campaigns.
  • 🧪 Test new market segments by scanning small batches of company domains.
  • 🧾 Add evidence snippets so reps can verify where each contact was found.

Lead-generation and data teams

  • 🏢 Clean prospect datasets for clients that need website-published contacts.
  • 📊 Add email, phone, social link, and contact-page columns to existing business records.
  • 🔁 Schedule repeat enrichment runs for fresh domains from forms, directories, or CRMs.

Recruiting, sourcing, and operations teams

  • 🧲 Find company contact points and team/about pages for sourcing research.
  • 🛒 Collect supplier or manufacturer contacts from official websites.
  • 🧰 Connect Apify outputs to no-code workflows in Google Sheets, Make, Zapier, or CRMs.

Why use this actor?

Manual contact lookup is slow and inconsistent. Website Emails Scraper gives you a repeatable extraction workflow with predictable output fields.

You can run a small batch to qualify a few companies or a larger batch to enrich a complete prospect list.

The actor is HTTP-first, lightweight, and designed for public web pages. It does not require browser automation for typical sites, which keeps runs fast and cost-efficient.


What websites can it scan?

The actor scans public websites supplied by you.

Good inputs:

  • Company homepages
  • Agency websites
  • SaaS websites
  • Local business websites
  • Supplier/manufacturer websites
  • Public organization sites

Avoid inputs that require login, CAPTCHA completion, paid subscriptions, or private access.


What data can I extract from websites?

FieldDescription
startUrlURL submitted by the user after normalization
domainHostname of the scanned website
normalizedDomainDomain without leading www.
emailsEmail addresses found in HTML or text
phonesPhone-like numbers found in visible text
socialLinksLinkedIn, Facebook, Instagram, X/Twitter, YouTube, TikTok, Pinterest URLs
contactPageUrlsCrawled pages that look like contact/about/team pages
crawledUrlsPages fetched during the run
pageTitlesHTML page titles found while crawling
matchedSnippetsShort text snippets around matched contacts
pagesCrawledCount of pages successfully crawled
maxDepthReachedDeepest crawl depth reached
statussucceeded, partial, or failed
errorsHTTP or network errors captured per website
crawledAtISO timestamp of extraction

How much does it cost to scrape emails from websites?

This actor uses pay-per-event pricing.

You pay a small start fee per run and a per-result charge for each website contact result produced.

The default prefill scans one website with a low page limit, so your first run is inexpensive.

For best cost control:

  • Start with 1-5 websites
  • Keep maxPagesPerSite at 5 for testing
  • Increase depth only when you need more coverage
  • Export results and inspect match quality before scaling

How to scrape website emails

  1. Open the actor on Apify.
  2. Add one or more website URLs in Start URLs or domains.
  3. Keep Maximum pages per website at 5 for your first run.
  4. Use Maximum crawl depth 1 to follow contact/about links.
  5. Start the run.
  6. Download the dataset as CSV, JSON, Excel, or via API.

Input settings

Start URLs or domains

Provide public website URLs. Bare domains are accepted; the actor normalizes them to HTTPS.

Examples:

  • https://www.apify.com
  • example.com
  • https://company.example/contact

Maximum pages per website

Limits how many pages are fetched for each website. The actor prioritizes likely contact pages, so a small value is often enough.

Maximum crawl depth

  • 0 scans only the starting page.
  • 1 follows contact/about/team links found on the starting page.
  • 2 or 3 can discover more pages on complex sites.

Stay on the same domain

Enabled by default. This prevents the crawler from wandering to unrelated websites while still extracting social URLs from page content.

Request timeout

Controls how long to wait for each page before skipping it.


Output example

{
"startUrl": "https://www.apify.com/",
"domain": "www.apify.com",
"normalizedDomain": "apify.com",
"pagesCrawled": 5,
"emails": ["support@example.com"],
"phones": [],
"socialLinks": ["https://www.linkedin.com/company/apifytech"],
"contactPageUrls": ["https://www.apify.com/contact"],
"status": "succeeded"
}

Tips for better results

  • ✅ Use official company homepages instead of search-result URLs.
  • ✅ Keep crawl depth low unless you need maximum recall.
  • ✅ Scan contact/about/team pages directly when you already know them.
  • ✅ Review matchedSnippets to validate where a contact was found.
  • ✅ Treat phone matches as leads to verify, because phone formats vary by country.

Common use cases

Lead enrichment

Upload a list of domains from your CRM and enrich them with website-published email addresses.

Prospect research

Find general contact channels for companies in a niche before building an outreach campaign.

Supplier contact collection

Collect supplier emails and phone numbers from manufacturer or distributor websites.

Recruiting research

Find team/contact pages and social profiles for companies you want to approach.

Dataset cleanup

Validate which websites in an existing list expose contact details publicly.


Integrations

You can connect the dataset to many workflows:

  • Apify Dataset export to CSV or Excel
  • Google Sheets via Apify integrations
  • Make or Zapier automation
  • CRM imports for HubSpot, Pipedrive, or Salesforce
  • Data warehouses using the Apify API
  • Internal enrichment pipelines using scheduled runs

API usage

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/website-emails-scraper').call({
startUrls: [{ url: 'https://www.apify.com' }],
maxPagesPerSite: 5,
maxDepth: 1
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient
client = ApifyClient('MY-APIFY-TOKEN')
run = client.actor('automation-lab/website-emails-scraper').call(run_input={
'startUrls': [{'url': 'https://www.apify.com'}],
'maxPagesPerSite': 5,
'maxDepth': 1,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

cURL

curl -X POST 'https://api.apify.com/v2/acts/automation-lab~website-emails-scraper/runs?token=MY-APIFY-TOKEN' \
-H 'Content-Type: application/json' \
-d '{"startUrls":[{"url":"https://www.apify.com"}],"maxPagesPerSite":5,"maxDepth":1}'

MCP integration

Use this actor through Apify MCP when working in Claude Code or Claude Desktop.

MCP server URL:

https://mcp.apify.com/?tools=automation-lab/website-emails-scraper

Claude Code setup:

$claude mcp add apify-website-emails --transport http https://mcp.apify.com/?tools=automation-lab/website-emails-scraper

Claude Desktop JSON config:

{
"mcpServers": {
"apify-website-emails": {
"url": "https://mcp.apify.com/?tools=automation-lab/website-emails-scraper"
}
}
}

Example prompts:

  • "Scan these 20 company websites and return emails and LinkedIn profiles."
  • "Find contact pages for the domains in this list."
  • "Enrich this supplier list with public website emails."

Scheduling

You can schedule recurring scans for changing website lists.

Common patterns:

  • Weekly enrichment of new CRM domains
  • Monthly supplier contact refresh
  • Daily processing of new leads from a dataset

Data quality notes

The actor extracts contacts that are present in public HTML or visible text. Some websites protect emails behind forms, images, JavaScript widgets, or anti-spam obfuscation.

The actor normalizes common email obfuscations such as name [at] example [dot] com.

Always verify contacts before sending outreach.


Limitations

  • It does not solve CAPTCHAs.
  • It does not log in.
  • It does not submit contact forms.
  • It does not guarantee every website publishes an email.
  • It may capture false-positive phone numbers on pages with many numeric values.

FAQ and troubleshooting

Why did a website return no emails?

The website may not publish email addresses in its HTML. Try scanning its contact page directly or increasing maxPagesPerSite.

Why is the status partial?

At least one page was crawled, but one or more pages returned an HTTP/network error. Check the errors field for details.

Why are there no phone numbers?

Many companies use forms or social links instead of public phone numbers. Phone extraction also filters short/date-like values to reduce noise.

Can this actor submit contact forms?

No. It extracts public details from website pages and does not submit forms, log in, or interact with private areas.


Legality and ethical use

This actor extracts data from public websites. Use it responsibly, respect website terms, and comply with applicable privacy, anti-spam, and data protection laws.

Do not use scraped contact details for unlawful spam or harassment.


Explore other Automation Lab actors for lead generation and enrichment:


Changelog

0.1

Initial release: HTTP website crawler with email, phone, social link, contact page, snippet, and crawl status extraction.