Website Contact Scraper - Emails, Phones & Social Profiles
Pricing
$5.00 / 1,000 results
Website Contact Scraper - Emails, Phones & Social Profiles
Find emails, phone numbers and social media profiles (LinkedIn, Facebook, Instagram, X, YouTube, TikTok and more) on any list of company websites. One clean row per website. Pay only for websites with contacts.
Pricing
$5.00 / 1,000 results
Rating
0.0
(0)
Developer
Frank0306
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Website Contact Scraper
Find email addresses, phone numbers and social media profiles on any list of company websites. Paste the websites, press Start, and get one clean row per company with every contact the website shows publicly. Sales teams, recruiters, agencies and researchers use it to turn a list of domains into a contact list for outreach, CRM enrichment or market research.
- One row per website. All emails, phones and profiles from the homepage, contact, about, imprint and team pages are merged and deduplicated.
- Pay only for websites with contacts. Websites that cannot be opened or show no contact details are saved for free, with a status that says why.
- Social profiles included. LinkedIn, Facebook, Instagram, X (Twitter), YouTube, TikTok, Pinterest, GitHub, WhatsApp and Telegram, without share buttons or post links.
- Works in many languages. It finds contact pages called Kontakt, Contacto, Contatti, Impressum, À propos, お問い合わせ, 联系我们 and many more.
- Clean data. Phone numbers in international format (+4930...), lowercased emails, junk such as
logo@2x.pngoruser@example.comremoved. - Low price. $5 per 1,000 websites with contacts. The number of pages read per website does not change the price.
What data can you get?
| Field | Example |
|---|---|
companyName | Tim Wendelboe Coffee |
primaryEmail | hello@timwendelboe.no |
emails | All email addresses found on the website |
ownDomainEmails | Only the emails on the company's own domain |
primaryPhone, phones | +4740004062 |
linkedIn, facebook, instagram, twitter, youtube, tiktok, pinterest, github, whatsapp, telegram | Profile links |
contactPageUrl | The website's contact page |
emailsFoundOn | Which page each email was found on |
title, description, language | Homepage title, meta description and language |
url, domain | The final address after redirects |
pagesCrawled | Every page the Actor read |
status | ok, noContacts, unreachable or blocked |
How to use it
- Click Try for free.
- Paste your websites into Websites. Domains like
example.comand full URLs both work, and you can paste a whole column from a spreadsheet at once. - Click Start.
- Download the results as CSV, Excel or JSON, or open the Overview and Social profiles tables in the Output tab.
Input examples
Scan a list of company websites with the default settings:
{"websites": ["timwendelboe.no", "https://www.sacher.com", "kofola.cz"]}
Read more pages per website, set the country for local phone numbers, and keep only websites with contacts:
{"websites": ["https://www.example-dental.com", "example-plumbing.co.uk"],"maxPagesPerWebsite": 20,"defaultCountry": "GB","includeEmptyResults": false}
Only check the homepage of each website, which is the fastest:
{"websites": ["coffeecollective.dk", "the-barn.de"],"maxDepth": 0}
Output examples
A website with contacts (shortened):
{"website": "https://timwendelboe.no/","url": "https://timwendelboe.no/","domain": "timwendelboe.no","status": "ok","companyName": "Tim Wendelboe Coffee","primaryEmail": "hello@timwendelboe.no","primaryPhone": "+4740004062","emails": ["hello@timwendelboe.no", "press@timwendelboe.no"],"ownDomainEmails": ["hello@timwendelboe.no", "press@timwendelboe.no"],"emailCount": 2,"phones": ["+4740004062"],"phoneCount": 1,"linkedIn": [],"facebook": ["https://www.facebook.com/TimWendelboeCoffee"],"instagram": ["https://www.instagram.com/timwendelboe"],"youtube": ["https://www.youtube.com/@TimWendelboeCoffee"],"socialCount": 5,"title": "Tim Wendelboe | Tim Wendelboe Coffee","description": "Tim Wendelboe is a coffee roastery, espresso bar and coffee training centre located in Oslo, Norway.","language": "en","contactPageUrl": "https://timwendelboe.no/pages/contact-us","emailsFoundOn": [{"email": "hello@timwendelboe.no", "pageUrls": ["https://timwendelboe.no/pages/contact-us", "https://timwendelboe.no/pages/our-team"]},{"email": "press@timwendelboe.no", "pageUrls": ["https://timwendelboe.no/pages/press"]}],"pagesCrawled": ["https://timwendelboe.no/","https://timwendelboe.no/pages/contact-us","https://timwendelboe.no/pages/about","https://timwendelboe.no/pages/press","https://timwendelboe.no/pages/our-team","https://timwendelboe.no/pages/data-sharing-opt-out"],"pagesCrawledCount": 6,"error": null,"scrapedAt": "2026-10-28T10:03:16Z"}
A website that refused the request (free, shortened):
{"website": "https://bookpeople.com/","status": "blocked","emails": [],"phones": [],"pagesCrawledCount": 0,"error": "the website refused automated requests (HTTP 403)","scrapedAt": "2026-10-28T10:01:50Z"}
Each run also saves a Run summary (in the Output tab) with the number of websites per status and the list of websites without contacts.
How much does it cost?
You pay $5.00 per 1,000 websites with contacts ($0.005 per website). A website counts when at least one email, phone number or social profile was found. Websites that could not be opened, were blocked or had no contacts cost nothing. There is no start fee and no monthly rental, and reading more pages per website does not cost more.
| Run | Websites with contacts | Cost |
|---|---|---|
| 100 websites | about 85 | about $0.43 |
| 1,000 websites | about 850 | about $4.25 |
| 10,000 websites | about 8,500 | about $42.50 |
The share of websites with contacts depends on your list. In our tests with about 110 real company websites from 20 countries, 85% had contacts. Set a maximum charge per run in the run options and the Actor stops when it is reached.
Limits you should know
- Some websites block automated visitors. In our tests about 8% of websites answered with a bot check or "access denied" (Cloudflare, Sucuri and similar). These come back with status
blockedand are free. The Actor already retries them once through another server address, which rarely gets past strong bot protection. - JavaScript-only websites give fewer results. The Actor reads the HTML that the server sends and does not run a browser. Websites built entirely in JavaScript show almost nothing to it. In our tests this was about 4% of websites. They come back as
noContactswith a note inerror. - It reads contact-like pages, not the whole website. The homepage plus pages such as contact, about, imprint, team, legal and support, up to Max pages per website (default 10). Emails that appear only in blog posts or deep product pages can be missed.
- Emails of other companies can appear. Imprint pages often name the web agency or the parent company, and some pages show the email of a partner. Use
ownDomainEmailswhen you only want the company's own addresses. Typing mistakes on the website are kept as they are. - Phone numbers are read carefully. To avoid order numbers, tax IDs and dates, a number is kept only when it is a link, has a phone label nearby (Tel, Phone, Telefon...), starts with + or 00, or is written in phone-style groups. Local numbers are read with the country of the domain ending (.de, .fr, ...) or the page language, so a
.comwebsite with local numbers from another country may need Country for phone numbers. Fax numbers are skipped. - Emails are not verified. The Actor reports addresses as the website shows them. It does not check whether a mailbox exists.
- Speed. About 10 to 15 websites per minute with the default settings. Each website is read politely, one page after another.
Tips
- Start with the default 10 pages. Contact details are almost always on the homepage, contact page or imprint, and the Actor opens those first.
- Use
primaryEmailfor mail merges. It picks the company's own general address (info@, contact@, hello@ and similar) when there is one. - Use the free status rows. Filter by
statusto find websites that are down (unreachable) or need another approach (blocked). - Combine it with a list source. Feed it websites from Google Maps, directory or search results to build a full lead list.
FAQ
Is it legal? The Actor only reads pages that every visitor can see without logging in. Business contact details can still be personal data, for example a named employee's email. You are responsible for using the results lawfully: have a legitimate reason to process the data under the GDPR and similar laws, and follow anti-spam rules such as CAN-SPAM and the ePrivacy rules before sending marketing emails.
Does it find emails that are hidden? It decodes common protections: Cloudflare email protection, HTML entities, addresses written as name [at] company [dot] com, and addresses inside page data.
Can I get one row per email instead of per website? Not in this version. Each row lists every email in emails and emailsFoundOn, and the CSV export puts them in separate columns.
Something is broken or missing? Open a ticket in the Issues tab. Issues are usually answered within a day.