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

2

Total users

1

Monthly active users

5 hours 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