Business Email, Phone & Contact Details Scraper
Pricing
$0.005 / contact found
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
Maintained by CommunityActor 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:
| Field | Description |
|---|---|
website | The site crawled (after redirects) |
emails | Emails found: {email, source_url, type (generic/role/personal), confidence (high/medium)} |
phones | Phone numbers found (tel: links + visible text) |
socials | Social-profile links found: {platform, url} |
address | Best-effort postal address (JSON-LD / address tag / street match), when published |
email_domain_matches_website | False = a franchise/corporate email, not this site's business |
status | found |
source_url | The 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
| Field | Required | Type | Default | Description |
|---|---|---|---|---|
urls | no | array | ["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 | no | array | [] | Standard Apify URL list — an alternative to 'urls' (e.g. from a linked dataset or Google Sheet). |
maxPagesPerSite | no | integer | 6 | How many pages to crawl per site (homepage plus contact/about/team pages). More pages = higher hit rate, more compute. |
proxyConfiguration | no | object | {"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:
- How-to: How to run Business Email, Phone & Contact Details Scraper
- Use case: Find contact details for a list of company websites
More actors, coverage and nightly verification results: scrapebench.dev