Contact Details Scraper: Emails, Phones & Social Profiles avatar

Contact Details Scraper: Emails, Phones & Social Profiles

Pricing

from $1.50 / 1,000 website with contacts

Go to Apify Store
Contact Details Scraper: Emails, Phones & Social Profiles

Contact Details Scraper: Emails, Phones & Social Profiles

Get the contact details of any list of websites: e-mails, phone numbers and social media links (LinkedIn, Facebook, Instagram, X, YouTube, TikTok) from the homepage, contact and Impressum pages. No browser, robots.txt respected. Pay per website where contacts are found, plus a small start fee.

Pricing

from $1.50 / 1,000 website with contacts

Rating

0.0

(0)

Developer

PlainRows

PlainRows

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 hours ago

Last modified

Share

Paste a list of websites and get the contact details each one publishes: e-mail addresses, phone numbers and social media links (LinkedIn, Facebook, Instagram, X, YouTube, TikTok), one clean row per website. The homepage is read first; when it shows no e-mail, up to two contact, imprint or legal pages linked from it are read too (the imprint or legal notice is always read, to respect objections written there). Up to 10,000 websites per run.

No browser, no proxies: plain HTTP requests, 10 websites at a time, a few seconds each, robots.txt respected. You pay only per website where contact details were found, plus $0.002 per run start. Websites with nothing found, unreachable sites and sites that object to solicitation are free.

Same code as our Website Email Extractor, presented for contact details. Starting from business names or a Google Maps search instead of websites? Use Google Maps Email Extractor.

Typical uses

  • Lead lists: turn a list of company websites (from a CRM export, a directory, Google Maps or a tech-stack search) into contact info: e-mails, phone numbers and LinkedIn pages.
  • Agencies and freelancers: find how to reach the small businesses you want to pitch, by e-mail, phone or social media.
  • CRM enrichment: fill missing e-mails, phones and social media links for the accounts you already have.
  • Automations and AI agents: feed n8n, Make, Zapier, Google Sheets, HubSpot or an MCP client with structured JSON.

What you get for each website

FieldDescription
domainThe website read (your input, normalized to its domain)
email, emailsFirst e-mail and all e-mails found (up to 10), the site's own domain first
phonesPhone numbers from tel: links and structured data (up to 5)
facebookUrl, instagramUrl, linkedinUrl, xUrl, youtubeUrl, tiktokUrlSocial media profiles linked from the site
pagesCheckedPages read on the site
status, messageFOUND (billed), or why not: NONE_FOUND, NO_EMAIL (with onlyWithEmail), OPTED_OUT, DUPLICATE_SITE (another input of the run redirects to the same website), DNS_NOT_FOUND, TIMEOUT, HTTP_ERROR, BLOCKED_BY_BOT_PROTECTION, ROBOTS_TXT_DISALLOWED... (free)
found, optOut, observedAtWhether contact details were found, whether the site objects to solicitation, when it was read (UTC)

Missing values are null (lists are empty), never guessed. One row per website, in the dataset view Contacts as a ready-to-export table.

Input

{
"domains": ["russanddaughters.com", "https://www.levainbakery.com/contact", "bigsurbakery.com"],
"onlyWithEmail": false
}
  • domains: one website per line, as a domain or any URL of the site (it is reduced to its domain). Up to 10,000 per run; duplicates are removed and invalid lines are listed in the run summary.
  • onlyWithEmail (default off): by default, a website with only a phone number or social media links is returned and billed like any website with contact details. Turn this on to return and bill only websites where at least one e-mail was found; the others come back as free rows (NO_EMAIL).

Output example

Real row from a run on 2026-10-14 (input russanddaughters.com, a New York shop):

{
"domain": "russanddaughters.com",
"found": true,
"email": "info@russanddaughters.com",
"emails": [
"info@russanddaughters.com"
],
"phones": [
"2124754880"
],
"facebookUrl": null,
"instagramUrl": "https://www.instagram.com/russanddaughters",
"linkedinUrl": null,
"xUrl": null,
"youtubeUrl": null,
"tiktokUrl": null,
"pagesChecked": [
"https://russanddaughters.com/"
],
"optOut": false,
"status": "FOUND",
"message": null,
"observedAt": "2026-10-14T08:32:00.390Z",
"schemaVersion": "1.0"
}

How the contact details are found

  • At most 3 pages per website: the homepage, then, when it shows no e-mail, up to two pages linked from it whose link or address says contact, imprint or legal (team, people and about pages are skipped); when the homepage shows an e-mail, only its imprint or legal notice, where objections to solicitation are usually written. Pages are read without JavaScript, within about 75 seconds per site (45 s for the homepage, 15 s per extra page).
  • robots.txt is respected, private network addresses are refused, pages over 2 MB are cut, bot-protection pages are reported as BLOCKED_BY_BOT_PROTECTION (free).
  • A site that objects to solicitation or to the commercial use of its contact details (English, German, French notices) returns no contact (OPTED_OUT) and is not billed.
  • Only what the website itself publishes: no guessed e-mail patterns, no personal-data lookups elsewhere, no verification by sending mail.

Pricing

See the Pricing tab for current prices, cheaper on higher Apify plans:

  • one event per website where contact details were found (all its e-mails, phones and social media links included); with onlyWithEmail, only websites with an e-mail are billed;
  • $0.002 per run start.

Websites with nothing found, unreachable or blocked sites, sites that object to solicitation, duplicates and input mistakes cost nothing beyond the start fee. The run never spends more than the maximum cost you set.

Free Apify plan: each run reads up to 10 websites, so you can check the output. A paid Apify plan removes this limit.

Use it from code, automations or AI agents

API (one call, results returned directly):

curl -X POST "https://api.apify.com/v2/acts/plainrows~contact-details-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"domains": ["russanddaughters.com", "bigsurbakery.com"]}'

n8n, Make, Zapier: use the Apify integration, pick plainrows/contact-details-scraper, and map the dataset items to Google Sheets, HubSpot, Airtable or your database.

AI agents (MCP): add https://mcp.apify.com?tools=plainrows/contact-details-scraper to Claude, Cursor or any MCP client. The agent gets a typed tool and pays per result.

What this is not

  • Not an e-mail finder by person name and not an e-mail verifier: only contact details the website publishes.
  • Not a crawler: at most 3 pages per site. Contact details shown only after JavaScript runs, or deep inside a site, are not found.
  • You are responsible for how you contact the businesses: follow the anti-spam and privacy rules of your country and theirs (for example CAN-SPAM, GDPR).

Run summary

Each run stores a summary in the key-value store (OUTPUT): websites with contact details (billed), websites by status (nothing found, opted out, unreachable...), duplicates and invalid lines, and anything skipped because of the free-plan or budget limit.

FAQ

How do I scrape contact details from a list of websites? Paste the websites, one per line, and run. Each website comes back with its e-mails, phone numbers and social media links; download as CSV or Excel from the run page, or send them to Google Sheets or your CRM with n8n, Make or Zapier.

Why do some websites have no e-mail? Many sites publish only a contact form, or load their contact details with JavaScript. Those come back as NONE_FOUND and are not billed. A site with only a phone number or social media links is billed as a site with contact details, unless you turn on onlyWithEmail.

I only have business names or a Google Maps search, not websites. Use Google Maps Email Extractor: it finds the businesses on Google Maps and reads their websites in the same run.

What is the difference with Website Email Extractor? None in the data: Website Email Extractor runs the same code at the same price. Use either one.

Do I need proxies or a browser? No. Pages are read with plain HTTP requests from Apify's servers.

More PlainRows tools

Same pay-per-result pricing, same clean JSON, built to chain together in n8n, Make, Zapier or AI agents.

Support

Missing a field or found a bug? Open an issue on this page. Issues are read and answered.