Website Email Finder & Contact Details Scraper: Phones, Socials avatar

Website Email Finder & Contact Details Scraper: Phones, Socials

Pricing

from $2.80 / 1,000 sites

Go to Apify Store
Website Email Finder & Contact Details Scraper: Phones, Socials

Website Email Finder & Contact Details Scraper: Phones, Socials

Website email finder, email extractor and contact finder: the emails, phones and social profiles (LinkedIn, Facebook, Instagram, X, YouTube, TikTok) a company lists on its home, contact, about and imprint pages. For lead lists and AI agents. $0.004 per site, free when no email or phone is found.

Pricing

from $2.80 / 1,000 sites

Rating

0.0

(0)

Developer

Nebula Colors LLC

Nebula Colors LLC

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

2 days ago

Last modified

Share

Website Contact Finder: Emails, Phones, Social Links

Give it a list of company websites and get back the emails, phone numbers and social profiles each company publishes on its own site. It reads the home page and then the pages most likely to hold contact details: contact, imprint (Impressum), about, team, press and legal pages, in many languages. $0.004 per site, and only when an email or phone number is found. It works for people and for AI agents through Apify's MCP server.

What it's for

  • Lead lists: turn a list of company domains into emails, phone numbers and LinkedIn pages.
  • Enrich a CRM or a spreadsheet of accounts with the contact details each company shows publicly.
  • Give an AI agent a company's public contact details before it writes to them.

Input

FieldWhat to put
WebsitesOne per line, like basecamp.com or https://example.com/en/. Required.
Pages per siteHow many pages to read on each site, home page included. 10 by default, 10 at most. Contact-like pages are read first, so most sites take about 5. The price per site stays the same.
Max emails per site20 by default. Some sites list their whole staff; the company's own addresses and the ones on the home and contact pages come first.
Check emailsOff by default. Turn it on to check each email found: valid syntax, a mail server for its domain, and not a throwaway-address service. $0.0003 per email checked.
ProxyOff by default. Turn on Apify Proxy (datacenter) for sites that block cloud servers, or give your own proxy URLs. Residential proxies aren't available in this tool.

Example:

{
"urls": ["manufactum.de", "https://www.netventure.pl"]
}

Output

One row per website, in the order you gave them. This one came from a test run on October 17, 2026 (empty social lists left out here):

{
"type": "site",
"inputUrl": "manufactum.de",
"url": "https://manufactum.de/",
"finalUrl": "https://www.manufactum.de/",
"status": "ok",
"domain": "manufactum.de",
"companyName": "manufactum",
"emails": ["info@manufactum.de", "presse@manufactum.de", "behoerdenkontakt@manufactum.de", "produktsicherheit@manufactum.de", "behling@buse.de"],
"phones": ["+492309939050", "+492309939057", "+49230993900", "+492309939270"],
"facebook": ["https://www.facebook.com/manufactum"],
"instagram": ["https://www.instagram.com/manufactum"],
"pinterest": ["https://www.pinterest.com/manufactum"],
"emailSources": [
{ "email": "info@manufactum.de", "page": "https://www.manufactum.de/" },
{ "email": "presse@manufactum.de", "page": "https://www.manufactum.de/kontakt-c199446/" },
{ "email": "behoerdenkontakt@manufactum.de", "page": "https://www.manufactum.de/impressum-c199455/" },
{ "email": "produktsicherheit@manufactum.de", "page": "https://www.manufactum.de/impressum-c199455/" },
{ "email": "behling@buse.de", "page": "https://www.manufactum.de/impressum-c199455/" }
],
"emailsFound": 5,
"contactPage": "https://www.manufactum.de/kontakt-c199446/",
"pagesChecked": [
"https://www.manufactum.de/",
"https://www.manufactum.de/kontakt-c199446/",
"https://www.manufactum.de/pressekontakt-c199458/",
"https://www.manufactum.de/impressum-c199455/",
"https://www.manufactum.de/datenschutz-c199450/"
],
"charged": true,
"checkedAt": "2026-10-17T04:33:35.978Z"
}
  • emails: lowercase, the ones on the company's own domain first. Addresses on other domains are kept, after the company's own (in our test, 27% of them: parent companies, PR agencies, hotel groups). Placeholders (name@example.com), image names (logo@2x.png) and library paths (bootstrap@5.2.3) are left out. Addresses hidden by Cloudflare or written as "name [at] site [dot] com" are read.
  • phones: in international form. They come from phone links, the site's schema.org data and numbers written like phone numbers in the text. A number without a country code is read as the site's country (its country domain, else the US).
  • linkedin, facebook, instagram, x, youtube, tiktok, pinterest, github: the company's own profiles. Share buttons, single posts and the profiles of people its pages mention are left out.
  • companyName: the name the site gives itself in its metadata, as written, without a tagline after " | ", " - " or ": ". It can be empty.
  • emailSources: the page each email was found on. emailsFound says how many there were before Max emails per site.
  • emailChecks (with Check emails on): one entry per email with a verdict: ok (its domain takes mail), invalid (bad syntax, no such domain, or no mail server), disposable (a throwaway-address service) or unknown (DNS didn't answer, not charged), plus the reason and the domain's mail servers.
  • status: ok, no_contacts, blocked, dead, timeout, disallowed (by robots.txt) or error. A failed site has an error with the reason in plain words.

The run's SUMMARY record counts the sites with contact details, with none found and failed.

Price

  • $0.004 per site where at least one email or phone number is found, so $4 per 1,000. In a 50-site test, 37 had an email or phone and were charged.
  • A site with a phone number and no email is charged too.
  • $0.0003 for each email checked, only when you turn on Check emails. In our 50-site test the sites with an email had about 11 each, so checking them added about $0.003 a site; Max emails per site (20) caps it at $0.006. Emails DNS can't answer for aren't charged.
  • Free: sites with no email or phone (even if they show social profiles), and sites that fail, block the visit or that robots.txt disallows.
  • One row per website, never one per page: a site is charged once, however many pages were read.
  • You can set a maximum charge for a run. It stops when it's reached and keeps what it already found.

Good to know

  • What a test found. In a 50-site test: an email on 35 sites, a phone on 22, LinkedIn on 14, Facebook and Instagram on 27 each.
  • Only what the company publishes. It reads the company's own pages, the way a visitor would, and returns the contact details shown there. It doesn't guess addresses or look anywhere else.
  • Your use of the contacts. You're responsible for using them lawfully, for example under GDPR in the EU and CAN-SPAM in the US.
  • Staff directories. Some sites publish whole staff lists (up to 95 addresses in our test). Max emails per site keeps the first 20 by default, and emailSources shows which page each came from, so you can keep only the contact page's.
  • What the email check can't tell you. It doesn't send mail or connect to the mail server, so it can't say whether one mailbox exists, only that the domain takes mail. On the 362 emails from our 50-site test, all were on domains that take mail. On 29 known cases (typos, made-up domains, throwaway services, big mail providers) it got all 29 right.
  • No browser. It reads the pages a site serves, without running JavaScript. That's fast and cheap (50 sites in under 3 minutes in a test run), but a site whose pages are built entirely by JavaScript can show nothing. Those rows are free.
  • Blocked sites. Some sites block cloud servers (in a 50-site test, 4 refused the visit). Turning on Apify Proxy can help; those rows are free either way.
  • Polite. It reads each site's robots.txt and skips what it disallows, and reads one page of a site at a time. If no email or phone turns up on the contact-like pages, it reads the home page's other links, still within Pages per site.

Use it from an AI agent

The Actor works through Apify's MCP server like any Store Actor. An agent can find it, read its input and call it. The MCP call waits 30 seconds by default (45 at most), and a few sites finish in that time. A bigger list takes longer, so the call returns the run's status and dataset ID, and the agent reads the rows with get-dataset-items.

Questions or problems

Open an issue on this Actor's Issues tab. I read them.