Website Contact Scraper – Emails, Phones & Socials avatar

Website Contact Scraper – Emails, Phones & Socials

Pricing

$2.00 / 1,000 website with contacts founds

Go to Apify Store
Website Contact Scraper – Emails, Phones & Socials

Website Contact Scraper – Emails, Phones & Socials

Bulk-enrich company websites or domains: emails (MX-checked, same-domain first), phone numbers, LinkedIn/Facebook/Instagram/X/YouTube/TikTok and 7 more socials, contact page URLs, company name and address. robots.txt respected. $2 per 1,000 websites, only when contacts are found.

Pricing

$2.00 / 1,000 website with contacts founds

Rating

0.0

(0)

Developer

Ben Barazandeh

Ben Barazandeh

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Paste a list of company websites or domains and get one clean row per company back: emails (same-domain first, MX-checked), phone numbers, LinkedIn, Facebook, Instagram, X/Twitter, YouTube, TikTok, Pinterest, GitHub, Threads, Telegram, WhatsApp, Discord and Yelp links, contact-page URLs, plus the company name, address, page title, description and language.

Made for enriching lead lists, such as businesses from Local Business Leads, a CRM export or a spreadsheet of domains. It reads only public pages on each company's own website, follows robots.txt and crawls politely.

$2 per 1,000 websites, and only for websites where at least one email, phone or social profile was found. Websites that are unreachable, blocked by robots.txt or have nothing to extract are free.

Who is it for?

  • Sales and lead-gen teams: add emails, phones and socials to lists of domains before outreach
  • Agencies: enrich local-business lists (restaurants, dentists, trades) with a contact email and Instagram/Facebook pages
  • CRM hygiene: fill missing company phone numbers, LinkedIn pages and contact pages
  • Market research: see which companies are active on TikTok, Instagram or YouTube

Features

  • 📧 Emails from mailto: links, page text, schema.org JSON-LD, Cloudflare-protected addresses and "name [at] domain [dot] com" obfuscation
  • ✅ Each email is tagged sameDomain, role address (info@, sales@…) and domainAcceptsMail (DNS MX check). Placeholder and tracking addresses (example.com, sentry, wixpress…) are dropped.
  • 📞 Phones from tel: links and schema.org data, de-duplicated. Phone-like numbers found only in page text are kept separately in phonesUncertain.
  • 🌐 13 social networks, plus contactPageUrls for contact forms
  • 🏢 Company name and postal address from schema.org/OpenGraph when the site publishes them
  • 🔎 Crawls the homepage plus up to 19 contact/about/impressum/team pages on the same domain. If no contact link exists, it tries /contact, /contact-us and /about.
  • 🤝 Polite: robots.txt (including Crawl-delay) respected, 1 request per second per website by default, an identifiable User-Agent (ContactEnrichmentBot), and a time budget per site. Many websites are processed in parallel, but each site is crawled one page at a time.
  • ♻️ Retries with backoff on 429/5xx, http/https fallback, duplicate domains removed
  • 💵 Stops cleanly at your Maximum cost per run

Input example

{
"websites": ["stripe.com", "https://www.defenseplumbing.com/", "griffon.paris", "info@metrocityroofing.com"],
"maxPagesPerSite": 5
}

Output example

Real output from live run MudyC1mCEnClL4X3J (one website):

{
"input": "https://www.aloha-dental.com/",
"domain": "aloha-dental.com",
"url": "https://www.aloha-dental.com/",
"finalUrl": "https://www.aloha-dental.com/",
"finalDomain": "aloha-dental.com",
"status": "ok",
"httpStatus": 200,
"companyName": "Aloha Dental",
"title": "Dentist in Austin, TX | Aloha Dental | Dr. Blake Mulgrew DMD, Dr. Holly Langendorfer DMD, Dr. Mark Whitney Jumper DDS",
"description": "Home. Aloha Dental offers Invisalign, Extractions, Root Canals, Botox for TMJ and more in Austin, TX 78741 Call:512-707-7300",
"language": "en-US",
"emails": [
"riverside@aloha-dental.com"
],
"emailsSameDomain": [
"riverside@aloha-dental.com"
],
"primaryEmail": "riverside@aloha-dental.com",
"phones": [
"(512)707-7300"
],
"phonesUncertain": [
"(512) 494-5655"
],
"address": "1614 E. Riverside DR., Austin, Texas, 78741, US",
"contactPageUrls": [
"https://www.aloha-dental.com/contact-us/"
],
"linkedin": [],
"facebook": [
"https://www.facebook.com/people/Aloha-Dental-Texas/61557771617859"
],
"instagram": [
"https://www.instagram.com/alohadentaltx"
],
"twitter": [],
"youtube": [],
"tiktok": [],
"pinterest": [],
"github": [],
"threads": [],
"telegram": [],
"whatsapp": [],
"discord": [],
"yelp": [
"https://www.yelp.com/biz/aloha-dental-austin"
],
"emailDetails": [
{
"email": "riverside@aloha-dental.com",
"foundOn": "https://www.aloha-dental.com/",
"method": "cloudflare-protected",
"domainAcceptsMail": true,
"sameDomain": true,
"role": false
}
],
"phoneDetails": [
{
"phone": "(512)707-7300",
"foundOn": "https://www.aloha-dental.com/",
"method": "tel-link"
}
],
"pagesCrawled": 5,
"crawledUrls": [
"https://www.aloha-dental.com/",
"https://www.aloha-dental.com/contact-us/",
"https://www.aloha-dental.com/about-us/",
"https://www.aloha-dental.com/our-team/",
"https://www.aloha-dental.com/location/"
],
"error": null,
"contactsFound": true,
"charged": true,
"scrapedAt": "2026-10-17T21:20:00.473Z"
}

Every input website gets a row. Websites where nothing was extracted have status = blocked_by_robots_txt, dns_not_found, http_404, timeout and so on, and charged: false. A SUMMARY record shows the counts by status.

Real test results

Live runs on Apify, 17 Oct 2026. Fill rates are measured over the websites that were reached (status: ok).

TestWebsitesReachedChargedEmailSame-domain emailPhoneFacebookInstagramLinkedInXContact pageCompany nameAvg pages
100 Manchester restaurant/café URLs (90 unique)90726568%59%62%65%76%11%33%70%80%2.8
57 mixed URLs: US roofers/plumbers/dentists, Paris cafés, 12 SaaS companies (55 unique)55494755%48%57%77%69%59%34%89%85%3.8
Maximum cost per run = $0.0190–5 ($0.010)

Websites that weren't reached: blocked by robots.txt (7 and 4, never crawled), HTTP 403/404, DNS not found, timeouts. None of them were charged. Platform cost was about $0.002–0.008 per 55–90 websites.

Pricing

EventPrice
Website with contacts found (up to Max pages per website crawled)$0.002 ($2 per 1,000 websites)
Unreachable, robots.txt-blocked or empty websitefree

Other contact scrapers on the Store charge per page crawled: $2 per 1,000 pages, even when nothing is found. Here a full website visit (homepage plus contact and about pages, 2.8 pages on average in our tests) costs the same as one page there, and you pay nothing for websites with no contact details.

Compliance note

  • Public data only. The Actor never logs in, never fills forms or solves CAPTCHAs, and never sends email or probes mailboxes. The MX check is a DNS lookup on the email's domain.
  • robots.txt is honoured. If a site disallows crawling for generic bots (User-agent: *) or for ContactEnrichmentBot, that site gets blocked_by_robots_txt and is not crawled.
  • Personal data. Websites sometimes list named employees' emails or phone numbers. These count as personal data under the GDPR, UK GDPR, CCPA and similar laws. You are the data controller. Have a lawful basis (e.g. legitimate interest for B2B outreach), honour opt-outs, and follow anti-spam rules (CAN-SPAM, CASL, PECR/ePrivacy). Role addresses (info@, sales@) are flagged role: true. If you need to minimise personal data, keep only those.
  • Use the results in line with each website's terms. Don't use the Actor to build spam lists.

FAQ

Can I pass domains, URLs or emails? Yes, all three. For an email address, its domain is used.

Why was a site blocked_by_robots_txt? Its owner disallows automated crawling. We respect that, and you aren't charged.

Some sites block data-centre IPs. What can I do? Set a proxy (Apify Proxy) in the input. Proxy traffic is billed by Apify.

Does it run JavaScript? No. It reads the HTML the server sends, which is fast and cheap. Sites that only render contacts with JavaScript (rare for contact details) may return fewer results.