Contact Details Scraper: Emails, Phones, Socials avatar

Contact Details Scraper: Emails, Phones, Socials

Pricing

from $30.00 / 1,000 site with contacts

Go to Apify Store
Contact Details Scraper: Emails, Phones, Socials

Contact Details Scraper: Emails, Phones, Socials

Contact details scraper for any website: emails (incl. Cloudflare-protected), phone numbers in E.164 and social media links, one row per site. A website email extractor with no proxies or login.

Pricing

from $30.00 / 1,000 site with contacts

Rating

0.0

(0)

Developer

TechyMaki Labs

TechyMaki Labs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

20 hours ago

Last modified

Categories

Share

Give it a list of website URLs. It crawls each site's contact-style pages and returns one item per site with emails, phone numbers (normalised to E.164) and social profile links.

Use it as a website email scraper, email extractor, contact info scraper, phone number scraper or social media links scraper for lead lists, CRM enrichment or supplier research. You pay $0.03 only for sites where a contact was found, plus $0.001 per page.

What it does

  • Follows only links on the same registrable domain whose URL or link text matches contact|about|impressum|kontakt|team|legal|privacy|support|company, plus the start page. Pages per site are capped.
  • Emails: from mailto: links and page text; decodes Cloudflare email protection (data-cfemail and /cdn-cgi/l/email-protection#...); decodes name [at] domain [dot] com style obfuscation; lowercases, de-duplicates, drops false positives (logo@2x.png, Sentry-style tracking ids, example.com, name@company.com placeholders).
  • Phones: from tel: links, validated and normalised to E.164 with libphonenumber. Numbers without an international prefix use defaultCountry. Optionally parses phone-like text too (includePhonesUncertain).
  • Socials: LinkedIn, Facebook, Instagram, X/Twitter, YouTube, TikTok, Pinterest, Discord.
  • sourcePages tells you the first page where each email or phone was seen.

Built on Crawlee CheerioCrawler (plain HTTP, no browser), concurrency 10. No proxies, captcha solving or stealth tricks: pages that block plain requests are not scraped.

Input

FieldTypeDefaultMeaning
startUrlsarrayrequiredWebsite URLs, one result per site
maxPagesPerSiteinteger10Page cap per site, including the start page
maxDepthinteger2Link depth from the start page (0 = start page only)
defaultCountrystringUSISO-2 code for parsing local phone numbers
includePhonesUncertainbooleanfalseAlso parse phone-like numbers in plain text (more hits, more false positives)
{ "startUrls": [{ "url": "https://www.nzpost.co.nz/" }], "maxPagesPerSite": 8, "maxDepth": 2 }

Output

Real item from a local run (see samples/sample-output.json for all nine sites):

{
"domain": "nzpost.co.nz",
"startUrl": "https://www.nzpost.co.nz/",
"emails": ["oversize@nzpost.co.nz", "youshop@nzpost.co.nz", "yspickup@nzpost.co.nz", "cyber.security@nzpost.co.nz"],
"phones": ["+6439831425", "+6448975675", "+6469528600", "+6479600468", "+6499770102"],
"phonesRaw": ["+6439831425", "+6448975675", "+6469528600", "+6479600468", "+6499770102"],
"socials": {
"linkedin": ["https://linkedin.com/company/nzpost"],
"facebook": ["https://facebook.com/newzealandpost"],
"instagram": ["https://instagram.com/newzealandpost"],
"twitter": ["https://x.com/nzpost"],
"youtube": [], "tiktok": [], "pinterest": [], "discord": []
},
"pagesScraped": 8,
"sourcePages": {
"+6439831425": "https://www.nzpost.co.nz/contact-support",
"cyber.security@nzpost.co.nz": "https://www.nzpost.co.nz/contact-support/scams-and-fraud"
},
"scrapedAt": "2026-10-26T12:57:33.189Z"
}

(sourcePages shortened here.) Social links are canonical profile URLs: https, no www, no tracking query, twitter.com → x.com, and share/embed/post links removed. A site that cannot be loaded returns an error field and is not charged contact-site.

You are responsible for using extracted contact data lawfully (e.g. GDPR/CAN-SPAM). The actor only reads publicly published pages.

Pricing (pay per event)

EventPriceCharged
page-scraped$0.001per page fetched and parsed
contact-site$0.03per site where at least one email or phone was found
apify-actor-start$0.00005once per run (Apify's standard start event)

Platform compute is included: you pay only the events above. Sites that fail to load are not charged contact-site. The actor stops gracefully when your max-charge limit is reached.

Measured locally

9 public sites, maxPagesPerSite 8, maxDepth 2: 69 pages, about 19 s crawl (about 29 s including start-up), all 9 sites returned at least one email or phone. On the Apify platform: 3 sites in 19.7 s at 1 GB memory.

Limitations

  • Static HTML only. Contacts rendered by JavaScript, or behind forms, images or logins, are not found.
  • Sites that return 403 or captchas to plain HTTP requests are not bypassed.
  • Phones come from tel: links by default. Numbers shown only as text need includePhonesUncertain, and can include false positives (for example, fragments of longer numbers).
  • Same-domain detection uses the public suffix list: for hosts that are themselves public suffixes (for example nhs.uk), the exact hostname is used, so www and non-www variants count as different sites. Use the hostname that the site actually serves.
  • Test coverage: decoder, filters, phone and social extraction are tested against real captured pages (including a real Cloudflare-protected page from wpbeginner.com). [at]/[dot] de-obfuscation is tested only on synthetic text because no real page using it was found.
  • Email addresses and phone numbers are personal data in some contexts. Make sure your use complies with applicable law and each site's terms.