Contact Details Scraper – (Emails, Phones & Socials) avatar

Contact Details Scraper – (Emails, Phones & Socials)

Pricing

from $3.00 / 1,000 per domain scrapeds

Go to Apify Store
Contact Details Scraper – (Emails, Phones & Socials)

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

Khadin Akbar

Maintained by Community

Actor stats

1

Bookmarked

138

Total users

25

Monthly active users

10 days ago

Last modified

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_links is keyed by network, so you can read social_links.linkedin directly.
  • 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, maxDepth and maxResults decide 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
}
InputWhat it controls
startUrlsWebsites to scan, one record per domain
searchQueriesBusiness type and location phrases; the Actor finds matching websites from web search
maxPagesPerDomainPages to crawl on each site, from 1 to 50 (default 10)
maxDepthHow many links deep to follow from the start page, from 0 to 5 (default 2)
maxResultsMost domains to save in one run, from 1 to 500 (default 20)
proxyConfigApify 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"
}
FieldWhat it contains
domain, company_nameThe website and the company name found on it
emailsEmail addresses published on the site, with placeholder and no-reply addresses filtered out
phones, whatsappPhone numbers and WhatsApp links
social_linksSocial profiles keyed by network
addressesPostal addresses found on the pages
pages_scraped, source_urlHow 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.
  • maxResults caps each run, so it doubles as a cost ceiling.
  • maxPagesPerDomain changes 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:

  1. Put known websites in startUrls as { "url": "..." } objects; put niche-and-city requests in searchQueries.
  2. Keep maxPagesPerDomain around 5 for quick answers.
  3. Read rows with get-dataset-items; one row is one domain.
  4. Read OUTPUT.outcome to 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}'
Your next stepUseWhy
When you then want to check which emails are deliverableEmail Address ValidatorSyntax, mail server, disposable and role checks
When you want each company's LinkedIn pageLinkedIn Company Finder from WebsiteWebsite in, LinkedIn company URL out
When you search local businesses by category and cityGoogle Maps ScraperPhones, ratings, reviews and opening hours from Google Maps
When you want scored leads for a nicheB2B Lead FinderCompanies with contacts and a lead score

Best results

Starting situationHelpful actionExpected outcome
A CRM export of company websitesPaste them into startUrlsOne contact row per company
Large corporate sitesRaise maxPagesPerDomain to 10 to 15More regional emails and phones
Small business sitesKeep maxPagesPerDomain around 5Quick runs that still reach the contact page
A niche with no list yetUse searchQueries with a city, such as roofers DenverWebsites 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.