← Health board

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.

100%golden-diff pass
Run it on Apify verified nightly

Verification

100%golden-diff success
327canary runs
0days since last canary run

Output fields

Authoritative field set from the dataset schema.

FieldType
websitestring|null
emailsarray|null
phonesarray|null
socialsarray|null
addressstring|null
email_domain_matches_websiteboolean|null
statusstring|null
source_urlstring|null
scraped_atstring|null

Sample row

{
  "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

FieldTypeReqDefaultDescription
urls array no ["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.
startUrls array no [] Standard Apify URL list — an alternative to 'urls' (e.g. from a linked dataset or Google Sheet).
maxPagesPerSite integer no 6 How many pages to crawl per site (homepage plus contact/about/team pages). More pages = higher hit rate, more compute.
proxyConfiguration object no {"useApifyProxy":false} Optional. Enable a proxy (e.g. residential) if target sites block the datacenter IP.

Pricing

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

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.

Guides & use cases

Related actors