Business Email, Phone & Contact Details Scraper avatar

Business Email, Phone & Contact Details Scraper

Pricing

$0.005 / contact found

Go to Apify Store
Business Email, Phone & Contact Details Scraper

Business Email, Phone & Contact Details Scraper

Give it a list of website URLs and get back each business's contact details — email, phone, social profiles and postal address — de-obfuscated, classified, and flagged when an email is a franchise/corporate one instead of the business's own.

Pricing

$0.005 / contact found

Rating

0.0

(0)

Developer

ScrapeBench

ScrapeBench

Maintained by Community

Actor stats

0

Bookmarked

53

Total users

1

Monthly active users

5 days ago

Last modified

Categories

Share

Pain points

  • A lead list of company websites is useless for outreach without the contact details.
  • Email, phone, socials and address are scattered across contact/about/team pages — and emails are often obfuscated.
  • Naive scrapers return junk — template placeholders, tracking noise, franchise addresses.
  • Doing it by hand across hundreds of sites is a day of copy-paste.

What we solve

  • Turn any list of website URLs into full contact details — email, phone, social links and address — in one run.
  • Crawls the homepage plus contact/about/team pages and de-obfuscates common email tricks.
  • Filters template junk so you don't pay for garbage, and classifies each email.
  • Flags franchise/corporate email addresses so you know which is the local business.

Summary

Turn a list of website URLs into each business's contact details. For every site the actor crawls the homepage and its contact/about/team pages and pulls out the email (de-obfuscating the usual [at]/(dot)/HTML-entity tricks, throwing away template placeholders and tracking noise, and classifying each address as generic, role, or personal), the phone numbers (from tel: links and visible text), the social-profile links (Facebook, Instagram, LinkedIn, X/Twitter, YouTube, TikTok, and more), and a best-effort postal address (from JSON-LD, an address tag, or a street-address match). It also compares the email's domain to the site's, so a franchise/corporate address is flagged rather than passed off as the local business. Feed it a chamber list, a CRM export, a spreadsheet, or another scraper's output — platform-agnostic.

Who it's for

  • B2B sales and lead-gen teams enriching a list of company websites
  • Agencies preparing outreach lists
  • Recruiters and researchers who have URLs but need contacts
  • Anyone with a spreadsheet of websites and no contact details

How to use

Set the input, run the actor, and collect results from the run's dataset (export to JSON/CSV/Excel, or pull via the Apify API). Example input:

{
"urls": [
"https://basecamp.com",
"https://www.gitlab.com"
],
"maxPagesPerSite": 6
}

See Inputs below for every available field.

What you get

One row per record:

FieldDescription
websiteThe site crawled (after redirects)
emailsEmails found: {email, source_url, type (generic/role/personal), confidence (high/medium)}
phonesPhone numbers found (tel: links + visible text)
socialsSocial-profile links found: {platform, url}
addressBest-effort postal address (JSON-LD / address tag / street match), when published
email_domain_matches_websiteFalse = a franchise/corporate email, not this site's business
statusfound
source_urlThe input website

Sample:

{
"website": "https://acme-consulting.com",
"emails": [
{
"email": "info@acme-consulting.com",
"source_url": "https://acme-consulting.com/contact",
"type": "generic",
"confidence": "high"
},
{
"email": "jane@acme-consulting.com",
"source_url": "https://acme-consulting.com/team",
"type": "personal",
"confidence": "high"
}
],
"phones": [
"+1 (415) 555-0100"
],
"socials": [
{
"platform": "linkedin",
"url": "https://www.linkedin.com/company/acme-consulting/"
},
{
"platform": "facebook",
"url": "https://www.facebook.com/acmeconsulting"
}
],
"address": "123 Main St, Concord, CA, 94520",
"email_domain_matches_website": true,
"status": "found",
"source_url": "https://acme-consulting.com"
}

Inputs

FieldRequiredTypeDefaultDescription
urlsnoarray["https://www.apify.com"]The websites to crawl for contact details (email, phone, social links, address), e.g. ['https://acmeplumbing.com']. A bare domain is fine — 'http://' is assumed.
startUrlsnoarray[]Standard Apify URL list — an alternative to 'urls' (e.g. from a linked dataset or Google Sheet).
maxPagesPerSitenointeger6How many pages to crawl per site (homepage plus contact/about/team pages). More pages = higher hit rate, more compute.
proxyConfigurationnoobject{"useApifyProxy": false}Optional. Enable a proxy (e.g. residential) if target sites block the datacenter IP.

Pricing (Pay Per Event)

You pay per result (contact-found) — no charge for empty runs. Example: 200 websites with an email or phone at $0.005/result$1.00.

One charge per website that yields at least one email or phone number — social links and address are included free, and sites with no email/phone (or that are unreachable) cost nothing. Illustrative — the final per-site price is set at publish time. Apify platform compute is billed separately per your plan.

Use cases

  • Lead enrichment — turn a list of company websites into email, phone and social contacts.
  • Chamber/directory follow-up — feed member sites, get outreach details.
  • CRM hygiene — backfill missing contact details for accounts you already track.
  • Prospecting — extract role and personal contacts, phone and socials from a target account list.

Why this actor

  • Four contact types in one run — email, phone, social links and address — from any list of URLs.
  • No garbage — template placeholders and tracking noise filtered out before you pay.
  • Franchise-aware — off-domain corporate emails are flagged, not passed off as the local business.

Limitations & updates

Extracts contact details published on a website's own public pages (homepage + contact/about/team). Emails and social links are the most reliable; phone extraction covers tel: links and standard visible formats; postal address is best-effort (found when the site publishes it as JSON-LD, an address tag, or a recognizable US street address). It does not brute-force or guess, verify deliverability, or crawl login-walled platforms like Facebook/Instagram. Coverage depends on whether the business lists the detail at all.

FAQ

What do I give it?

A list of website URLs (urls), or a standard Apify start-URL list. A bare domain is fine — 'http://' is assumed.

What contact details does it return?

Per site: emails (classified generic/role/personal), phone numbers, social-profile links (Facebook, Instagram, LinkedIn, X/Twitter, YouTube, TikTok, and more), and a best-effort postal address.

How many pages does it crawl per site?

The homepage plus its contact/about/team pages, up to maxPagesPerSite (default 6). More pages = higher hit rate, more compute.

How am I charged?

One charge per website that yields at least one email or phone number. Social links and address are included free, and sites with no email/phone — or that are unreachable — cost nothing.

What's the franchise flag?

If the only email found is on a different domain than the site (e.g. a corporate customercare@brand.com on a franchisee's page), email_domain_matches_website is false so you can tell it apart from the local business.

Does it work on Facebook/Instagram pages?

No — social platforms wall their content behind login/JS challenges. Give it real business websites; the actor returns the social-profile URLs it finds linked on those sites.

Which actor to choose

Pairs with the chamber directory scraper:

  • Chamber of Commerce Member Directory & Business Leads Scraper — You want the businesses too — every member of a local chamber, with website and email.

Guides & use cases

Written up on scrapebench.dev — the bench that runs and verifies this actor against the live source every night:

More actors, coverage and nightly verification results: scrapebench.dev

Works with AI assistants (MCP)

Callable as an MCP tool, so Claude, Cursor, VS Code Copilot and other MCP clients can run it directly. Grab the config from the MCP tab on this page — Apify hosts the server and keeps that snippet current, and OAuth signs you in on first connect, so no API token goes in your config file.

Then just ask:

"Find the contact email and phone number on apify.com."

Pass one or more site URLs; it crawls a few pages per site looking for contact details, so a list of prospects works as well as a single site. Runs started this way bill exactly like any other run.