Website Contact Extractor — Emails, Phones, Socials
Pricing
$19.00 / 1,000 contact results
Website Contact Extractor — Emails, Phones, Socials
Turn a list of company domains into **unmasked** contact records: emails (with de-obfuscation + MX check), phone numbers, and social profiles. Full output — no upgrade wall.
Pricing
$19.00 / 1,000 contact results
Rating
0.0
(0)
Developer
Vitalii Bondarev
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Give it a list of company domains. Get back a clean, unmasked contact record per site: email addresses, phone numbers, and social profile links — plus the pages each was found on.
No API key. No upgrade wall. The full result is in your dataset.
What it does
For each domain you pass in, the actor:
- Fetches the homepage through an Apify proxy (RESIDENTIAL by default) using browser-grade TLS, so sites serve it like a normal visitor.
- Discovers contact-bearing pages —
/contact,/about,/team,/imprint,/impressum,/legal, and their localized variants — and crawls a few of them. - Extracts and de-duplicates across all crawled pages:
- Emails — from
mailto:links and page text, including de-obfuscated forms likename [at] domain [dot] com,info(at)company.io, HTML-entity tricks. - Phones — from
tel:links and text, normalized and validated (7–15 digits, E.164). - Socials — first profile URL per network: LinkedIn, X/Twitter, Facebook, Instagram, YouTube, GitHub, TikTok.
- Emails — from
- Verifies emails (optional) — looks up each email domain's MX records and flags disposable and role (info@, sales@, …) addresses, so you can prioritize.
One record is produced — and one charge is made — only for sites where at least one contact was found.
Why this one
Many "website email finder" actors mask the output behind a "this is a sample, upgrade your plan to see the rest" wall. This actor returns everything it finds, unmasked, in your own dataset — and adds the verification layer (MX + disposable/role flags + email de-obfuscation) that the freemium-bait tools skip.
Input
| Field | Type | Default | Description |
|---|---|---|---|
domains | array of strings | — | Domains or URLs (e.g. stripe.com, https://shopify.com). Required. |
maxPagesPerSite | integer | 4 | Homepage + up to N-1 discovered contact pages. |
verifyEmails | boolean | true | MX-verify emails + flag disposable/role. |
proxyConfiguration | object | RESIDENTIAL | Apify Proxy used to reach sites. |
maxItems | integer | 0 | Cap total site records (0 = no limit). |
Example input
{"domains": ["stripe.com", "basecamp.com", "ghost.org"],"maxPagesPerSite": 4,"verifyEmails": true,"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }}
Output
One record per site that yielded contacts:
{"domain": "basecamp.com","emails": ["support@basecamp.com", "press@basecamp.com"],"emailsVerified": [{ "email": "support@basecamp.com", "mxFound": true, "mxHost": "aspmx.l.google.com","isDisposable": false, "isRoleAccount": true }],"phones": ["+13125551234"],"socials": {"linkedin": "https://www.linkedin.com/company/basecamp","twitter": "https://twitter.com/basecamp"},"emailCount": 2,"phoneCount": 1,"sourcePages": ["https://basecamp.com", "https://basecamp.com/about"],"scrapedAt": "2026-06-13T12:00:00Z"}
Pricing
Pay-per-result: you are charged once per site that returns at least one contact. Sites with no contacts found are not charged. The buyer's Apify account pays for proxy + compute.
Notes
- The actor never touches a site from a bare IP — every request is proxied.
- MX verification is a $0, no-key signal. Live SMTP mailbox probing is intentionally not performed (cloud egress commonly blocks port 25); MX presence + disposable/role flags are the reliable signal that travels.