Contact Details Scraper - Emails & Phones from Any Website avatar

Contact Details Scraper - Emails & Phones from Any Website

Pricing

from $0.70 / 1,000 websites

Go to Apify Store
Contact Details Scraper - Emails & Phones from Any Website

Contact Details Scraper - Emails & Phones from Any Website

Contact details scraper and email extractor for any list of websites: emails, phone numbers, social profiles, contact pages and forms, and who runs each company. One clean row per website, best email first. $1 per 1,000 websites with contacts; sites with nothing found are free.

Pricing

from $0.70 / 1,000 websites

Rating

0.0

(0)

Developer

Akhil rajesh

Akhil rajesh

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

19 minutes ago

Last modified

Share

Contact Details Scraper: Emails & Phones from Any Website

Give it a list of websites. Get one clean row per website: the best email first, every email it found, phone numbers in international format, social profiles, the contact page and form, and who runs the company, read from the company's own pages.

One flat price: $1.00 per 1,000 websites with an email or a phone number ($0.90 to $0.70 on Apify's paid plans), with platform usage included. Reading 2 pages or 20 costs the same. A website where nothing is found costs nothing, and neither does a dead domain or a site that refuses the request.

Why this scraper

  • You pay per website, not per page. Page-priced scrapers charge for every page they open, found or not. Here, depth is free and an empty site is free.
  • One row per website, ready for a spreadsheet or a CRM. No merging of page-by-page rows, no duplicates. bestEmail and bestPhone are columns you can use as they are.
  • The best address comes first. The company's own domain before a Gmail address, a general or sales inbox before a named person, a person before support, legal or jobs.
  • Real phone numbers. Every number is checked against its country's numbering plan and written as +14155550123. Coordinates, dates, order numbers, prices and sample numbers like (123) 456-7890 stay out. A number on a .com in Dublin is read as Irish, and a fax is marked as a fax.
  • It reads addresses simple scrapers miss. Links, page text, name [at] company [dot] com, the site's structured data, and addresses behind Cloudflare's email protection.
  • Junk stays out. No logo@2x.png, no tracking ids, no you@example.com. Made-up customers on a product page and the regulators named in a privacy policy are set aside in their own column, away from your list.
  • It finds who runs the company. Owners, founders, directors and team members the site names, with their titles, from its team pages and legal notices (Geschäftsführer, Inhaber, Managing Director).
  • The contact page and form, in the same row. Whether a site takes enquiries through a form, on which page, and through which service (HubSpot, Typeform, Google Forms, JotForm and others).
  • It says why a row is empty. Dead domain, refused request, closed by robots.txt, parked domain: each gets a free row with the reason, so your list stays complete.

Tested head to head

We ran this Actor and three popular contact scrapers on the same 65 websites, on Apify, on the same day (October 31, 2026), at 6 pages per site. The sites were picked before anything ran: 30 Y Combinator startups and 35 local businesses from five cities.

Websites with an emailPhone numbersCost for this run
This Actor46International format, none inventedabout $0.05
A per-contact scraper46International format, one wrong countryabout $0.55
A per-page scraper43Mixed with coordinates and idsabout $0.65
A flat-price scraper33As written, with samples like (123) 456-7890about $0.10

What to expect on your own list

Measured on 1,100 websites nothing was tuned on, read from Apify's servers on October 31, 2026. Percentages are of the websites that could be read.

SampleWebsitesCould be readEmailPhoneContact pageContact formKey person
Local businesses (Toronto, London, Berlin, Sydney, Dublin)80084%80%82%79%44%14%
Startups (Y Combinator)30095%82%27%54%33%31%

The rest of the local list were mostly dead domains (old listings), sites that refused the request, and sites whose robots.txt closes them. A fresh list of live companies reads higher.

Use cases

  • Lead lists: add emails, phones and decision makers to company domains from Google Maps, directories, a CRM or a spreadsheet.
  • Agencies: find local businesses with no contact form, no Instagram or no email on their site.
  • Recruiting: reach the people who run small companies.
  • Sales research: see who owns a business and how it takes enquiries before you call.
  • Automation: enrich domains in n8n, Make, Zapier or your own pipeline through the API.

How to use it in 4 steps

  1. Open the Input tab and paste your websites, as domains or links, or add a text or CSV file or a Google Sheet shared with "anyone with the link".
  2. Keep Pages per website at 6, or raise it for large sites.
  3. Click Start.
  4. Download the results as CSV, Excel, JSON or HTML from the Output tab.

Input

FieldWhat it does
WebsitesCompany websites as you have them: acme.com, www.acme.com or https://acme.com/contact. A website listed twice is read once. A deep link to one branch is read as its own website.
Or a file of websitesA longer list: upload a text or CSV file, or link one, or a Google Sheet. Every cell that is a website is read, whatever else the file holds.
Pages per websiteHow many pages to read on each site (default 6, up to 20): the homepage, then its contact, imprint, about, team and legal pages. It doesn't change the price.
Include peopleOwners, founders, directors and team members the site names (on by default).
Default phone countryA two-letter country code for numbers written without one. Left empty, it is worked out for each site from its domain, address, language and the places it names.
Websites at a timeHow many sites to read at once (default 30).
ProxyNot needed for most sites. Apify's datacenter proxies or your own work; residential proxies aren't available.

What you get

eff.org, as read on October 31, 2026:

{
"website": "https://www.eff.org/",
"domain": "eff.org",
"status": "found",
"companyName": "Electronic Frontier Foundation",
"bestEmail": "info@eff.org",
"emails": ["info@eff.org", "..."],
"bestPhone": "+14154369333",
"phones": ["+14154369333", "+15102438020"],
"fax": "+14154369993",
"keyPerson": "Allison Morris",
"keyPersonTitle": "Chief Development Officer",
"linkedin": "https://www.linkedin.com/company/EFF",
"facebook": "https://www.facebook.com/eff",
"instagram": "https://www.instagram.com/efforg",
"tiktok": "https://www.tiktok.com/@efforg",
"threads": "https://www.threads.com/@efforg",
"contactPage": "https://www.eff.org/about/contact",
"contactForm": false
}
FieldMeaning
statusfound: an email or a phone number (charged). Free: nothingFound, refused, unreachable, robotsDisallowed, parked, notAWebsite, invalid, error.
statusReasonWhy, when the site wasn't read in full.
bestEmail, emailsThe address to write to first, and every address, best first (at most 15).
emailDetailsEach address with its kind (general, sales, person, support, press, hr, legal, technical), scope (company, freeMail, otherDomain), the page it came from, how it was found, and whether its domain can receive mail.
otherEmailsAddresses set aside: at an unrelated domain on a page that isn't the home or contact page, or at a domain that can't receive mail.
bestPhone, phones, faxNumbers in international format (at most 10).
phoneDetailsEach number with its national format, kind (phone, mobile, tollFree, fax) and the page it came from.
keyPerson, keyPersonTitle, peopleWho runs the company, and everyone the site names (at most 15), with title, seniority and source.
linkedin, facebook, instagram, x, youtube, tiktok, pinterest, threads, telegram, whatsappThe company's own profiles: not share buttons, posts or a website builder's page.
contactPage, contactForm, contactFormKind, contactFormPageThe contact page, and the form with its kind. A search box, a newsletter sign-up or a blog's comment form doesn't count as one.
addressThe postal address, when the site publishes it in its structured data.
needsJavaScriptThe homepage is almost empty without a browser, so the row may miss what the site draws with scripts.

The Output tab has views for Contacts, Every email and phone, People, and What wasn't read, and why. Each run also saves a RUN_SUMMARY record for your pipelines.

How much does it cost?

$1.00 per 1,000 websites with an email or a phone number on Apify's Free plan, $0.90 on Starter, $0.80 on Scale and $0.70 from Business up, with platform usage included. Rows with neither are free, however much was read.

Websites you listWith contacts (about 75%)You pay on the Free plan
10075$0.08
1,000750$0.75
10,0007,500$7.50

Set a maximum cost per run and the run stops there, says so, and lists how many websites went unread. Run it again on the same dataset by resurrecting the run, or use a new list.

How it reads a website

Each site is read one page at a time, about a second apart, like a person clicking through it. It starts with robots.txt, then the homepage, then the pages most likely to hold contact details, in any language. A site whose robots.txt asks for a slower pace gets one.

It doesn't use a browser, which keeps runs fast and cheap: 1,000 websites take about 12 minutes. A site that turns the request away is reported as refused, and isn't asked again from another address.

Good to know

  • Sites that draw everything with scripts can come back thin. They are marked needsJavaScript.
  • The email check is on the domain. It confirms a domain can receive mail; it doesn't prove a mailbox exists.
  • people lists what the site says. A title can be out of date, and a small site may name no one.
  • Large chains list many branches: phones holds the first 10 numbers, ranked by how clearly the site marks them.

FAQ

Is it legal to scrape contact details? Reading what a company publishes on its own website is generally allowed, but what you do next is your responsibility. Emails and names of people are personal data under the GDPR and similar laws, and anti-spam laws such as CAN-SPAM and Canada's CASL cover what you send. Some countries restrict sending marketing email to addresses collected this way. Check the rules where you and your recipients are.

Does it send emails or fill in forms? No. It only reads.

Why is there no email for a site that has one? It may be drawn by a script (needsJavaScript marks those sites), be an image, or be on a page past your page limit.

Can I use it from code or an AI agent? Yes, through Apify's API, clients and MCP server, like any Actor. Send {"websites": ["acme.com", "example.org"]}. A startUrls list from another contact scraper works as it is.

Something looks wrong? Open an issue on the Issues tab with the website, and we'll look at it.

Other Actors by this developer

Disclaimer

This Actor is a tool. You are responsible for how you use what it finds, including the GDPR and local privacy law, anti-spam law, and the terms of the sites you read. It follows each site's robots.txt.