B2B Website Contact, Email & Social Links Extractor
Pricing
Pay per usage
B2B Website Contact, Email & Social Links Extractor
Extract verified B2B emails, direct phone numbers, LinkedIn & social profiles, and addresses from any company website list. High-speed asynchronous crawler with Pay-Per-Event pricing. Perfect for sales, cold outreach, and CRM enrichment.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
SOHAM 45
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
16 days ago
Last modified
Categories
Features
Share
B2B Website Contact, Email & Social Links Extractor (Pay Per Result)
Extract verified business emails, phone numbers, LinkedIn & social media profiles, physical addresses, and company metadata from any list of company websites in seconds. Built on a lightweight HTTP/2 asynchronous architecture (httpx + BeautifulSoup/lxml) that requires zero headless browser overhead and charges only per enriched domain result.
What Does B2B Website Contact, Email & Social Links Extractor Do?
Given a list of target company URLs or domains, this Actor:
- Crawls the Company Homepage: Extracts company name, meta description, structured
Schema.orgPostalAddressrecords,mailto:andtel:links, and social media URLs. - Automatically Discovers High-Value Internal Pages: Finds and visits internal pages matching
/contact,/about,/team,/impressum,/legal, and/support(up tomaxPagesPerDomain). - Cleans & Deduplicates Business Emails: Uses RFC-compliant regex + DOM
mailto:parsing while automatically stripping false positives (.png,.jpg,.webp,.svg,sentry.io,wixpress.com,example.com, andnoreply@addresses) and sorting domain-matching business emails first. - Extracts Decision-Maker Social Links: Captures clean company and profile URLs for LinkedIn, X (Twitter), Facebook, Instagram, YouTube, and GitHub (excluding share buttons and intent links).
Why Use This Scraper for B2B Lead Generation?
- Enrich CRM & Cold Outreach Lists: Turn raw domain lists from Google Maps, Apollo, Clay, Crunchbase, or directories into actionable contact records with direct emails, phone numbers, and LinkedIn company URLs.
- GDPR / DACH Impressum Ready: Specifically tuned to discover
/impressumand/legalpages on European websites where direct company emails, phone numbers, and registered addresses are legally required. - Ultra-Fast, Low-Compute Architecture: Runs on
httpx.AsyncClientwith HTTP/2 andlxmlinstead of heavy Chromium browsers—processing hundreds of domains in minutes on just 256MB–512MB RAM.
Cost of Usage & Pay-Per-Event (PPE) Pricing
This Actor uses Apify's transparent Pay-Per-Event (PPE) pricing model so you only pay for results delivered:
| Event Name | Price per Event | Cost per 1,000 Enriched Domains | When It Is Charged |
|---|---|---|---|
scraped-result | $0.002 USD | $2.00 USD | Charged once per successfully scraped domain record pushed to your dataset. |
- Zero Charge for Dead Websites: Unreachable domains, DNS failures, or SSL-broken sites are skipped and never charged.
- Zero Charge for Empty Email Domains (Optional): Enable
onlyWithEmails: trueto only push and pay for domains where at least one verified business email was extracted. - Spend Limit Protection: Set your maximum spend per run directly in the Apify Console. The Actor checks
charge_result.event_charge_limit_reachedafter every domain and exits cleanly the moment your budget cap is reached.
Input Parameters
| Field | Type | Default | Description |
|---|---|---|---|
startUrls | array (stringList) | ["https://apify.com", "https://news.ycombinator.com", "https://python.org"] | List of company URLs or domains to crawl and enrich. |
maxPagesPerDomain | integer | 5 | Maximum number of pages to visit per domain (1 = homepage only; 2–20 = homepage + discovered /contact, /about, /team, /impressum, /legal, /support pages). |
onlyWithEmails | boolean | false | When true, domains without any extracted business emails are skipped (not saved to the dataset and not charged). |
proxyConfiguration | object | {"useApifyProxy": false} | Optional Apify Proxy or custom proxy configuration for protected targets. |
Sample JSON Output
Each enriched domain pushed to the default Dataset follows this structured schema:
{"domain": "apify.com","companyName": "Apify","emails": ["hello@apify.com","support@apify.com"],"phones": ["+1 (415) 890-6193"],"socialLinks": {"linkedin": "https://www.linkedin.com/company/apify","twitter": "https://x.com/apify","facebook": "https://www.facebook.com/apifytech","instagram": null,"youtube": "https://www.youtube.com/@apify","github": "https://github.com/apify"},"addresses": ["Vodickova 704/36, 110 00 Prague 1, Czech Republic"],"metaDescription": "Cloud platform for web scraping, browser automation, AI agents, and data for AI.","sourceUrl": "https://apify.com","pagesScraped": 5,"visitedUrls": ["https://apify.com","https://apify.com/contact","https://apify.com/about","https://apify.com/privacy-policy","https://apify.com/terms-of-use"],"scrapedAt": "2026-10-26T14:20:00.000000+00:00"}
Frequently Asked Questions (FAQ)
1. How many internal pages should I set in maxPagesPerDomain?
Setting maxPagesPerDomain to 5 (the default) provides the best balance between speed and contact coverage. It crawls the homepage plus the top 4 discovered contact/about/impressum pages.
2. Does this Actor work with Clay, Make, n8n, and Zapier?
Yes. You can trigger b2b-contact-email-social-scraper via the Apify API or native integrations in Clay, Make, n8n, and Zapier, passing a single company URL or batches of thousands of URLs and receiving clean JSON output.
3. What happens if a website blocks standard requests or has a broken SSL certificate?
The scraper automatically rotates realistic desktop User-Agents, follows redirects, falls back gracefully on SSL errors, and logs unreachable websites without crashing your batch run. For heavily protected sites, enable Apify Proxy in proxyConfiguration.