Contact Details Scraper — Emails, Social Media & Marketing Tags
Pricing
from $1.50 / 1,000 enriched leads
Contact Details Scraper — Emails, Social Media & Marketing Tags
Scrape contact information from any website — emails, phone numbers, social media profiles, tracking tags, and tech stack. Built-in lead scoring, email verification, WHOIS lookup, and industry detection. Turn raw company URLs into enriched, sales-ready B2B leads with a single click.
Pricing
from $1.50 / 1,000 enriched leads
Rating
5.0
(1)
Developer
Rémi Pelloux
Maintained by CommunityActor stats
4
Bookmarked
133
Total users
39
Monthly active users
20 hours ago
Last modified
Categories
Share
Website Contact Scraper — Emails, Phones, 14 Social Platforms, Lead Scoring & Business Intelligence
Turn any company domain list into outreach-ready B2B leads — emails, phones, named contacts with job titles, 14 social & messaging platforms, email verification, pattern detection, 0–100 lead score, tech stack, and WHOIS from a single Apify run. Built for CRM enrichment, cold email, agency prospecting, and sales automation — export JSON, CSV, or Excel with no extra tools.
From $2.50 / 1,000 domains — 40+ structured fields per company, all included. No paid add-ons for emails, socials, or scoring.
Apollo charges $99/mo for 1,000 contacts. ZoomInfo starts at $15,000/year. This Actor enriches 1,000 domains for $2.50 — with more fields than either.
New: Ultimate Leads — full pipeline in one run
Already have keywords, not URLs? Skip manual chaining. Ultimate Leads runs B2B URL discovery + Google Maps + this contact scraper in one Actor, one merged dataset:
| This Actor | Ultimate Leads | |
|---|---|---|
| You provide | Company URLs / domains | Keywords + country/city |
| Discovers URLs | No | Yes (B2B search + Maps) |
| Google Maps businesses | No | Yes |
| Contact enrichment | Yes (full pipeline) | Yes (same engine) |
| Output | One row per URL | One merged row per domain |
| Best for | You already have a domain list | End-to-end prospecting from scratch |
30 seconds to first leads: keywords + country: "fr" → merged dataset with Maps data, emails, phones, and scores.
Fast runs, predictable cost on Apify
- Parallel by domain — up to 15 websites processed at once (configurable, max 30).
- Smart multi-page crawl — homepage plus
/contact,/about,/teamand similar paths first for maximum contact yield. - Apify Proxy support — residential/datacenter proxy routing per request (recommended for 10+ domains).
- Skip expensive steps — disable WHOIS, scoring, or email verification when you only need emails and phones.
- One dataset item = one enriched company — simple cost math:
domains × price per result. - Production-ready — build v2.2.5+ on Apify (
actor-node:20, ~600 MB image), 3,500+ runs, 5/5 store rating. - Smart dedup —
www/non-www,http/https, and trailing-slash duplicates merged automatically.
What contact data can you extract?
| Data type | Details |
|---|---|
| Email addresses | All discoverable emails with on-domain priority |
| Phone numbers | International format via libphonenumber validation |
| Named contacts | People + job titles from JSON-LD, microdata, and team pages |
| WhatsApp / Telegram / Discord | Messaging links and business numbers |
| Facebook, Instagram, LinkedIn, X, YouTube, Pinterest, GitHub, TikTok | Profile and company page URLs |
| Snapchat, Threads, Reddit | Profile and community links |
| Email patterns | Detected convention (first.last@, flast@, first@) |
| Generated emails | Predicted addresses for contacts without public emails |
| Email verification | MX lookup + SMTP probe (valid / invalid / unknown) |
| Catch-all detection | Flags domains that accept any address (catchAll: true) |
| Primary email ranking | Best outreach address auto-selected (primaryEmail + reason) |
| Company locale | Language (companyLang), country (companyCountry), hreflang tags |
| Employee count | From JSON-LD numberOfEmployees when published |
| LinkedIn enrichment | Public company metadata when LinkedIn URL is found |
| Sitemap crawl | Discovers /contact, /team, /about from sitemap.xml |
| CRM export preset | Optional crmRecord mapped to HubSpot, Salesforce, or Pipedrive |
| Webhook alerts | POST grade A/B leads to Zapier/Make during the run |
| JS rendering fallback | Opt-in SPA mode (HTTP-only image; Playwright not bundled in production) |
| Lead score & grade | 0–100 score, letter grade A–F, transparent signal breakdown |
| Business industry | Automatic classification into 30 industries |
| Business keywords | Top terms from page content |
| Tech stack & CMS | 25+ tools (React, WordPress, Intercom, etc.) |
| Tracking tags | Google Analytics, GTM, Facebook Pixel IDs |
| Physical address | From structured data and microdata |
| WHOIS | Registrar, dates, name servers, registrant org |
How it compares
| Feature | This Actor | Basic contact scraper | Database tools (Apollo/ZoomInfo) |
|---|---|---|---|
| Price per 1,000 | $2.50 | ~$4.00 | $50–500+ |
| Social platforms | 14 | 4–6 | Varies |
| WhatsApp, Telegram, Discord | Yes | No | Rare |
| Multi-page crawl | Up to 20 pages/domain | 1 page | N/A |
| Email verification (MX + SMTP) | Yes | No | Yes |
| Email pattern + generation | Yes | No | Paid tier |
| Lead scoring (0–100, A–F) | Yes | No | Yes |
| Named contacts + job titles | Yes | Basic | Yes |
| Industry + keywords | Yes (30 industries) | No | Yes |
| Tech stack detection | Yes (25+ tools) | No | Add-on |
| WHOIS data | Yes | No | No |
| Fresh website data | Live crawl | Live crawl | Stale database |
More fields. Lower price. Every feature included.
Output example
{"domain": "apify.com","url": "https://apify.com","emails": ["info@apify.com", "support@apify.com", "jan@apify.com"],"phones": ["+420 255 000 222"],"contacts": [{ "name": "Jan Curn", "title": "CEO & Co-founder", "email": "jan@apify.com" },{ "name": "Ondra Urban", "title": "CTO & Co-founder" }],"socialLinks": {"linkedin": "https://www.linkedin.com/company/apifytech","twitter": "https://twitter.com/apify","youtube": "https://www.youtube.com/apify","github": "https://github.com/apify","tiktok": "https://www.tiktok.com/@apifytech","discord": "https://discord.gg/jyEM2PRvMU","facebook": null,"instagram": null,"pinterest": null,"whatsapp": null,"telegram": null,"snapchat": null,"reddit": null,"threads": null},"emailPattern": "first@apify.com","emailPatternConfidence": 0.85,"generatedEmails": [{ "name": "Ondra Urban", "email": "ondra@apify.com" }],"emailVerification": [{ "email": "info@apify.com", "status": "valid", "mxValid": true }],"primaryEmail": "hello@apify.com","primaryEmailReason": "generic hello@","catchAll": false,"companyLang": "en","companyCountry": "CZ","hreflangs": ["en"],"numberOfEmployees": 120,"linkedinEnrichment": {"companyName": "Apify","tagline": "Web scraping and automation platform","followerCount": "12K","employeeCountRange": "51-200","industry": "Software Development","headquarters": "Prague, Czechia"},"crmRecord": {"company": "apify.com","email": "hello@apify.com","lead_score": 88,"lead_grade": "A"},"jsRendered": false,"score": 88,"grade": "A","scoreBreakdown": {"contactReachability": 22,"businessLegitimacy": 20,"onlinePresence": 18,"websiteQuality": 16,"teamTransparency": 12},"signals": [{ "signal": "Multiple email addresses", "category": "contactReachability", "points": 10, "detail": "3 emails" }],"address": "Vodickova 704/36, 110 00 Prague, Czech Republic","businessIndustry": "technology","businessKeywords": ["web scraping", "automation", "data extraction", "api", "cloud"],"cmsDetected": "Next.js","techSignals": ["React", "Next.js", "Google Analytics", "Intercom"],"trackingTags": {"googleAnalytics": "G-ABC123XYZ","googleTagManager": "GTM-ABC123","facebookPixel": null},"whois": {"registrar": "GoDaddy","createdDate": "2015-03-01","expiresDate": "2027-03-01","nameServers": ["ns1.example.com", "ns2.example.com"],"registrantOrg": "Apify Technologies s.r.o."},"pagesCrawled": 5,"succeeded": true,"error": null,"processedAt": "2026-03-18T14:30:00.000Z"}
How it works — 7-step pipeline
- Multi-page crawl — Homepage plus high-value internal pages (
/about,/contact,/team, …) up to your page limit. - Data extraction — Emails, phones, contacts, 14 social platforms, messaging links, address, tech stack, tracking tags — merged and deduplicated across pages.
- Business intelligence — Industry classification (30 categories) and keyword extraction.
- Email verification — MX + SMTP probe per discovered email.
- Pattern detection — Naming convention inference and predicted emails for team members.
- WHOIS lookup — Registrar, dates, name servers, registrant (optional).
- Lead scoring — Weighted 0–100 score with letter grade and per-signal transparency.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
urls | string[] | required | Company website URLs or bare domains |
maxPagesPerDomain | integer | 5 | Pages to crawl per domain (1–20) |
useSitemapCrawl | boolean | true | Discover pages from sitemap.xml |
respectRobotsTxt | boolean | false | Skip disallowed URLs |
enableJsRendering | boolean | false | SPA fallback (opt-in; not bundled — logs a warning and skips if unavailable) |
maxConcurrency | integer | 15 | Domains in parallel |
verifyEmails | boolean | true | MX + SMTP verification + catch-all detection |
skipLeadScoring | boolean | false | Skip score/grade/signals |
skipWhois | boolean | false | Skip WHOIS lookup |
skipLinkedInEnrichment | boolean | false | Skip LinkedIn company metadata fetch |
minScore | integer | 0 | Filter out leads below threshold |
crmExportPreset | string | — | hubspot, salesforce, or pipedrive |
webhookUrl | string | — | POST high-grade leads during the run |
webhookMinGrade | string | B | Minimum grade for webhook (A, B, C) |
proxyConfiguration | object | Apify Proxy | Recommended for 10+ domains |
Input examples
CRM-ready with webhook:
{"urls": ["stripe.com", "hubspot.com"],"crmExportPreset": "hubspot","webhookUrl": "https://hooks.zapier.com/hooks/catch/123456/abcdef/","webhookMinGrade": "B","proxyConfiguration": { "useApifyProxy": true }}
Full pipeline with quality filter:
{"urls": ["stripe.com", "hubspot.com", "notion.so", "linear.app"],"maxPagesPerDomain": 8,"minScore": 50,"proxyConfiguration": { "useApifyProxy": true }}
Fast contact-only (cheapest):
{"urls": ["example.com", "acme.co"],"maxPagesPerDomain": 3,"verifyEmails": false,"skipLeadScoring": true,"skipWhois": true}
Lead scoring reference
| Category | Max points | Measures |
|---|---|---|
| Contact Reachability | 30 | Emails, phones, forms, WhatsApp/Telegram/Discord |
| Business Legitimacy | 25 | Address, about page, privacy policy, industry |
| Online Presence | 20 | Social profiles across 14 platforms |
| Website Quality | 15 | HTTPS, analytics, live chat, modern stack |
| Team Transparency | 10 | Named contacts with job titles |
Grades: A (90–100), B (75–89), C (60–74), D (40–59), F (0–39)
Pricing
$2.50 per 1,000 URLs — volume discounts on higher Apify plans.
| Tier | Per 1,000 domains |
|---|---|
| Standard | $2.50 |
| Bronze | $2.00 |
| Silver | $1.80 |
| Gold | $1.50 |
Free users: 10 URLs per run to test before subscribing.
Billing (Console + code must match)
| What | Value |
|---|---|
| Monetization | Pay-per-event |
| Event | apify-default-dataset-item (synthetic) |
| Charge in code | Actor.pushData() only — Apify bills automatically per row |
| Do not call | Actor.charge() for the same rows (double-billing) |
| Free tier | 10 URLs per run |
| Paying users | All URLs in input (batched pushData in chunks of 100) |
Set apify-default-dataset-item to $0.0025 per event (= $2.50 / 1,000 domains) in Console, aligned with the table above.
Infra: Lightweight apify/actor-node:20 image (~600 MB). Avoid actor-node-playwright-chrome (~2.2 GB) — it triples compute cost without benefit when enableJsRendering is off (default).
Programmatic access
Python:
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("QDKOd64e0w1Mar1UG").call(run_input={"urls": ["stripe.com", "hubspot.com"],"maxPagesPerDomain": 8,"minScore": 50,})for lead in client.dataset(run["defaultDatasetId"]).iterate_items():print(f'{lead["domain"]} [{lead["grade"]} {lead["score"]}] — {", ".join(lead["emails"])}')
JavaScript:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('QDKOd64e0w1Mar1UG').call({urls: ['stripe.com', 'hubspot.com'],maxPagesPerDomain: 8,minScore: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems();
cURL:
curl -X POST "https://api.apify.com/v2/acts/QDKOd64e0w1Mar1UG/runs?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"urls": ["stripe.com", "hubspot.com"], "maxPagesPerDomain": 8, "minScore": 50}'
Integrations
- Apify API — Trigger runs and pull JSON datasets programmatically.
- Ultimate Leads — Full keyword → URL → Maps → contacts pipeline in one run.
- Zapier / Make — CRM enrichment workflows (HubSpot, Salesforce, Pipedrive).
- Google Sheets — Export dataset; fields map cleanly to columns.
- Webhooks & Scheduler — Real-time routing and recurring batch enrichment.
- Apify MCP — AI agent pipelines via the Apify MCP server.
Leadsit actor ecosystem
| Actor | Best for |
|---|---|
| Ultimate Leads | Keywords → B2B URLs + Maps + contacts — one merged dataset |
| This Actor | You already have domains — deepest website enrichment |
| B2B URL Finder | Discover company URLs by keyword |
| Google Maps Scraper | Local businesses by search + location |
| Trustpilot Reviews Scraper | Reviews, ratings, reputation data |
Typical workflow: Ultimate Leads for discovery → export domains → re-run this Actor for deep re-enrichment with higher maxPagesPerDomain.
Use cases
- Sales prospecting — Verified emails, phones, WhatsApp, and scores for prioritized outreach.
- Lead qualification — Filter by
minScorebefore pushing to your CRM. - CRM enrichment — Fill missing contacts, socials, tech stack, and industry fields.
- Competitive intelligence — Map rivals' analytics, social presence, and messaging channels.
- Email outreach — Pattern detection + generated emails for decision makers.
- Agency audits — Tracking tags, CMS, and social coverage in one pass.
FAQ
How many pages should I crawl? Default 5 works for most sites. Use 10–15 for enterprise sites; 1 for homepage-only speed runs.
Which social platforms? 14: Facebook, Instagram, LinkedIn, X/Twitter, YouTube, Pinterest, GitHub, TikTok, WhatsApp, Telegram, Snapchat, Discord, Reddit, Threads.
Is email verification accurate? Typically 80–90%. Catch-all domains show as unknown.
What if a site blocks requests? Enable Apify Proxy in input (useApifyProxy: true). Each page fetch rotates through proxy IPs. Failed domains return succeeded: false without stopping the run.
Can I reduce cost/time? Set skipWhois: true, skipLeadScoring: true, and verifyEmails: false for contact-only mode.
How long for 100 domains? ~2–5 minutes with default settings and proxy.
Is the Actor stable in production? Yes — latest build v2.2.5+ on Apify. Billing: synthetic apify-default-dataset-item via pushData only (never manual Actor.charge on the same rows).
Roadmap — delivered in v2.2 ✅
All previously planned features are now live:
| Feature | Status |
|---|---|
Primary email ranking (primaryEmail) | ✅ v2.2 |
| Catch-all domain detection | ✅ v2.2 |
| URL deduplication (www/http/https) | ✅ v2.2 |
| Language & country detection | ✅ v2.2 |
| Sitemap.xml crawl | ✅ v2.2 |
| Employee count from JSON-LD | ✅ v2.2 |
| CRM export presets (HubSpot/SF/Pipedrive) | ✅ v2.2 |
| Webhook on high-score leads | ✅ v2.2 |
| LinkedIn company enrichment | ✅ v2.2 |
| JavaScript rendering fallback (SPA) | ✅ v2.2 opt-in (skipped on lightweight image) |
| robots.txt respect toggle | ✅ v2.2 (opt-in) |
Changelog
v2.2.3 (2026-06-03)
- Fix (critical): Reverted Docker base from
actor-node-playwright-chrome(~2.2 GB) toactor-node:20(~600 MB) — restores healthy margins (v2.2 had inflated compute ~3× per run). - Fix: Removed
playwrightdependency;enableJsRenderingfails gracefully with a log warning. - Fix: Billing —
pushDataonly on syntheticapify-default-dataset-item(no manualActor.charge).
v2.2 (2026-05-23)
- New:
primaryEmail+primaryEmailReason— auto-ranked best outreach address. - New:
catchAll— detects domains accepting any RCPT address. - New: URL deduplication — merges www/non-www, http/https, trailing slashes.
- New:
companyLang,companyCountry,hreflangs— locale detection. - New:
numberOfEmployeesfrom JSON-LD Organization schema. - New:
linkedinEnrichment— public LinkedIn company metadata. - New: Sitemap.xml discovery (
useSitemapCrawl, default on). - New:
crmRecordexport preset — HubSpot, Salesforce, Pipedrive. - New:
webhookUrl+webhookMinGrade— real-time grade A/B alerts. - New:
enableJsRendering— SPA fallback hook (opt-in). - New:
respectRobotsTxt— optional robots.txt compliance. - Note: Playwright base image from early v2.2 was reverted in v2.2.3 (see above).
v2.1.2 (2026-05-23)
- Fix: SMTP verification uses RFC-standard null sender (
MAIL FROM:<>) — fewer falseinvalidresults on Google Workspace / Office 365. - Fix: JSON-LD
@graphrecursion — extracts Person/employee/founder nodes from Yoast, Squarespace, Next.js sites. - Fix: Page size limit raised 500 KB → 2 MB — no more silent truncation on modern marketing sites (footer socials/address preserved).
- Perf: Brotli (
br) added to Accept-Encoding for faster downloads from CDN-backed sites.
v2.1.1 (2026-05-23)
- Fix: Apify Proxy wired via
HttpsProxyAgentper request (previousproxy:option was ignored by axios). - Perf: HTTP socket pool decoupled from concurrency (100 max sockets).
- Perf: Memory freed after business-intel analysis (
_accumulatedPages). - Reliability:
pushDatabatched in chunks of 100 with per-batch error handling.
v2.1 (2026-05-23)
- Fix: Apify Proxy configuration stored and passed to crawler.
- Docs: Store listing rewrite — Ultimate Leads ecosystem, pricing clarity, API examples with actor ID.
- Schema: Input description updated to 14 social platforms (was incorrectly listed as 8).
v2.0 (2026-03)
- 14 social & messaging platforms — WhatsApp, Telegram, Discord, Snapchat, Threads, Reddit added.
- Lead scoring — 0–100 score, A–F grade, five weighted categories, per-signal breakdown.
- Email pattern detection — Convention inference and generated emails for named contacts.
- Business intelligence — 30-industry taxonomy and keyword extraction.
- Multi-page crawler — Priority paths (
/contact,/team,/about, …) with parallel sub-page fetch. - Dataset views — Overview, Contacts & Social, Tech & Marketing, Lead Scoring tabs in Console.
- Phone validation — libphonenumber international formatting.
v1.x
- Initial release: emails, phones, basic social links, single-page crawl.
Responsible use
This Actor collects publicly visible website information. Comply with GDPR, CAN-SPAM, CCPA, and local laws before outreach. Generated emails are algorithmic predictions — verify before sending. Do not use on sensitive government or healthcare sites where automated collection violates terms of service.
Built by Leadsit.eu — B2B lead generation tools for modern sales teams.
Keywords: website contact scraper, extract emails from websites, bulk email finder, company contact extractor, b2b lead enrichment, website email extractor, lead scoring tool, apify contact scraper, email verification, tech stack detector, whatsapp extractor, ultimate leads alternative, b2b data enrichment api