Website Contact & Email Extractor - Emails, Phones, Socials avatar

Website Contact & Email Extractor - Emails, Phones, Socials

Pricing

from $6.40 / 1,000 results

Go to Apify Store
Website Contact & Email Extractor - Emails, Phones, Socials

Website Contact & Email Extractor - Emails, Phones, Socials

Returns the contact details a website publishes: emails with the page they stood on, phone numbers in international form, social profiles and the site's own name. Give it a list of websites or domains; it reads the home, contact, imprint and about pages of twenty sites at a time. No browser.

Pricing

from $6.40 / 1,000 results

Rating

0.0

(0)

Developer

Ben

Ben

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

1

Monthly active users

6 days ago

Last modified

Share

๐Ÿ“‡ Website Contact & Email Extractor

Returns the contact details a website publishes: emails with the page they stood on, phone numbers in international form, social profiles and the site's own name. Give it a list of websites or domains and get one row per website. It reads the home page and the contact, imprint, about and team pages of twenty websites at a time, without a browser.

Price: until October 18, 2026 $8.00 per 1,000 websites on the Apify Free plan plus $15.00 per 1,000 websites with an email; from October 19 $4.00 per 1,000 websites and nothing else ($3.00 from Gold up). A website that does not answer is not saved and not charged. Export to JSON, CSV or Excel, run on a schedule, call via API, or connect to Make, Zapier or n8n.

๐Ÿ”Ž What is the Website Contact & Email Extractor?

You have a list of company websites and need the address to write to. The Actor opens up to ten pages of every site side by side: the home page, /contact, /kontakt, /impressum, /imprint, /about, /ueber-uns, /contact-us, /team, and the page you linked if it is not the home page. From them it reads emails, phone numbers and social profile links.

In a test with the websites of 99 dentists in Austin, TX, 93 answered, 42 published an email, 80 a phone number and 79 a social profile; the run took 59 seconds. German sites do better, because an imprint has to name an email address.

What data does it extract?

  • Emails: the primary email, and every email found with its source (website, contact_page, impressum) and a confidence value
  • Phone numbers: from tel: links and from numbers written in international form, each number once
  • Social profiles: LinkedIn, Instagram, Facebook, X, YouTube, TikTok, Xing
  • Company name: the name the site gives itself
  • Flags: has_email, has_contact, and how many pages were read

What is left out on purpose

Addresses of web agencies, chambers, font and theme authors that sit in a page's code. Form placeholders such as janedoe@gmail.com. No-reply and abuse addresses. An address on another domain only counts when the site links it or it sits at a mailbox provider such as Gmail. Nothing is guessed: a site without a published address gets none.

โฌ‡๏ธ Input

FieldTypeDefaultWhat it does
startUrlsarrayWebsites or domains, one row each
maxResultsinteger10Websites to save in this run, up to 50,000
requireEmailbooleanfalseSave and charge only websites with a published email
extractPhonesbooleantrueAdd phone numbers
extractSocialsbooleantrueAdd social profile links

Example input

{
"startUrls": ["basecamp.com", "cl-berlin.de", "https://www.wayfaretavern.com"],
"maxResults": 100
}

Only websites with an email:

{
"startUrls": ["spyglassrealty.com", "guhr-steuerberatung.de"],
"requireEmail": true
}

The lists websites, domains and urls are read as well, also as {"url": โ€ฆ} entries.

โฌ†๏ธ Output

One row per website (from a run of October 4, 2026):

{
"input_url": "https://www.austindentalworks.com/?utm_source=google&utm_medium=organic&utm_campaign=gbp&utm_content=website",
"domain": "austindentalworks.com",
"company_name": "Dentist in Austin, TX",
"primary_email": "info@austindentalworks.com",
"email_confidence": 90,
"email_source": "website",
"emails": [
{"email": "info@austindentalworks.com", "confidence": 90, "source": "website", "verified": null}
],
"phones": ["5124540300", "+15128779822"],
"socials": {
"facebook": "https://www.facebook.com/AustinDentalWorks/",
"instagram": "https://www.instagram.com/austindentalworks/?hl=en",
"youtube": "https://www.youtube.com/@dentistaustintx5793"
},
"has_email": true,
"has_contact": true,
"pages_scanned": 2,
"scraped_at": "2026-10-04T18:04:00.616890+00:00"
}

email_confidence is 95 for an address on the site's own domain that stands in the imprint, 90 for one elsewhere on the site, 75 for an address on another domain whose mail server exists, 55 otherwise. company_name is the site's og:site_name or the first part of its page title, so it can be a slogan, as in this row. The first phone number in the example was written without a country code; see the limits below.

๐Ÿ’ฐ What a run costs

Apify planPer 1,000 websites until October 18, 2026Per 1,000 websites with an email, in addition, until October 18Per 1,000 websites from October 19, 2026
Free$8.00$15.00$4.00
Bronze$7.20$13.50$3.60
Silver$6.80$12.75$3.30
Gold$6.40$12.00$3.00
Platinum$6.00$11.25$3.00
Diamond$5.60$10.50$3.00

Apify's standard start event ($0.00005 per GB of memory) is the only other charge. Not charged: a website that does not answer, an entry that is no website, and with requireEmail a website without an email.

โฑ๏ธ Measured on Apify (October 4, 2026)

RunWebsites savedWith emailTime
Sample input2210 s
99 dentist websites (6 did not answer)934259 s
41 websites, only those with an email (4 did not answer, 18 had none)191932 s

All at 2 GB of memory, the default; the run used 162 MB. About 100 websites a minute.

๐Ÿค– For AI agents

Smallest useful call:

{"startUrls": ["acme.com"]}

Each row is one website with primary_email, emails, phones, socials and company_name. startUrls takes many entries. A website that does not answer returns no row; the status message counts them. No credentials are needed.

๐Ÿ’ก Use cases

  • ๐Ÿ“‡ Lead enrichment: emails and phones for a list of company domains from a CRM, a directory or a search export.
  • ๐Ÿงญ Outreach preparation: the right inbox and the social profiles of each prospect in one sheet.
  • ๐Ÿ”— After a places search: the website column of the Google Maps Scraper as input.
  • ๐Ÿงน Data cleaning: which domains of an old list still answer and what they publish today.

โš ๏ธ Limits, stated plainly

  • Not every website publishes an email. 42 of 93 US dentist sites did in the test. Contact forms, images of addresses and addresses that appear only after a click are not read.
  • Up to ten pages per website, each given ten seconds. An address on another page is not found.
  • A phone number without a country code is completed from the website's ending (.de, .co.uk, .fr and others). On .com it stays as written, because a guessed country would make it another number.
  • No delivery check. The Actor looks up whether the email's domain has a mail server, which decides the confidence value; it does not test the mailbox.
  • Websites behind a strict firewall can turn the request away. They count as "did not answer" and are not charged.
  • Websites only. For businesses by place and kind, use the Google Maps Email Extractor, which finds the places and reads their websites in one run.

โ“ FAQ

Do I need an API key or a login? No.

Which pages are read? The home page, the usual contact, imprint, about and team addresses in English and German, and the link you gave if it points below the home page.

How many websites have an email? It depends on country and trade: under half of US small-business sites in the test, most German ones.

What changed for users of the earlier version? The twelve fields are the same. Websites are read twenty at a time instead of one after another, and with a browser's handshake: in a test from Apify's servers the same 100 websites gave 45 emails instead of 20. A website that does not answer is no longer saved or charged. Guessed addresses and SMTP checks are gone; enableSmtpVerification is ignored. From October 19 there is one price per website.

Can I run it on 10,000 websites? Yes. At about 100 websites a minute that takes around 100 minutes, so raise the run's timeout. A run that stops at its timeout or spending limit keeps its rows, and started again on the same dataset it continues where it stopped.

How do I call it from code? With the Apify API or the Python and JavaScript clients; every run returns a dataset you can fetch as JSON or CSV. It also works as a tool through Apify's MCP server.

Is it legal? The Actor reads contact details that websites publish themselves. An email address of a sole trader or a named employee is personal data: GDPR, CCPA and similar rules apply to how you store and use it, and CAN-SPAM, the German UWG and other local rules decide whether you may write to it without consent.

๐Ÿ”— You might also like

Keywords: website contact extractor, email extractor, contact details scraper, email scraper, website email finder, phone number extractor, social media link extractor, impressum scraper, lead enrichment, b2b leads, domain to email, company contact data, bulk email extractor, contact info scraper