Website Email Extractor
Pricing
Pay per usage
Go to Apify Store
Website Email Extractor
Pricing
Pay per usage
Rating
0.0
(0)
Developer

Alex Claw
Maintained by Community
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Extract emails, phone numbers, and social media profiles from any website. Crawls pages on the same domain with configurable depth and deduplicates all results.
Features
- Email extraction -- finds emails in page text, mailto: links, and HTML attributes
- Phone number extraction -- international formats (+1-555-123-4567, +44 20 7946 0958, etc.)
- Social media profiles -- LinkedIn, Twitter/X, Facebook, Instagram, YouTube, GitHub
- Smart crawling -- follows same-domain links with configurable depth
- Deduplication -- all emails, phones, and profiles are deduplicated across pages
- Source tracking -- tracks which pages each email was found on
- False-positive filtering -- filters out image artifacts, example.com, test domains
- Robots.txt respect -- skips pages disallowed by robots.txt
- Rate limiting -- 0.5s delay between requests to avoid overloading servers
Input
| Parameter | Type | Default | Description |
|---|---|---|---|
urls | array | required | Website URLs to extract contacts from (e.g., https://example.com) |
maxPagesPerSite | integer | 10 | Max pages to crawl per domain |
crawlDepth | integer | 2 | Link-following depth (1 = starting page only) |
extractPhones | boolean | true | Extract phone numbers |
extractSocials | boolean | true | Extract social media profile links |
proxyConfiguration | object | none | Proxy settings for requests |
Example input
{"urls": ["https://example.com", "https://another-site.org/about"],"maxPagesPerSite": 20,"crawlDepth": 3,"extractPhones": true,"extractSocials": true}
Output
Each domain produces one dataset item with all found contacts:
{"domain": "example.com","url": "https://example.com","emails": ["contact@example.com", "info@example.com"],"phones": ["+1-555-123-4567"],"socialProfiles": {"linkedin": "https://linkedin.com/company/example","twitter": "https://twitter.com/example","facebook": null,"instagram": null,"youtube": null,"github": "https://github.com/example"},"pagesScraped": 5,"foundOnPages": {"contact@example.com": ["https://example.com/contact","https://example.com/about"],"info@example.com": ["https://example.com"]}}
Use Cases
- Lead generation -- build prospect lists with verified contact information
- Sales outreach -- find decision-maker emails and LinkedIn profiles
- Business directories -- enrich company data with contact details
- Competitor research -- discover team members and organizational contacts
- SEO & link building -- find webmaster contact information
- Market research -- collect contact data from industry websites
How It Works
- For each input URL, the actor identifies the domain and fetches robots.txt
- Starting from the input URL, it crawls pages using BFS (breadth-first search)
- On each page, it extracts emails, phone numbers, and social media links
- It follows same-domain links up to the configured crawl depth
- Results are deduplicated and pushed as one dataset item per domain
Pricing
Pay per result: $2.00 per 1,000 pages crawled.
Limitations
- Only extracts from publicly accessible pages (no login-protected content)
- JavaScript-rendered content is not supported (static HTML only)
- Very large sites may hit the
maxPagesPerSitelimit before finding all contacts - Phone number extraction may produce false positives on pages with many numbers
- Social media links must be standard profile URLs (custom share widgets may be missed)