Website Contact Scraper - Emails, Phones & 5 Socials
Under maintenancePricing
from $1.50 / 1,000 domains
Website Contact Scraper - Emails, Phones & 5 Socials
Under maintenanceCrawl any list of domains and extract business emails, phone numbers and social profile links (LinkedIn, X, Facebook, Instagram, YouTube) from homepages, contact & about pages. No API key. Use as an MCP server in Claude, ChatGPT & AI agents.
Pricing
from $1.50 / 1,000 domains
Rating
0.0
(0)
Developer
The Mine Works
Maintained by CommunityActor stats
0
Bookmarked
7
Total users
3
Monthly active users
21 hours ago
Last modified
Categories
Share
Website Contact Scraper — Emails, Phones & 5 Socials
The Mine Works: 544 users across 100 public Actors, >99% run success. Pay only for results delivered. Browse all Actors.
How to extract emails and phone numbers from a list of websites
Give it domains. It crawls each site's homepage plus /contact, /about, /contact-us, and /team, follows footer links, and returns one deduplicated record per domain with every publicly published email, phone number, and social profile URL across five networks (LinkedIn, X/Twitter, Facebook, Instagram, YouTube).
No API key, no signup, no per-seat licence. And the billing rule that matters: a domain that returns no contact at all is never charged. You pay for domains that actually produced something.
✅ No API key or login · ✅ 5 social networks detected · ✅ One clean record per domain · ✅ Empty domains never billed · ✅ MCP-ready for AI agents
Scrape contact details from a list of company domains
The core run. Bare domains, www. forms, and full URLs are all normalised to a root domain.
{"domains": ["stripe.com", "notion.so", "https://linear.app/about"],"maxPagesPerSite": 5}
Crawl deeper on sites that bury their contact page
maxPagesPerSite is the whole cost lever: it caps how many pages are fetched per domain. Raise it for sites with a deep footer or a multi-level about section.
{"domains": ["bigcorp.com", "enterprise-vendor.io"],"maxPagesPerSite": 15}
Do a cheap first pass over a large domain list
Set the page budget to 1 and the actor only fetches the homepage of each domain. Most small businesses publish their phone and email in the header or footer, so a homepage-only pass is often enough — and it is the cheapest way to triage a long list before spending on the survivors.
{"domains": ["...", "...", "..."],"maxPagesPerSite": 1}
Enrich a Google Maps or CRM list with social profiles
Pipe the domains from Google Maps Leads Scraper straight in. The socials object gives you a LinkedIn company URL you can hand to LinkedIn Company Scraper for firmographics.
{"domains": ["localdentist.com", "citylawfirm.co.uk", "acmeplumbing.in"],"maxPagesPerSite": 5}
What data do you get for each domain
Real record from a live crawl of basecamp.com:
{"domain": "basecamp.com","emails": ["jason@basecamp.com"],"phones": [],"socials": {},"pagesScanned": 4,"scrapedAt": "2026-07-15T04:22:21.685Z"}
| Field | Description |
|---|---|
🌐 domain | The website domain that was crawled (e.g. stripe.com) |
📧 emails | Deduplicated array of email addresses found across the crawled pages |
📞 phones | Deduplicated array of phone numbers found across the crawled pages |
🔗 socials | Social profile URLs keyed by platform: linkedin, twitter, facebook, instagram, youtube |
📄 pagesScanned | Number of pages successfully fetched for this domain |
🕒 scrapedAt | ISO timestamp when this domain was processed |
phones and socials come back empty in the example above because neither was found within the page budget — which is common and worth planning for: not every site publishes a phone number, and social links often live outside the default crawl depth. Raise maxPagesPerSite when a domain matters.
How the extraction works. Emails come from mailto: links and address patterns in visible page text. Phones come from tel: links and properly formatted numbers. Social links are matched only on real profile paths — linkedin.com/company|in|school/…, and a non-root path on x.com/twitter.com, facebook.com, instagram.com, youtube.com — so a bare share button does not get recorded as a profile. Everything is merged and deduplicated per domain before the record is written.
What does contact scraping cost here
| Event | Price | You pay when |
|---|---|---|
| Domain processed | $0.001 | A domain returns at least one email, phone, or social profile |
$1.00 per 1,000 domains with contacts. A domain that fails to crawl, or returns nothing at all, produces a record for your audit trail but is not charged. There is no start fee and no subscription.
Common use cases
Outbound list building. Turn a target account list into a contactable one without a data subscription.
Lead enrichment. Append emails, phones, and social handles to domains you already hold in a CRM.
Agency prospecting. Crawl a directory export or a conference exhibitor list and get straight to who to contact.
Partner and supplier research. Pull published contact routes for a set of vendors in one pass.
Getting started
- Paste your domains into the
domainsfield, one per line. Bare domains,www.forms, and full URLs all work. - Set
maxPagesPerSite(default 5). This is your main cost and speed control. - There's no proxy option to configure — this actor fetches pages directly over plain HTTP, always. A domain that blocks direct requests is skipped, not retried through a paid proxy.
- Click Start, then export as JSON, CSV, or Excel, or pull it via API or MCP.
Run it on a schedule
- Run the actor once with the input you want repeated, then click Save as a task.
- In the Apify Console, go to Schedules → Create new.
- Name it, set your timezone, and pick a frequency or a cron expression (e.g.
0 6 * * *). - Under Actors or tasks to run, add the task you saved.
- Save. Nothing is charged just for a schedule existing.
Full options are in Apify's Schedules documentation.
FAQ
Which pages does it actually crawl?
The homepage, then /contact, /about, /contact-us, and /team, then footer-discovered links — up to your maxPagesPerSite budget.
Which social networks are detected? Five: LinkedIn, X/Twitter, Facebook, Instagram, and YouTube. Only genuine profile paths are recorded, not share widgets.
Am I charged for a domain with no contacts? No. The charge fires only when at least one email, phone, or social profile was found. You still get a record, so you can see the domain was tried.
Why did I get fewer phone numbers than expected?
Numbers are taken from tel: links and properly formatted text. Bare digit runs are rejected, because a digit run is indistinguishable from an order ID or a date. Fewer numbers, but the ones you get are real.
Are the emails verified? No — they are extracted as published. Pipe the output into Email Verifier & Validator for MX and SMTP checks before you send.
Can it get past bot protection? No. This actor is direct HTTP only — no proxy, no browser, by design, not as an option you can change. A domain with real bot protection returns fewer pages, or none; those are simply not counted or charged, rather than retried through a paid workaround.
Is this GDPR compliant? It collects only contact details a business has published on its own website. You are responsible for having a lawful basis for contacting them under GDPR, CCPA, and local marketing law.
Use from Claude, ChatGPT and any MCP agent
https://mcp.apify.com/?tools=themineworks/website-contact-finder
Or call it programmatically:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('themineworks/website-contact-finder').call({domains: ['stripe.com', 'notion.so'],maxPagesPerSite: 5,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Complete your outbound pipeline
Extracted the contacts. Now find the people behind them and verify:
- B2B Leads Finder: turn any domain list into named decision-maker contacts with emails.
- Email Verifier & Validator: MX and SMTP verify every email before you send.
- Google Maps Leads Scraper: pull businesses and domains from Google Maps by search query.
Typical flow: maps-leads finds the businesses, website-contact-finder pulls the site contacts, email-verifier-validator confirms deliverability.
Questions or need a custom field set? Reach out through the Apify profile.
Related guides
Last verified: 2026-08