Website Contact Scraper avatar

Website Contact Scraper

Pricing

from $5.00 / 1,000 sites

Go to Apify Store
Website Contact Scraper

Website Contact Scraper

The right email, phone, social profiles, postal address and legal company name from any company website. Reads the pages that matter (contact, about, imprint, team), scores each email, drops placeholders. Half a cent per site; blocked or dead sites free.

Pricing

from $5.00 / 1,000 sites

Rating

0.0

(0)

Developer

Asgard Labs

Asgard Labs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Website Contact Scraper – emails, phones, socials, address, legal entity from any company site

Paste a list of company websites. Get back, for each one, the email that is not just info@, the phone number, the company's own social profiles, the postal address, the registered legal name with VAT and registration number, and the people named on the team page.

It reads the pages where this data actually lives: home, contact, about, imprint / legal notice and team. Not just the home page. Every email carries a confidence score and a flag for whether it belongs to the site's own domain, so you always know which one to use.

Website contact data per site

  • bestEmail – a personal address at the company's domain when one is published, otherwise the best available.
  • bestGenericEmail – the info@, hello@ or support@ style mailbox.
  • emails – every address found, with confidence, where it was found and whether it is a role mailbox.
  • phones – deduplicated, tel: links first.
  • socials – LinkedIn, X, Facebook, Instagram, YouTube, TikTok, GitHub, Pinterest, Threads, Crunchbase. Only the company's own profiles, not the customer logos on the home page.
  • addresses – from structured data, microdata or address blocks.
  • org – name, legal name, VAT id, registration id, logo, description, founding year, employee count when the site publishes them.
  • people – names with job titles from team pages and structured data.
  • title, description, pagesFetched, summary – what was read and how much was found.

Use cases

  • Build a prospect list from a set of company websites, with the best email to write to.
  • Enrich a CRM export that has only domains with phone, LinkedIn and the registered company name.
  • Verify who is behind a website before a deal: legal name, VAT id, registration number.
  • Find the people and titles a company lists on its team page.

Input

FieldDefaultMeaning
urlsDomains or full URLs, one per line. example.com is enough.
maxPages6Extra pages read per site after the home page.
tryCommonPathstrueAlso try /contact, /about, /impressum, /team when the home page does not link to them.
timeoutSecs20Wait per page. A site never takes longer than about three times this.
concurrency10Sites processed in parallel.

Output example

{
"domain": "apify.com",
"finalUrl": "https://apify.com/",
"status": 200,
"title": "Apify: The largest marketplace of trusted tools for AI",
"bestEmail": "james.hill@apify.com",
"bestGenericEmail": "hello@apify.com",
"emails": [
{ "value": "hello@apify.com", "domainMatches": true, "generic": true, "confidence": 1, "sources": ["mailto", "text"], "pages": ["https://apify.com/contact"] },
{ "value": "james.hill@apify.com", "domainMatches": true, "generic": false, "confidence": 0.65, "sources": ["text"], "pages": ["https://apify.com/about"] }
],
"bestPhone": "+17183565168",
"phones": [{ "value": "+17183565168", "confidence": 0.5, "sources": ["text"] }],
"socials": { "linkedin": "https://linkedin.com/company/apify", "twitter": "https://x.com/apify", "github": "https://github.com/apify", "tiktok": "https://www.tiktok.com/@apifytech" },
"addresses": [{ "street": "Na Příkopě 959/27", "city": "Prague", "postalCode": "11000", "country": "CZ", "source": "jsonld" }],
"org": { "name": "Apify", "legalName": "Apify Technologies s.r.o.", "url": "https://apify.com/", "foundingDate": "2015" },
"people": [],
"pagesFetched": ["https://apify.com/", "https://apify.com/contact", "https://apify.com/about"],
"summary": { "emails": 3, "phones": 1, "socials": 4, "addresses": 1, "people": 0, "hasOrgSchema": true },
"durationMs": 5800
}

How to use

  1. Paste your website domains, one per line into the input form. The example input is ready to run as is.
  2. Click Start. Rows appear in the Output tab as they are found.
  3. Download the table as CSV, JSON or Excel, or read it through the API.

Pricing

$0.005 per website that returned a page. 1,000 websites cost $5. Sites that block automated visitors (HTTP 403 / 429), time out or do not resolve are reported in the dataset with the reason and are not charged.

Good to know

  • No browser and no proxies, so it is fast: usually 4 to 6 seconds per site.
  • It reads what the site publishes. It does not guess emails or buy data.
  • Works with old sites too: handles ISO-8859-1 pages and falls back to http when https is broken.
  • Failures come with a plain reason: timeout, ENOTFOUND (domain not found), no HTML (HTTP 429).
  • Typical use: run a domain list from your CRM or a lead list, then filter on bestEmail and org.legalName.

Use from code or an AI agent

Every run can be started and read through the Apify API, the JavaScript and Python clients, or an AI agent with tool access. Open the API tab on this page for ready-made snippets. Pricing is per event, so an agent pays only for what it receives.

FAQ

Why is bestEmail a person and not info@? Personal addresses at the site's own domain rank first; info@, sales@ and other role mailboxes are kept in bestGenericEmail. Both are in the row.

What if the site blocks automated visitors? The site is reported as blocked with the HTTP status and is not charged. Nothing is guessed.

Does it read imprint and legal pages? Yes. Contact, about, imprint, legal, privacy and team pages are ranked from the home page links, and the usual paths are tried when they are not linked.

How many pages does it read per site? The home page plus up to maxPages more, six by default. A site never takes longer than about three times the timeout.

Does it guess or buy contact data? No. It only returns what the site publishes, with the page each item came from.