Contact Details Scraper – (Emails, Phones & Socials)
Pricing
from $3.00 / 1,000 per domain scrapeds
Contact Details Scraper – (Emails, Phones & Socials)
Extract emails, phones, WhatsApp & 14 social profiles from any website. Supports direct URLs and natural-language search queries. MCP/API-ready.
Pricing
from $3.00 / 1,000 per domain scrapeds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
1
Bookmarked
138
Total users
25
Monthly active users
10 days ago
Last modified
Categories
Share
What is Contact Details Scraper?
Contact Details Scraper visits company websites and returns one row per domain with the contacts it finds: email addresses, phone numbers, WhatsApp links, social profiles such as LinkedIn, X, Facebook, Instagram, YouTube, TikTok and GitHub, postal addresses and the company name. Give it website URLs, or a search like dentists in Miami, and it crawls the contact, about and team pages first. Sales teams, agencies, recruiters, researchers and AI agents use it to turn a list of websites into contact details for outreach and CRM enrichment.
Why sales teams use it for website enrichment
- One clean row per company. Everything found across a site is merged into a single record per domain, ready for a spreadsheet or CRM.
- Contact pages first. Contact, about, team and imprint pages are crawled before the rest, so a small page budget still finds the useful details.
- Social profiles by network.
social_linksis keyed by network, so you can readsocial_links.linkedindirectly. - URLs or a search. Paste websites you already have, or type a business type and city and let the Actor find the websites.
- Your budget, your depth.
maxPagesPerDomain,maxDepthandmaxResultsdecide how thorough each run is.
How to use it
Enrich a list of company websites:
{"startUrls": [{ "url": "https://apify.com" },{ "url": "https://www.iana.org" }],"maxPagesPerDomain": 5,"maxDepth": 1}
Find websites from a search and collect their contacts:
{"searchQueries": ["dentists in Miami Florida"],"maxResults": 20,"maxPagesPerDomain": 5}
| Input | What it controls |
|---|---|
startUrls | Websites to scan, one record per domain |
searchQueries | Business type and location phrases; the Actor finds matching websites from web search |
maxPagesPerDomain | Pages to crawl on each site, from 1 to 50 (default 10) |
maxDepth | How many links deep to follow from the start page, from 0 to 5 (default 2) |
maxResults | Most domains to save in one run, from 1 to 500 (default 20) |
proxyConfig | Apify Proxy settings; datacenter suits most websites |
Use startUrls when you already know the companies; continue with searchQueries when you only know the niche and city.
Output: contact data you receive
A real row for a company website, collected from two pages:
{"domain": "apify.com","company_name": "Apify","emails": ["hello@apify.com", "support@apify.com"],"phones": [],"whatsapp": [],"social_links": {"discord": "https://discord.com/invite/jyEM2PRvMU","twitter": "https://x.com/apify","linkedin": "https://www.linkedin.com/company/apify","tiktok": "https://www.tiktok.com/@apifyoffice","github": "https://github.com/apify"},"addresses": ["Na Příkopě 959/27, Prague, 11000, CZ"],"pages_scraped": 2,"source_url": "https://apify.com/contact","scraped_at": "2026-10-01T00:12:51.264Z"}
| Field | What it contains |
|---|---|
domain, company_name | The website and the company name found on it |
emails | Email addresses published on the site, with placeholder and no-reply addresses filtered out |
phones, whatsapp | Phone numbers and WhatsApp links |
social_links | Social profiles keyed by network |
addresses | Postal addresses found on the pages |
pages_scraped, source_url | How many pages were read and where the scan started |
OUTPUT in the default key-value store reports the run outcome (COMPLETE or VALID_EMPTY) and how many domains were saved.
Example workflow: building an outreach list for an agency
A web design agency wants to pitch dental clinics in Miami. They run dentists in Miami Florida with maxResults set to 50 and maxPagesPerDomain set to 5. They keep domains where emails has at least one address, use social_links.instagram to see how active each clinic is, and load the list into their CRM. Then they pass the emails to Email Address Validator to keep only deliverable addresses before the first campaign.
Pricing
This Actor uses Pay per event. Apify platform usage is included in the event price, so you pay one event per domain saved plus one start event per run. The live Pricing tab on this page shows the current price.
- 50 domains = 50 domain events + 1 start event, however many pages each one needed.
maxResultscaps each run, so it doubles as a cost ceiling.maxPagesPerDomainchanges how thorough each domain is, not the price per domain.
Contact enrichment with AI agents (MCP)
Connect this Actor to an AI agent through Apify MCP and ask in plain language:
Find contact details for these 10 company websites. Return emails, phone numbers and LinkedIn pages for each, and list the companies that publish only social links.
Agent checklist:
- Put known websites in
startUrlsas{ "url": "..." }objects; put niche-and-city requests insearchQueries. - Keep
maxPagesPerDomainaround 5 for quick answers. - Read rows with
get-dataset-items; one row is one domain. - Read
OUTPUT.outcometo confirm the outcome before using the rows.
API example
curl -X POST "https://api.apify.com/v2/acts/khadinakbar~contact-details-scraper/run-sync-get-dataset-items" \-H "Authorization: Bearer $APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"startUrls": [{"url": "https://apify.com"}], "maxPagesPerDomain": 5, "maxDepth": 1}'
Related lead-generation tools from the same developer
| Your next step | Use | Why |
|---|---|---|
| When you then want to check which emails are deliverable | Email Address Validator | Syntax, mail server, disposable and role checks |
| When you want each company's LinkedIn page | LinkedIn Company Finder from Website | Website in, LinkedIn company URL out |
| When you search local businesses by category and city | Google Maps Scraper | Phones, ratings, reviews and opening hours from Google Maps |
| When you want scored leads for a niche | B2B Lead Finder | Companies with contacts and a lead score |
Best results
| Starting situation | Helpful action | Expected outcome |
|---|---|---|
| A CRM export of company websites | Paste them into startUrls | One contact row per company |
| Large corporate sites | Raise maxPagesPerDomain to 10 to 15 | More regional emails and phones |
| Small business sites | Keep maxPagesPerDomain around 5 | Quick runs that still reach the contact page |
| A niche with no list yet | Use searchQueries with a city, such as roofers Denver | Websites found and scanned in one run |
Builder's note
I found that most people want one tidy row per company rather than a list of every page crawled, so the Actor merges each site into a single record with social profiles keyed by network. I learned that the contact, about and team pages hold most published details, so they are crawled first and a small page budget goes a long way.
FAQ
Which email addresses does it collect?
The addresses a company publishes on its own website, such as sales, support or team addresses.
Why are some fields empty for a domain?
Many websites publish only a contact form or only social links. The row still shows whatever the site does publish, such as its social profiles.
What kinds of social profiles are returned?
LinkedIn, X, Facebook, Instagram, YouTube, TikTok, GitHub, Pinterest, Telegram, Discord, Reddit, Medium, Threads and Snapchat, each under its own key in social_links.
How do search queries work?
The Actor runs a web search for your phrase, takes the websites from the results, and scans each one like a URL you pasted. Directory sites can appear in the results too.
How many pages should I crawl per site?
About 5 suits most small business sites. Larger companies with regional offices can use 10 to 15.
Responsible use
This Actor collects contact details that companies publish on their public websites. Business contact data can still be personal data under laws such as the GDPR and CCPA, so use it with a lawful basis, follow CAN-SPAM and anti-spam rules for outreach, and honor opt-out requests. Read Apify's guide on whether web scraping is legal for more context. For questions or bugs, open a ticket in the Issues tab.