Website Email Scraper - Emails & Social Profiles avatar

Website Email Scraper - Emails & Social Profiles

Pricing

from $0.45 / 1,000 website results

Go to Apify Store
Website Email Scraper - Emails & Social Profiles

Website Email Scraper - Emails & Social Profiles

Bulk website email extractor for up to 50,000 URLs or domains. Crawl up to 10 pages per site to find public emails and official social profiles, filter noise, deduplicate domains, and export clean lead data via JSON, CSV, Excel, or API.

Pricing

from $0.45 / 1,000 website results

Rating

0.0

(0)

Developer

DataScraperES

DataScraperES

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

4 days ago

Last modified

Share

Website Email Scraper - Emails & Social Profiles extracts public email addresses and official social profiles from up to 50,000 websites. Submit bare domains, full URLs, or both and receive one auditable Dataset item per unique website, including contact details, source pages, and crawl status.

What this Actor does

The Actor visits public HTML pages with direct HTTP requests, follows normal redirects, and discovers internal links until the configured page limit is reached. It extracts public emails plus Facebook, Instagram, LinkedIn, X, YouTube, TikTok, Pinterest, WhatsApp, and Telegram profiles.

Equivalent inputs are normalized and crawled once. Every unique input receives an outcome: contacts found, no contacts found, crawl failed, or invalid URL. The Actor does not render JavaScript, submit forms, log in, or access private social-network data.

Use cases

  • Enrich company, prospect, supplier, or partner domain lists with public contact channels.
  • Add website emails and official social profiles to CRM or lead-research workflows.
  • Audit which public contact details are available across a portfolio of websites.
  • Prepare structured domain-enrichment exports for spreadsheets, databases, and automation tools.

How to use

  1. Open the Actor in Apify Console.
  2. Enter one domain or URL per line under URLs or domains.
  3. Adjust the page limit, email filters, or proxy settings when needed.
  4. Click Start and open the Dataset when the run finishes.

For a first run, use one domain and two pages.

Input

urls is required and accepts between 1 and 50,000 strings. Bare domains are normalized to HTTP URLs and normal redirects are followed. Equivalent values such as example.com, www.example.com, and a path on the same host are processed once; the first occurrence determines the starting URL.

FieldDefaultDescription
urlsRequiredDomains or URLs, one per line.
maxPagesPerWebsite10Maximum HTML pages fetched per unique website, from 1 to 10, including the starting page.
includePrivacyEmailstrueKeep published privacy, DPO, GDPR, and data-protection addresses.
includeEmails[]Exact emails that may bypass the built-in balanced filter.
includeDomains[]Exact email domains that may bypass the built-in balanced filter.
maxEmailsPerWebsite10Maximum accepted emails returned per website, from 1 to 50.
excludeEmails[]Exact emails to remove.
excludeDomains[]Exact email domains to remove.
excludeEmailPatterns[]Case-insensitive shell wildcards such as *@example.org.
proxyConfigurationDirectOptional Apify proxy configuration.

The Actor always applies its built-in balanced noise filter. User exclusions always win. Privacy removal is applied next, and explicit inclusions can restore addresses rejected only by the balanced filter.

This is the exact input used for the real output example below:

{
"urls": [
"python.org"
],
"maxPagesPerWebsite": 2
}

Output

The default Dataset stores one item per unique website. Results can be inspected as a table or exported in JSON, JSONL, CSV, Excel, XML, and other formats supported by Apify. A cumulative run summary is available separately through OUTPUT.summary.

This is the complete Dataset item from a real successful run:

{
"input": "python.org",
"startUrl": "http://python.org/",
"finalUrl": "https://www.python.org/",
"domain": "python.org",
"emails": [],
"emailDetails": [],
"socialProfiles": [
{
"platform": "linkedin",
"url": "https://linkedin.com/company/python-software-foundation"
},
{
"platform": "twitter",
"url": "https://x.com/ThePSF"
}
],
"facebook": [],
"instagram": [],
"linkedin": [
"https://linkedin.com/company/python-software-foundation"
],
"twitter": [
"https://x.com/ThePSF"
],
"youtube": [],
"tiktok": [],
"pinterest": [],
"whatsapp": [],
"telegram": [],
"crawlStatus": "enriched",
"statusCode": 200,
"pagesFetched": 2,
"crawlDurationMs": 349,
"error": null
}

emailDetails records the first source page, whether the email domain matches the website, and confidence. finalUrl is the redirect destination of the starting page. Possible crawlStatus values are enriched, noContacts, failed, and invalidUrl. Failed and invalid inputs remain visible so every unique submitted value has an auditable outcome.

Pricing

Each successfully processed unique website triggers one website-result event.

TierPrice per websiteEquivalent per 1,000 websites
Free$0.0006$0.60
Bronze$0.00054$0.54
Silver$0.00048$0.48
Gold$0.00045$0.45
Platinum$0.00045$0.45
Diamond$0.00045$0.45

Each enriched or noContacts Dataset item triggers exactly one charge. Duplicate inputs are normalized and processed once, so they are not charged more than once. Failed crawls and invalid inputs remain visible in the Dataset but are not charged.

This is an all-in pay-per-event price. There is no separate Actor-start charge or automatic default-Dataset-item charge, and platform usage is included in the event price.

ActorBest for
Google Maps Business Scraper | $1 per 1,000Discovering local businesses and website URLs before extracting their public emails and social profiles.
Website Technology Lookup – CMS, Hosting & Tech Stack DataAdding published CMS, hosting, and technology-stack context to the same domain list.
Similarweb Website Traffic & SEO Analytics ScraperEnriching domains with estimated traffic, rankings, geography, and competitor signals.
Favicon ExtractorAdding website icons and image metadata to directories, CRMs, or domain catalogs.

Limits and data quality

  • A run accepts at most 50,000 submitted values and fetches at most 10 HTML pages per unique website, including the starting page.
  • Only public data present in the downloaded HTML can be extracted. JavaScript-only contacts are not visible.
  • Each response body is bounded and every website has a total crawl deadline, so very large or slow pages can produce partial coverage.
  • Internal pages are visited in discovery order until the page limit or deadline is reached.
  • A social profile is accepted when it appears on the starting page or repeats across at least two crawled pages. Sharing links, posts, videos, login pages, and widgets are excluded.
  • Temporary network failures and selected retryable HTTP responses are retried. Persistent failures remain visible as failed rows.
  • Increasing page count can improve coverage but also increases run time and the number of website requests.

Frequently asked questions

Does the Actor render JavaScript?

No. It uses direct HTTP requests and extracts data from returned HTML. Contacts rendered only after browser-side JavaScript executes may not be available.

Why were duplicate URLs processed once?

The Actor deduplicates by normalized website host. Different paths and www variants of the same website intentionally produce one crawl and one Dataset item.

The link may be a share action, post, video, reserved platform page, or a profile seen on only one non-starting page. The confidence rule is designed to favor site-level official profiles.

Can I exclude whole email domains or wildcard patterns?

Yes. Use excludeDomains for exact domains and excludeEmailPatterns for case-insensitive shell wildcards. Exact and wildcard exclusions take priority over all inclusions.

Responsible use

Use this Actor only for lawful processing of publicly available website data. You are responsible for complying with applicable privacy, marketing, anti-spam, database, and website terms, and for establishing a valid basis for storing or contacting any person represented in the output. Protect exported Datasets and honor applicable deletion or opt-out requests.

Support

If a run does not behave as expected, open an issue in the Actor's Issues tab. Include the run ID, a sanitized reproducible input, the expected result, and the observed result. Do not post API tokens, credentials, or confidential information.