Contact Details Scraper avatar

Contact Details Scraper

Pricing

from $0.70 / 1,000 results

Go to Apify Store
Contact Details Scraper

Contact Details Scraper

Get emails, phone numbers, social links, company name and address from any list of websites. Every email gets a quality check and every site a confidence score. No login needed. Great for lead generation, sales outreach and building clean contact lists fast.

Pricing

from $0.70 / 1,000 results

Rating

0.0

(0)

Developer

Data WiKi

Data WiKi

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Categories

Security

Limited permissions

Share

Contact Details Scraper — emails, phones, socials

Contact Details Scraper reads any list of public websites and returns one clean result per site: emails, phone numbers in international format, social profile links, plus the company name, postal address and tech stack when the site publishes them. Every email gets a quality check (role, free-webmail, disposable, mail-server result) and every site gets a 0–100 contact confidence score. No login and no cookies are needed. Every response is structured JSON — ready to pass directly to an LLM, index into a vector store, or feed a lead-generation pipeline. Paste your list of domains, press Start, and get a contact sheet you can export in minutes.

Why choose Contact Details Scraper?

  • Honest results. Every website has a status (ok, no_contacts, http_404, fetch_failed: …, invalid_url) so you always know why a row is empty instead of getting a silent blank.
  • Own-company emails first. The emails list holds the website's own addresses; other companies' addresses (a chat widget's legal contact, a template's sample address) go to emailsExternal so your list stays clean.
  • More than contacts. Company details, address, tech stack and site info come back in the same pass.
  • Free email quality check. Role / free / disposable flags and a mail-server check on every email, with no paid verifier.
  • Live output. Rows appear in the Output tab while the run is going, split into separate tables for emails, phones, social profiles, company and tech stack.
  • Few, clear inputs. Websites, pages per site, email check, phone country, and an optional proxy.

Key features

  • Bulk input: one website or thousands, bare domains or full addresses, duplicates removed.
  • Contact and about pages are read first, so the useful pages are covered even with a small page limit.
  • Emails from visible text, mail links, obfuscated forms such as name (at) domain (dot) com, and hidden email addresses.
  • Phone numbers validated and converted to international format using your chosen country for local numbers; doubtful numbers go to phonesUncertain.
  • 16 social networks: LinkedIn, X / Twitter, Instagram, Facebook, YouTube, TikTok, Pinterest, Discord, Snapchat, Threads, Telegram, Reddit, WhatsApp, GitHub, Medium, Vimeo.
  • Retries and switches to a stronger proxy automatically when a website refuses the request.

Input

{
"urls": ["https://apify.com", "basecamp.com"],
"maxWebsites": 100,
"maxPagesPerSite": 10,
"verifyEmails": true,
"country": "US",
"onlyWithContacts": false,
"proxyConfiguration": { "useApifyProxy": false }
}
FieldWhat it does
urls (required)Websites or bare domains, one per line. Duplicates are removed.
maxWebsitesStop after this many websites. Free plan: up to 10 results per run.
maxPagesPerSitePages read per website (default 10). 1 = only the exact address, 0 = no limit (capped at 60).
verifyEmailsChecks each email's domain and flags role, free-webmail and disposable addresses.
countryCountry (dropdown) used to read local phone numbers (default US).
onlyWithContactsReturn only websites with at least one email or phone.
proxyConfigurationOptional. Default is no proxy; the Actor upgrades automatically if a website refuses.

If you already use another contact-info scraper, startUrls and maxRequestsPerStartUrl are accepted as names for urls and maxPagesPerSite.

Output

One result per website. This is a real result for https://apify.com (shortened):

{
"originalStartUrl": "https://apify.com",
"domain": "apify.com",
"status": "ok",
"pagesScraped": 8,
"emails": ["hello@apify.com", "support@apify.com", "james.hill@apify.com"],
"emailsExternal": ["info@baeckerei-mustermann.de", "legal@intercom.io"],
"phones": ["+17183565168"],
"phonesUncertain": ["+49301234567"],
"linkedIns": ["https://linkedin.com/company/apify"],
"twitters": ["https://x.com/apify"],
"company": { "name": "Apify", "legalName": "Apify Technologies s.r.o.", "foundingDate": "2015" },
"address": { "city": "Prague", "postalCode": "11000", "country": "CZ" },
"techStack": [{ "name": "Next.js", "category": "Framework" }],
"contactConfidence": 100
}
FieldMeaning
statusWhy the row looks the way it does.
emails / emailsExternalThe website's own addresses / other companies' addresses.
emailsDetailedEach email with type, free/disposable flags, deliverable (valid, invalid, unknown), mail server and pages it was found on.
phones / phonesDetailed / phonesUncertainValid numbers, their national format and country, and doubtful numbers.
linkedIns, twitters, instagrams, facebooks, …Social profile links per network.
company, address, siteMetaDetails the site publishes about itself.
techStackDetected technologies and their category.
contactConfidence0–100 score for how complete the contact data is.

The Output tab also has separate tables: Emails, Phones, Social profiles, Company and Tech stack, each filled live. Export any of them as JSON, CSV, Excel or HTML.

🚀 How to use (Apify Console)

  1. Log in at console.apify.com and open Actors.
  2. Find Contact Details Scraper and open it.
  3. Paste your websites into Websites to scan.
  4. Adjust pages per website, email check and phone country if needed.
  5. Click Start.
  6. Watch the live log; each finished website shows its counts.
  7. Open the Output tab and export to JSON, CSV or Excel.

🤖 Use via API / MCP

curl -X POST "https://api.apify.com/v2/actors/BCCaskbnZu7s26tjt/runs" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"urls":["https://apify.com","basecamp.com"],"maxPagesPerSite":10}'

For AI agents, connect the Apify MCP server with claude mcp add --transport http apify "https://mcp.apify.com"; the agent can find this Actor through the server's search, details and call tools.

Best use cases

  • Build a lead list of company emails and phones from a list of domains.
  • Enrich a CRM with social profiles, company names and addresses.
  • Check which prospects publish a real contact address before outreach.
  • Map the tech stack of a list of competitors or prospects.

Pricing

Billing is pay-per-event. One main_result event is charged for each website that was read successfully (status ok or no_contacts). Websites that could not be reached, invalid addresses and websites removed by Only websites with contacts are not charged. Free plan runs return up to 10 results.

Frequently asked questions

Why is a website no_contacts? The pages that were read did not publish a valid email or phone. Raise maxPagesPerSite to read more pages.

Why is an email in emailsExternal? It belongs to another company's domain (for example a chat tool's legal address). It is kept in emailsDetailed with onDomain: false.

What does deliverable: unknown mean? The email's domain exists but publishes no mail server, so the address cannot be confirmed.

Are phone numbers guaranteed? Only numbers that pass international phone validation go to phones. Doubtful ones are listed separately in phonesUncertain.

Does it work on every website? It reads the public page content. If a website changes its layout or blocks automated visitors, some fields may come back empty and the status tells you why.

Support and feedback

Found a website that returns wrong or missing data? Open an issue from the Actor page in Apify Console and include the website and the run link.

Data is collected only from publicly available pages. You are responsible for following GDPR, CCPA, anti-spam laws and the terms of the websites you scan.