Contact Details Scraper
Pricing
from $0.70 / 1,000 results
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Security
Limited permissionsShare
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
emailslist holds the website's own addresses; other companies' addresses (a chat widget's legal contact, a template's sample address) go toemailsExternalso 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 }}
| Field | What it does |
|---|---|
urls (required) | Websites or bare domains, one per line. Duplicates are removed. |
maxWebsites | Stop after this many websites. Free plan: up to 10 results per run. |
maxPagesPerSite | Pages read per website (default 10). 1 = only the exact address, 0 = no limit (capped at 60). |
verifyEmails | Checks each email's domain and flags role, free-webmail and disposable addresses. |
country | Country (dropdown) used to read local phone numbers (default US). |
onlyWithContacts | Return only websites with at least one email or phone. |
proxyConfiguration | Optional. 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}
| Field | Meaning |
|---|---|
status | Why the row looks the way it does. |
emails / emailsExternal | The website's own addresses / other companies' addresses. |
emailsDetailed | Each email with type, free/disposable flags, deliverable (valid, invalid, unknown), mail server and pages it was found on. |
phones / phonesDetailed / phonesUncertain | Valid numbers, their national format and country, and doubtful numbers. |
linkedIns, twitters, instagrams, facebooks, … | Social profile links per network. |
company, address, siteMeta | Details the site publishes about itself. |
techStack | Detected technologies and their category. |
contactConfidence | 0–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)
- Log in at console.apify.com and open Actors.
- Find Contact Details Scraper and open it.
- Paste your websites into Websites to scan.
- Adjust pages per website, email check and phone country if needed.
- Click Start.
- Watch the live log; each finished website shows its counts.
- 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.
Legal
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.