Contact Details Scraper avatar

Contact Details Scraper

Pricing

from $1.50 / 1,000 results

Go to Apify Store
Contact Details Scraper

Contact Details Scraper

Email extractor and lead scraper to extract and download emails, phone numbers, Facebook, Twitter, LinkedIn, Instagram, Threads, Snapchat, and Telegram profiles from any website. Extract contact information at scale from lists of URLs and download the data as Excel, CSV, JSON, HTML, and XML.

Pricing

from $1.50 / 1,000 results

Rating

5.0

(2)

Developer

Nogards

Nogards

Maintained by Community

Actor stats

1

Bookmarked

9

Total users

2

Monthly active users

16 days ago

Last modified

Share

What does Website Contact Scraper do?

Website Contact Scraper is a business email, phone number, and social profile finder — an alternative to manually opening every "Contact" or "About" page on a list of websites. Give it a list of domains, get back one clean record per domain with every email, phone number, WhatsApp link, and social profile it found on that site.

It does not verify emails via SMTP and does not guess or generate contact data — it only extracts what's already published on the pages it crawls.

No headless browser. No Playwright. No slow JavaScript rendering. Just raw HTTP requests via Crawlee's CheerioCrawler.


Why use Website Contact Scraper?

  • Lead generation at scale — turn a list of company domains into a list of contacts, ready for outreach
  • Runs on the Apify platform — schedule recurring runs, trigger it via API or integrations (Zapier, Make, n8n), and monitor runs from the Apify Console
  • Optional proxy support — route requests through Apify Proxy if a site blocks datacenter IPs
  • No code required — configure everything from the Input tab in Apify Console; a JSON API is also available for developers

Features

  • Emails — extracted from page text and mailto: links, deduplicated, spam-filtered
  • Phone numbers — from tel: links and visible text, no SVG/CSS false positives
  • WhatsApp — detects wa.me and api.whatsapp.com links, extracts the number
  • Social profiles — LinkedIn, Facebook, Instagram, Twitter/X, YouTube, TikTok (share buttons excluded)
  • Smart crawl order — contact and about pages are visited first, so you get results faster
  • Early stop — stops crawling a domain the moment contacts are found (saves credits)
  • One result per domain — clean, structured output, no duplicates
  • Proxy support — optionally route requests through Apify Proxy to avoid blocks

How to scrape contact details from a website

  1. Open the Actor and paste one or more website URLs into Start URLs (any page on the domain works — the actor finds the contact/about pages itself)
  2. Leave Max pages per domain and Max crawl depth at their defaults unless you have a specific reason to crawl deeper
  3. Keep Early stop on (default) so the actor stops as soon as it finds contacts on a domain — this keeps runs fast and cheap
  4. Click Start and wait for the run to finish
  5. Open the Dataset tab to view, filter, or export the results as JSON, CSV, or Excel

See the Input tab for the full list of configuration options.


How much will it cost?

This Actor uses Apify's pay-per-event pricing: you pay a small fee when a run starts, plus a fee for each domain result written to the dataset. There's no charge for pages that fail to load or domains that time out beyond what's already been charged for the run start.

Check the Pricing tab on this Actor's page for the current per-result price. The Apify free plan includes monthly platform credits, so you can test the actor on a small list at no cost.


Input

See the Input tab for the full list of fields, defaults, and validation ranges. Quick summary:

FieldTypeDefaultDescription
startUrlsarrayList of website URLs to scrape (required)
maxPagesPerDomaininteger10Max pages crawled per domain (1–50)
maxDepthinteger2How deep to follow internal links (1–5)
earlyStopbooleantrueStop as soon as contacts are found
maxConcurrencyinteger10Max pages fetched in parallel (1–50)
proxyConfigurationobjectApify proxy settings (optional)

Example input

{
"startUrls": [
{ "url": "https://example-agency.com" },
{ "url": "https://another-company.io" }
],
"maxPagesPerDomain": 10,
"maxDepth": 2,
"earlyStop": true
}

Output

One flat record per domain. You can download the dataset in various formats such as JSON, HTML, CSV, or Excel, or filter it directly in the Apify dataset viewer.

{
"domain": "example-agency.com",
"startUrl": "https://example-agency.com",
"finalUrl": "https://www.example-agency.com",
"emails": "info@example-agency.com, sales@example-agency.com",
"phones": "+39 02 1234567",
"whatsapps": "+393331234567",
"linkedin_url": "https://linkedin.com/company/example-agency",
"facebook_url": "",
"instagram_url": "https://instagram.com/exampleagency",
"twitter_url": "",
"youtube_url": "",
"tiktok_url": "",
"pagesVisited": 3,
"stoppedReason": "early-stop",
"updatedAt": "2026-05-25T10:30:00.000Z"
}

Fields

FieldDescription
domainCleaned domain (no www)
startUrlThe URL you provided as input
finalUrlThe last URL loaded (after redirects)
emailsComma-separated list of found emails
phonesComma-separated list of found phone numbers
whatsappsComma-separated list of WhatsApp numbers
linkedin_urlFirst LinkedIn company/profile URL found
facebook_urlFirst Facebook page URL found
instagram_urlFirst Instagram profile URL found
twitter_urlFirst Twitter/X profile URL found
youtube_urlFirst YouTube channel URL found
tiktok_urlFirst TikTok profile URL found
pagesVisitedNumber of pages crawled for this domain
stoppedReasonWhy crawling stopped (see below)
updatedAtISO timestamp of when the record was saved

stoppedReason values

ValueMeaning
early-stopContacts found, crawl stopped early (saves credits)
max-pagesReached the maxPagesPerDomain limit
no-more-linksRan out of internal links to follow
errorSite was unreachable

Use cases

  • Lead generation — build prospect lists with published contact info at scale
  • Sales outreach — enrich a list of company domains before cold emailing
  • Marketing agencies — research competitor contacts and partner directories
  • Recruitment — find HR and hiring manager contacts on company websites
  • Data enrichment — add emails and socials to existing domain lists

Tips

  • If a site blocks requests, try enabling proxyConfiguration with Apify Proxy
  • Set earlyStop: true (default) to minimize credit usage on large lists
  • Set maxDepth: 1 if you only want to check the homepage and direct links
  • URLs with or without https:// are both accepted — the actor normalises them automatically

Technical notes

  • Built with Crawlee CheerioCrawler on apify/actor-node:22 — pure HTTP, no browser overhead
  • Priority crawl order: contact → about → legal → team → homepage → other
  • Phone extraction runs only on visible text nodes — no false positives from SVG or CSS
  • Social share buttons (/sharer, /intent/tweet, etc.) are excluded from social results

FAQ

Does this actor verify that emails are real? No. It extracts email addresses that are already published on the crawled pages (in text or mailto: links) and filters out obvious spam/placeholder addresses. It does not perform SMTP or deliverability verification.

Why did a domain return no contacts? The site may not publish any contact info on the pages within maxDepth / maxPagesPerDomain, may block non-browser HTTP requests, or may require JavaScript to render its content — this actor doesn't render JavaScript. Check stoppedReason in the output for that record, and try increasing maxPagesPerDomain or maxDepth, or enabling proxyConfiguration.

Can I run this on a large list of domains? Yes — pass multiple entries in startUrls. Keep earlyStop enabled to keep large runs fast and cost-efficient.

Found a bug or have a feature request? Use the Issues tab on this Actor's page. For programmatic access, see the API tab.

Disclaimer

Our Actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our Actors, when used for ethical purposes by Apify users, are safe. However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.