Website Contact & Email Extractor avatar

Website Contact & Email Extractor

Pricing

$5.00 / 1,000 contact founds

Go to Apify Store
Website Contact & Email Extractor

Website Contact & Email Extractor

Extracts emails, phone numbers, social media links, and physical addresses from websites by crawling main pages and common contact sub-pages.

Pricing

$5.00 / 1,000 contact founds

Rating

0.0

(0)

Developer

The Emperor

The Emperor

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Extract email addresses, phone numbers, social media profile links, and physical addresses from any website — fast, without a browser.

What it does

For each URL you provide, the actor crawls the main page plus the most common contact sub-pages:

  • /contact
  • /about
  • /team
  • /support
  • /impressum
  • /contact-us
  • /about-us

From each page it extracts:

SignalMethod
Email addressesRegex over HTML source + visible text; validated and deduplicated
Phone numbersRegex supporting international and US formats
Social media linksAnchor tag scanning for Twitter/X, LinkedIn, Facebook, Instagram, GitHub
Physical addressJSON-LD structured data (schema.org/PostalAddress) with HTML fallback (<address> tag, class/id heuristics)

Results from all crawled pages are merged and deduplicated before being stored.

Input

{
"urls": [
"https://apify.com",
"https://example.com"
],
"contactPaths": ["/contact", "/about", "/team", "/support", "/impressum", "/contact-us", "/about-us"],
"requestTimeoutSecs": 15,
"maxRetries": 2,
"proxyConfiguration": { "useApifyProxy": true }
}
FieldTypeRequiredDefaultDescription
urlsstring[]Yes—List of website URLs to process
contactPathsstring[]NoSee aboveSub-paths to probe on each domain
requestTimeoutSecsintegerNo15Per-request timeout (5–60)
maxRetriesintegerNo2Retries on transient failures (0–5)
proxyConfigurationobjectNo{}Apify proxy settings

Output

Each website produces one dataset record:

{
"url": "https://apify.com",
"domain": "apify.com",
"emails": [
"hello@apify.com"
],
"phones": [
"+1 (555) 123-4567"
],
"socialMedia": {
"twitter": ["https://twitter.com/apify"],
"linkedin": ["https://linkedin.com/company/apify"],
"github": ["https://github.com/apifytech"]
},
"address": "Vodickova 704/36, Prague 1, 110 00, CZ",
"pagesScraped": [
"https://apify.com",
"https://apify.com/contact"
],
"scrapedAt": "2024-01-15T10:30:00+00:00",
"error": null
}

If a page returns a 404, times out, or otherwise fails, it is skipped silently and the rest of the run continues. Any non-fatal per-page errors are noted in the top-level error field of the result.

Pricing

This actor uses pay-per-event charging: one charge event per website processed, regardless of how many sub-pages were crawled.

Technical details

  • Runtime: Python 3.11
  • HTTP client: httpx (async, no browser overhead)
  • HTML parser: BeautifulSoup4
  • Concurrency: All sub-pages for a single website are fetched concurrently; websites are processed sequentially to stay polite
  • Proxy support: Pass an Apify proxy configuration to rotate IPs and avoid blocks

Limitations

  • Does not execute JavaScript — contact information loaded dynamically by JS will not be found. Use the Web Scraper for JS-heavy sites.
  • Phone number extraction is heuristic and may include false positives (e.g. dates, zip codes) on some pages.
  • Email blacklisting filters obvious placeholders and CDN/framework addresses but cannot catch every false positive.