Website Contact Details Scraper — Emails, Phones, Socials
Pricing
from $1.60 / 1,000 website with contacts
Website Contact Details Scraper — Emails, Phones, Socials
Find e-mails, phone numbers, social profiles (LinkedIn, X, Facebook, Instagram, YouTube…) and addresses on any list of websites. Checks contact, imprint and about pages automatically. Pay only for websites where contacts are found.
Pricing
from $1.60 / 1,000 website with contacts
Rating
0.0
(0)
Developer
Tapaswai Ashok Choudhary
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
a day ago
Last modified
Categories
Share
Turn a list of websites into a contact list. For each website you get e-mail addresses, phone numbers, social profiles (LinkedIn, X/Twitter, Facebook, Instagram, YouTube, TikTok, GitHub), the company name, description and postal address, and the page where the contacts were found — as a clean, spreadsheet-ready table. Export to CSV or Excel, push to your CRM or Google Sheets, or call it as an API.
Built for sales and business-development teams building lead lists, marketers and agencies doing outreach, recruiters, and anyone enriching a list of company domains.
Why this scraper
- Finds contacts where they actually are. It reads the page you give, then picks the pages most likely to list contacts — Contact, Imprint / Impressum, Legal notice, About, Team — instead of crawling blindly. Five pages per site finds most contacts.
- Reads what simple scrapers miss. E-mails from links and text, e-mails hidden by common anti-spam protection, and the company's own structured data (the name, e-mail, phone and address a site publishes for search engines).
- Clean results, not noise. Image file names, placeholder addresses (
name@example.com), tracking ids and share buttons are filtered out. Phone numbers come in international format, duplicates removed, and the website's own e-mail addresses are listed first. - Pay only for results. Websites where nothing is found are free. Dead or unreachable domains are skipped in a second instead of wasting run time.
- Fast and cheap to run. A small native program — no browser — that runs in 256 MB and checks many websites in parallel. Platform usage for a typical run is a fraction of a cent.
- Handles rate limits for you. When a site says “slow down” (HTTP 429) the Actor waits as long as asked and adapts its speed; timeouts and dropped connections are retried automatically.
- Never loses or double-bills work. Each website is saved as soon as it's done; if the platform moves your run to another server it resumes without charging twice, and it stops cleanly at your maximum charge.
How to use it
- Paste websites into Websites — domains (
apify.com) or any page URL. - Optionally change Pages per website (default 5), tick Only the website's own e-mail addresses, or report only websites with an e-mail or a phone number.
- Press Start. Download the results from the Output tab, or connect an integration.
Example input
{"startUrls": ["apify.com", "zalando.de", "mailchimp.com"],"maxPagesPerSite": 5,"sameDomainEmailsOnly": false}
What you get
One row per website:
| Field | Description |
|---|---|
domain / url | The website and the page it was read from |
companyName / description | Company name and the site's own description |
primaryEmail / emails | Best e-mail (the site's own domain first) and every e-mail found |
primaryPhone / phones | First phone number and every number found, in international format where the site gives it |
linkedin / twitter / facebook / instagram / youtube / tiktok / github / vimeo | Social profile links |
address | Postal address, when the site publishes one |
contactPageUrl | The contact / imprint / about page where details were found |
pagesScraped / scrapedAt | Pages checked and when |
source | When reading another scraper's results: the original row's name, id, address, phone and link |
Example:
{"domain": "apify.com","url": "https://apify.com/","companyName": "Apify","primaryEmail": "support@apify.com","emails": ["support@apify.com", "hello@apify.com"],"linkedin": "https://www.linkedin.com/company/apify","twitter": "https://x.com/apify","github": "https://github.com/apify","tiktok": "https://www.tiktok.com/@apifytech","address": "Na Příkopě 959/27, Prague, 11000, CZ","contactPageUrl": "https://apify.com/contact","pagesScraped": 5}
Add contacts to another scraper's results
Already scraping businesses — from Google Maps, a directory, or any list that includes websites? Let this Actor enrich those results automatically:
- Open the other Actor (for example a Google Maps scraper) and go to its Integrations tab.
- Choose Add integration → Actor, pick Website Contact Details Scraper, and trigger it when the run succeeds.
- Done. After every run, each website in its results is checked for e-mails, phones and social profiles.
You can also run it by hand on any existing dataset: pick it under …or websites from another scraper's results.
The website column is found automatically (website, url, domain and similar; map, social-media and job-board links are skipped). If yours is called something else, set Website column. Every result carries a source object with the original row's name, id, address and phone, so you can join the contacts back to your list. Rows that share a website are checked once.
Only new websites
Working through a growing lead list? Turn on Only new websites and re-run with the whole list — websites an earlier run already delivered are skipped (and not charged).
Use it as an instant API
The Actor also runs in Standby mode — an always-ready endpoint that returns contacts straight in the response, ideal for enriching leads from your own app, CRM workflow or AI agent. Find the URL on the Standby tab:
curl "https://<standby-url>/?url=apify.com,zalando.de" \-H "Authorization: Bearer <YOUR_APIFY_TOKEN>"
Any input field works as a query parameter (url is shorthand; separate several websites with commas), or POST the full input as JSON. The response is {"success": true, "count": 2, "items": [ … ]}.
Pricing
Pay per result: about $2 per 1,000 websites with contacts found (lower on higher Apify plans) plus a tiny start fee. Websites with nothing found, and unreachable ones, cost nothing. See the Pricing tab for exact rates, and set a maximum charge per run to cap spend.
On Apify's free plan each run returns up to 100 websites — plenty to try everything. Any paid Apify plan removes the limit.
FAQ
Why is a website missing from the results? Nothing was found on it, or it couldn't be loaded — those are free and listed in the run's summary. Turn on Include websites with no contacts to get a row for every input.
Some sites return fewer details than I expected. A few websites block automated visitors or load contacts only with JavaScript. Try raising Pages per website, or turn on a proxy.
Is it legal? The Actor collects contact details that websites publish publicly. You're responsible for how you use them — follow the privacy and marketing laws that apply to you (e.g. GDPR, CAN-SPAM) before contacting anyone.
Support
Found a problem or need a field that isn't there yet? Open an issue on the Issues tab with the website and what you expected — requests genuinely decide what gets built next.