📧 Contact Details Extractor
Pricing
Pay per event
📧 Contact Details Extractor
Extract emails, phone numbers, and social media links from any webpage. Filters junk patterns, parses JSON-LD contacts. No browser needed - fast HTTP-only scraping for lead generation.
Pricing
Pay per event
Rating
0.0
(0)
Developer
太郎 山田
Actor stats
0
Bookmarked
2
Total users
2
Monthly active users
18 hours ago
Last modified
Categories
Share
Extract emails, phone numbers, and social media links from any webpage. Filters junk, parses JSON-LD contacts. Fast HTTP-only scraping.
Store Quickstart
Start with the Quickstart template (5 demo sites). For lead generation, use Lead Gen template (500 URLs, high concurrency).
Key Features
- 📧 Email extraction — Regex + DOM scan, filters junk patterns (example@, noreply@)
- 📞 Phone number detection — International formats, with country context
- 🔗 Social media links — LinkedIn, Twitter/X, Facebook, Instagram, GitHub
- 🧩 JSON-LD contacts — Structured contact data from schema.org markup
- 🚫 Junk filtering — Excludes obvious placeholders and spam patterns
- ⚡ Bulk processing — Up to 500 URLs per run, HTTP-only (fast)
Use Cases
| Who | Why |
|---|---|
| Sales teams | Build outbound lead lists from industry directories |
| Recruiters | Find hiring manager contacts from company sites |
| Marketing agencies | Compile contact databases for campaign targeting |
| B2B platforms | Enrich company profiles with verified contact info |
| Investigation teams | Gather public contact info for due diligence |
Input
| Field | Type | Default | Description |
|---|---|---|---|
| urls | string[] | (required) | URLs to extract from (max 500) |
| concurrency | integer | 5 | Parallel requests (1-10) |
Input Example
{"urls": ["https://example.com/contact", "https://company.com/about"],"concurrency": 5}
Output
| Field | Type | Description |
|---|---|---|
url | string | Page URL scanned |
emails | string[] | Unique email addresses found |
phones | string[] | Unique phone numbers (E.164 format where possible) |
socialLinks | object | Social profile URLs by platform |
socialLinks.twitter | string[] | Twitter/X profile URLs |
socialLinks.linkedin | string[] | LinkedIn profile URLs |
socialLinks.facebook | string[] | Facebook page URLs |
scannedAt | string | ISO timestamp |
Output Example
{"url": "https://example.com/contact","emails": ["hello@example.com", "sales@example.com"],"phones": ["+1-555-0100"],"socialLinks": {"linkedin": "https://linkedin.com/company/example","twitter": "https://twitter.com/example"},"jsonLdContacts": [{"@type": "Organization", "telephone": "+1-555-0100"}]}
API Usage
Run this actor programmatically using the Apify API. Replace YOUR_API_TOKEN with your token from Apify Console → Settings → Integrations.
cURL
curl -X POST "https://api.apify.com/v2/acts/taroyamada~contact-details-extractor/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{ "urls": ["https://example.com/contact", "https://company.com/about"], "concurrency": 5 }'
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("taroyamada/contact-details-extractor").call(run_input={"urls": ["https://example.com/contact", "https://company.com/about"],"concurrency": 5})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
JavaScript / Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('taroyamada/contact-details-extractor').call({"urls": ["https://example.com/contact", "https://company.com/about"],"concurrency": 5});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Tips & Limitations
- Run against company About/Contact pages for highest hit rate.
- Combine with Email Deliverability Checker to filter out invalid addresses.
- Use for B2B lead enrichment, journalism, or compliance workflows.
- Respect GDPR/CCPA — contact data scraping has legal restrictions in many regions.
FAQ
Does it handle email obfuscation?
Basic obfuscation (at, dot, [at]) is detected. JavaScript-rendered emails or images are missed.
Is scraping contact info legal?
Public contact info on business sites is generally acceptable, but verify GDPR/CCPA compliance for EU/CA data usage.
Can it find contacts behind login walls?
No — only publicly accessible pages. Authentication is not supported.
How accurate is phone detection?
90%+ for international formats. US/EU/UK numbers most accurate. Verify before dialing.
Does it find emails hidden in images?
No — text-based extraction only. OCR is not supported.
Will it bypass Cloudflare email protection?
It can decode the basic Cloudflare obfuscation, but not all anti-scraping protections.
Related Actors
Lead Generation & B2B cluster — explore related Apify tools:
- 📩 Email Validator — Validate email addresses in bulk: syntax, DNS MX lookup, disposable domain detection, deliverability score.
- 📞 Phone Number Validator — Validate and format phone numbers for 250+ countries using google-libphonenumber.
- Email Deliverability Portfolio Audit API — Audit SPF, DKIM, DMARC, MTA-STS, TLS-RPT, BIMI, and sender-readiness signals across domain portfolios with executive summaries and remediation guidance.
Cost
Pay Per Event:
actor-start: $0.01 (flat fee per run)dataset-item: $0.005 per output item
Example: 1,000 items = $0.01 + (1,000 × $0.005) = $5.01
No subscription required — you only pay for what you use.