Website Contact & Email Extractor
Pricing
$5.00 / 1,000 contact founds
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
Maintained by CommunityActor 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:
| Signal | Method |
|---|---|
| Email addresses | Regex over HTML source + visible text; validated and deduplicated |
| Phone numbers | Regex supporting international and US formats |
| Social media links | Anchor tag scanning for Twitter/X, LinkedIn, Facebook, Instagram, GitHub |
| Physical address | JSON-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 }}
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
urls | string[] | Yes | — | List of website URLs to process |
contactPaths | string[] | No | See above | Sub-paths to probe on each domain |
requestTimeoutSecs | integer | No | 15 | Per-request timeout (5–60) |
maxRetries | integer | No | 2 | Retries on transient failures (0–5) |
proxyConfiguration | object | No | {} | 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.