Website Contact Extractor: Emails, Phones & Socials avatar

Website Contact Extractor: Emails, Phones & Socials

Pricing

$2.40 / 1,000 website with contacts

Go to Apify Store
Website Contact Extractor: Emails, Phones & Socials

Website Contact Extractor: Emails, Phones & Socials

Extract emails, phone numbers and social profiles (LinkedIn, Facebook, Instagram, X, YouTube, TikTok) from any list of company websites. Crawls the homepage and contact/about pages, decodes protected emails, and returns one row per site. Sites without contacts are free.

Pricing

$2.40 / 1,000 website with contacts

Rating

0.0

(0)

Developer

Andres Garcia

Andres Garcia

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

19 days ago

Last modified

Share

Website Contact Extractor: Bulk Emails, Phone Numbers & Social Profiles

Paste a list of company websites and get back one clean row per website with every email address, phone number (validated, E.164) and social profile (LinkedIn, Facebook, Instagram, X/Twitter, YouTube, TikTok, Pinterest, GitHub, Yelp) found on the homepage and its contact, about and team pages. It decodes Cloudflare-protected emails and name [at] domain [dot] com obfuscation, and picks a primary email and phone for you.

You only pay for websites where contacts were found. Sites with nothing, or that fail to load, are free. No login, no API key, no browser.

Why this contact scraper?

  • 🧾 One row per website, not per email. Ready for CRM import with emails[], phones[] and one column per social network.
  • 🔎 Finds the right pages: homepage plus up to N same-site pages whose path looks like contact, about, team, staff, leadership, locations or support
  • 🛡️ Protected emails decoded: Cloudflare data-cfemail, HTML entities (@), [at]/(dot) obfuscation
  • ☎️ Real phone numbers only: tel: links plus text numbers validated with Google's libphonenumber (no order IDs or dates), normalized to E.164
  • 🚫 Junk filtered: image filenames (logo@2x.png), placeholder addresses (you@example.com), tracking and Sentry addresses
  • ⭐ Primary contact picked: prefers an inbox on the site's own domain, then info@, contact@, hello@, sales@…
  • 💸 No contacts, no charge, and duplicate domains are merged before crawling
  • ⚡ Lightweight and memory-safe: streaming downloads capped per page, no headless browser, so it is cheap and fast

Use cases

  • Lead enrichment: turn a list of company domains (from a CRM, a spreadsheet, Google Maps, a directory or a trade-show list) into emails and phones
  • Local business outreach: contractors, agencies, clinics, restaurants, dealers
  • Partner & supplier research: find the right contact channel for any website
  • Data hygiene: pair with our validators to keep only deliverable emails and valid phones

Works great with

  1. Bulk Email Validator: pick this run's dataset as input, field emails. It removes bad, disposable and role addresses.
  2. US Phone Number Validator: dataset input, field phones. Adds line type, state, time zone and calling hours.
  3. Domain WHOIS Lookup and Website Tech Stack Detector: dataset input, field domain. Adds domain age and the site's technologies.

How to use it

  1. Click Try for free. A few sample websites are prefilled, so the first run works in one click.
  2. Paste your websites or bare domains (one per line), or pick an Input dataset and set the Website field (e.g. website from a Google Maps scrape).
  3. Click Start and export to CSV, Excel or JSON, or use the API, Zapier, Make or n8n.

Input example

{
"websites": ["acmeplumbing.com", "https://www.sunrun.com", "www.servicemaster.com"],
"maxPagesPerSite": 4,
"defaultCountry": "US",
"includeSitesWithoutContacts": false,
"maxItems": 1000
}
FieldDescription
websitesURLs or bare domains. One row per domain.
inputDatasetId + websiteFieldRead websites from another dataset (dot paths and arrays supported)
maxPagesPerSiteHomepage + up to N−1 contact/about/team pages (default 4)
defaultCountryCountry for validating phone numbers without a + prefix (default US)
includeSitesWithoutContactsAlso output free rows for sites with nothing found or that failed
maxItemsMaximum websites to process

Output example

{
"website": "sunrun.com",
"domain": "sunrun.com",
"finalUrl": "https://www.sunrun.com/",
"title": "Sunrun | America's #1 Home Storage & Solar Power Company",
"primaryEmail": "press@sunrun.com",
"emails": ["press@sunrun.com"],
"primaryPhone": "+18333245886",
"phones": ["+18333245886", "+18333862912", "+18554786786"],
"facebook": "https://www.facebook.com/sunrun",
"instagram": "https://www.instagram.com/sunrunsolar",
"linkedin": "https://www.linkedin.com/company/sunrun",
"twitter": "https://twitter.com/Sunrun",
"youtube": null,
"contactPageUrl": "https://www.sunrun.com/contact-us",
"pagesCrawled": 3,
"error": null
}

The Contacts view shows domain, title, primary email, all emails, primary phone, all phones and the main social links.

Pricing

Pay-per-event: a fixed price per website where at least one contact was found, currently about $2.40 per 1,000 websites (see the Pricing tab). Websites with no contacts, unreachable sites and duplicates are free. There is no start fee and no compute charge on top.

FAQ

Why were no contacts found for some sites? Some websites hide contacts behind forms or JavaScript widgets, or block automated requests (large enterprise sites behind Cloudflare/Akamai). Those runs are free. Small and mid-size business sites, the usual lead-gen targets, work best.

Does it use a browser? No. It downloads HTML directly (streamed and capped), which makes it fast, cheap and light. Sites that render contacts only with JavaScript won't show them.

Are the emails verified? They are extracted exactly as published. Run them through our Bulk Email Validator to check domains, MX records, disposable and role addresses.

Is it legal? It only reads publicly available pages. You are responsible for using the contacts lawfully (GDPR, CAN-SPAM, TCPA).

Problems? Report them on the Issues tab. The actor is monitored daily.