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.
Verification
Output fields
Authoritative field set from the dataset schema.
| Field | Type |
|---|---|
website | string|null |
emails | array|null |
phones | array|null |
socials | array|null |
address | string|null |
email_domain_matches_website | boolean|null |
status | string|null |
source_url | string|null |
scraped_at | string|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
| Field | Type | Req | Default | Description |
|---|---|---|---|---|
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