
Contact Details Scraper
Pricing
$4.50 / 1,000 successes

Contact Details Scraper
An Apify actor that crawls any website to extract contact details and social media profiles. This tool can extract emails, phone numbers, and profiles from LinkedIn, Twitter, Instagram, Facebook, YouTube, TikTok, Pinterest, Discord, Snapchat, Threads, and Telegram.
5.0 (1)
Pricing
$4.50 / 1,000 successes
0
3
3
Last modified
14 hours ago
An Apify actor that crawls any website to extract contact details and social media profiles. This tool can extract emails, phone numbers, and profiles from LinkedIn, Twitter, Instagram, Facebook, YouTube, TikTok, Pinterest, Discord, Snapchat, Threads, and Telegram.
Fair and affordable, pay only for found results
Pay-Per-Result Model
- $0.0045 per successful result (only charge when contact details are found)
- $4.50 per 1,000 successful results
Features
- Comprehensive Contact Extraction: Extracts emails and phone numbers from both HTML attributes and page text
- Social Media Profile Detection: Finds profiles across 11+ social media platforms
- Smart Crawling: Respects domain boundaries and crawl depth limits
- Deduplication: Automatically removes duplicate contacts across all crawled pages
- Aggregated Results: Provides both individual page results and a consolidated summary
- Configurable: Flexible input options for different crawling scenarios
Extracted Data Types
Contact Information
- Email addresses: From mailto links and text content
- Phone numbers: From tel: links (reliable) and text extraction (may include false positives)
Social Media Profiles
- LinkedIn profiles
- Twitter/X handles
- Instagram profiles
- Facebook profiles and pages
- YouTube channels
- TikTok profiles
- Pinterest profiles
- Discord servers/invites
- Snapchat profiles
- Threads profiles
- Telegram channels/groups
Input Configuration
Required Parameters
- startUrls (array): List of URLs to start crawling from
Optional Parameters
- maxCrawlDepth (integer, default: 1): How many levels deep to crawl links (conservative)
- stayWithinDomain (boolean, default: true): Only follow links within the same domain
- maxCrawlPages (integer, default: 40): Maximum number of pages to crawl (conservative limit)
- extractFromText (boolean, default: true): Extract phone numbers from text (may have false positives)
- headless (boolean, default: true): Run browser in headless mode
- waitForSelector (string): CSS selector to wait for before extracting
- waitForLoadState (string, default: 'domcontentloaded'): Load state to wait for
- proxyConfiguration (object): Proxy settings
Example Input
{"startUrls": [{ "url": "https://example.com" },{ "url": "https://company.com/about" }],"maxCrawlDepth": 1,"stayWithinDomain": true,"maxCrawlPages": 40,"extractFromText": true,"proxyConfiguration": {"useApifyProxy": true}}
Output Format
The actor provides two types of output:
1. Individual Page Results
Each crawled page generates a result with:
{"url": "https://example.com/contact","domain": "example.com","depth": 1,"originalStartUrl": "https://example.com","referrerUrl": "https://example.com","emails": ["contact@example.com"],"phones": ["+1234567890"],"phonesUncertain": ["123.456.7890"],"linkedIns": ["https://linkedin.com/company/example"],"twitters": ["https://twitter.com/example"],"instagrams": ["https://instagram.com/example"],"facebooks": ["https://facebook.com/example"],"youtubes": [],"tiktoks": [],"pinterests": [],"discords": [],"snapchats": [],"threads": [],"telegrams": []}
2. Aggregated Summary
A deduplicated summary of all found contacts stored in AGGREGATED_RESULTS
:
{"crawlSummary": {"totalPages": 25,"totalResults": 25,"maxDepth": 2,"stayWithinDomain": true,"startUrls": ["https://example.com"]},"aggregatedResults": {"emails": ["contact@example.com", "info@example.com"],"phones": ["+1234567890"],"phonesUncertain": ["123.456.7890"],"linkedIns": ["https://linkedin.com/company/example"],// ... other social profiles},"totalContacts": {"emails": 2,"phones": 1,"phonesUncertain": 1,"linkedIns": 1,// ... counts for each type}}
Usage Tips
- Start with key pages: Include contact pages, about pages, and team pages in your start URLs for best results
- Adjust crawl depth: Use depth 0 for specific pages only, or 2-3 for broader discovery
- Domain restrictions: Keep
stayWithinDomain
true to avoid crawling external sites - Phone extraction: Set
extractFromText
to false if you're getting too many false positive phone numbers - Performance: Use appropriate
maxCrawlPages
limits to control execution time and costs
Technical Notes
- Uses Playwright for robust page rendering and JavaScript execution
- Employs Cheerio for enhanced HTML parsing and extraction
- Implements intelligent URL normalization and deduplication
- Handles failed requests gracefully with error reporting
- Supports proxy rotation for large-scale crawling
Limitations
- Phone number extraction from text may include false positives
- Some social media profiles may require specific URL patterns to be detected
- JavaScript-heavy sites may need additional wait conditions
- Rate limiting may apply for large crawls
Legal Considerations
Be aware that extracting contact information may involve personal data protected by GDPR and other privacy regulations. Ensure you have legitimate reasons for collecting this data and comply with applicable laws.
Pricing
This actor uses a Pay-per-Result pricing model - you only pay for pages that successfully extract contact information!
- $4.50 per 1,000 successful results
- Only pages with contact details count - no payment for empty pages
- 20% cheaper than competitors who charge per page regardless of results
- Better value - you pay for actual data, not failed attempts
Cost Examples:
- 40 pages with 25 successful extractions: $0.11 (25 × $0.0045)
- 100 pages with 60 successful extractions: $0.27 (60 × $0.0045)
- 1,000 pages with 400 successful extractions: $1.80 (400 × $0.0045)
The free tier includes $5 in credits, allowing you to extract contact details from approximately 1,111 successful pages.
Support
For issues, feature requests, or questions about this actor, please refer to the Apify documentation or community forums.
On this page
Share Actor: