kazkndata

Home / Actors / Contact Details Scraper for Websites

Contact Details Scraper: Emails, Phones and Social Links per Website

This contact details scraper visits each website on your list, reads the home page plus its contact, imprint, legal and about pages, and returns the email addresses, phone numbers, social profile links and company name it finds there, each email and phone tied to the page it came from. It is made for sales teams, agencies, researchers, recruiters and developers who already know which companies they want to reach and need their public contact channels in a spreadsheet or through an API.

Run it on Apify
  • $0.60 per 1,000 results
  • 1 user in the last 30 days
  • Export: JSON, CSV, Excel, API
Real output row · Contact Details Scraper for Websites · run of 2026-11-08
domain
adsy.com
inputUrl
adsy.com
status
ok
statusReason
3 page(s) read
billed
True
pagesCrawled
3
emails
s•••@adsy.com, c•••@adsy.com
phones
+134••• ••••, +442••• ••••
linkedin
https://www.linkedin.com/company/adsy

What you get

  • domain Normalized website domain, one row per domain
  • inputUrl The URL or domain exactly as you supplied it
  • status Outcome for the site: ok, no_contacts, blocked, js_only, not_found or error
  • billed True only when the row was charged as a result
  • emails Cleaned, deduplicated email addresses found on the site
  • emailTypes Each email labeled generic (info@, sales@) or personal, by naming rules
  • emailSourcePages For each email, the first page where it appeared
  • phones Phone numbers in E.164 format, such as +17195425631
  • phoneSourcePages For each phone number, the first page where it appeared
  • linkedin LinkedIn profile URL linked from the site, or null
  • facebook Facebook page URL, or null
  • instagram Instagram profile URL, or null
  • twitter X/Twitter profile URL, or null (youtube and tiktok have their own fields too)
  • contactPageUrl The contact page discovered during the crawl, if any
  • companyName Organization or site name when the pages provide it

What people use it for

Enrich a list of prospect domains

Export the company websites from your CRM or a trade show list and paste them into the actor as bare domains or full URLs. Each domain comes back as a single row with its emails, phones and social links, ready to import back against the same domain. Sites where nothing was found are flagged with a status instead of being dropped, so you know which ones to research by hand.

Build a local business contact sheet

Collect the websites of plumbers, clinics, law firms or other local businesses from a directory or a maps export. Run them through the actor and filter the CSV on the phones column to get callable numbers in one consistent E.164 format. The phoneSourcePages column shows which page each number came from, which helps spot a partner's or another branch's number.

Keep only company mailboxes for outreach

Turn on the generic-only filter to drop addresses that look like a named person and keep role inboxes such as info@, contact@ or sales@. Add the same-domain filter to remove agency or partner addresses mentioned on the pages. This gives you a shorter list and limits the personal data you store.

Find imprint and legal pages for compliance checks

For German, Austrian, Swiss and French domains, the actor also tries the usual imprint and legal notice paths, where company names and official addresses are often published. The contactPageUrl, legalPageUrl and companyName columns let a reviewer open the right page directly instead of hunting through each site.

Who it is for

  • Sales and business development teams who add emails, phones and LinkedIn pages to a list of target company websites
  • Marketing and lead generation agencies who enrich client prospect lists without opening every site by hand
  • Recruiters who need the public contact address or careers contact of a set of employers
  • Market and academic researchers who build a contact directory for a sector, region or supplier list
  • Developers who call the actor from Python, n8n or their own app to enrich domains stored in a CRM

How to run it

  1. Open Contact Details Scraper for Websites on Apify (apify.com/kazkn/website-contact-details-scraper) and sign in or create a free Apify account.
  2. Paste your websites into the Websites field, one per line. Bare domains like example.com and full URLs both work, and duplicates such as www.example.com and example.com are merged.
  3. Optionally set the maximum websites, the pages to read per website (1 to 20, default 5) and the generic-only or same-domain email filters.
  4. Click Start and wait for the run to finish. Each website appears as one row in the Output tab with its status and the contacts found.
  5. Export the dataset as CSV, JSON or Excel from the run page, or fetch the rows with the Apify API or the Python and JavaScript clients.

Pricing

You pay per result, through your Apify account: $0.60 per 1,000 results at the time of writing (2026-11-08). No subscription to this actor. Apify's free plan includes monthly platform credit, enough to test it. The current price is always the one shown on the Apify page.

Questions

Is it legal to scrape email addresses and phone numbers from websites?

The actor only reads pages that are publicly reachable and returns details the site owner published. Public does not mean free of rules: an address belonging to a named person is still personal data under laws such as GDPR, and marketing laws may restrict how you contact people. You are responsible for having a valid reason to collect and use the data and for respecting each site's terms; the generic-only filter helps if you do not need named-person addresses.

How much does the contact details scraper cost?

It is pay per result: $0.60 per 1,000 results, or $0.0006 per website. A result is a website row where at least one email, phone number or supported social profile was found, no matter how many contacts or pages it took. Rows marked no_contacts, blocked, js_only, not_found or error stay in your dataset with billed set to false and are not charged. Apify platform usage is billed by Apify under your plan.

Can I export the results to CSV, Excel or JSON?

Yes. The rows are stored in a standard Apify dataset, which you can download as CSV, JSON, Excel and the other formats Apify offers, or read through the API. Fields such as emailTypes and emailSourcePages are maps, so they read best in JSON; in a CSV they are flattened into extra columns.

Will it find every email address on a website?

No. It reads a limited number of pages per site (5 by default, up to 20), chosen with contact and legal pages first. Addresses that sit on pages it did not visit, inside images or PDFs, behind a login, or that only appear after JavaScript runs can be missed.

Does it guess or verify email addresses?

Neither. It does not build likely addresses from employee names and does not check whether a mailbox exists or accepts mail. It returns addresses found on the pages, after removing placeholders, example addresses and other junk, and it decodes common hidden forms such as Cloudflare-protected emails and name [at] company [dot] com.

What happens with JavaScript-heavy sites or sites behind Cloudflare?

The actor reads HTML directly and does not run a browser, so sites that only show content after JavaScript runs may come back as js_only. Sites that answer with a bot challenge come back as blocked rather than as fake contact data. Both statuses are free, and the run summary counts them so you can decide what to handle another way.

Does it scrape LinkedIn, Facebook or Instagram profiles?

No. It collects the links to a company's profiles on LinkedIn, Facebook, Instagram, X/Twitter, YouTube and TikTok as they appear on the website itself. It does not open those platforms or pull data from them.