Website Contact Finder
Pricing
from $0.05 / 1,000 contact extracteds
Website Contact Finder
Find public emails, phone numbers, social links, source URLs, confidence signals, crawl diagnostics, and optional MX checks from websites or domains.
Pricing
from $0.05 / 1,000 contact extracteds
Rating
0.0
(0)
Developer
Hanna Nosova
Maintained by CommunityActor stats
0
Bookmarked
8
Total users
4
Monthly active users
7 days ago
Last modified
Categories
Share
Find public emails, phone numbers, and social profile links from company websites and domains.
Website Contact Finder turns domains or public URLs into lead-ready contact records with source URLs, confidence signals, crawl diagnostics, extraction errors, and optional MX checks.
At a glance
- Contact discovery: Crawl public home, contact, about, team, legal, support, footer, and sitemap-discovered pages.
- Lead-ready output: Export emails, phones, social links, source URLs, confidence signals, pages crawled, and errors.
- Evidence-first records: Keep every discovered contact tied to the public page where it was found.
- Controlled crawl: Use
maxPagesPerDomain,crawlDepth, andsameDomainOnlyto keep runs bounded. - Enrichment options: Turn on phone extraction, social link extraction, and MX checks only when needed.
Ready-to-run examples
Use these saved Store examples as starting points. Open any example to prefill the Actor input, then adjust URLs, keywords, limits, or filters for your own run.
- Audit Public Email Source URLs
- Quick Domain Contact Smoke Test
- Export Website Contact Evidence URLs
- Enrich AI Company Websites with Contacts
- Find Contacts for Developer Tool Companies
- Find Contacts from Public Information Domains
- View all ready-to-run examples (50 examples)
What can it do?
Website Contact Finder turns public websites and domains into structured contact records.
- Find public business emails with source URLs, confidence signals, and optional MX checks.
- Collect public phone numbers from homepage, contact, about, support, legal, footer, and sitemap-discovered pages.
- Extract social links for LinkedIn, Facebook, Instagram, X/Twitter, YouTube, and TikTok profiles.
- Keep contact evidence so every result can be traced to the page where it was found.
- Use it as a website contact API for lead enrichment, CRM cleanup, sales research, or AI-agent workflows.
Who is it for?
- Sales and lead-generation teams enriching a company-domain list with public contact evidence.
- CRM and data-ops teams checking existing company records before imports or outreach.
- Researchers and agents collecting traceable public contact information from a bounded set of websites.
What data can you extract?
| Field | Description |
|---|---|
domain | Normalized website domain |
seedUrl | Original URL used to start the crawl |
sourceUrl | Best page where contact data was found |
contactPageType | Signal such as contact, about, mailto, or general |
emails | Email records with confidence and source URL |
phones | Public phone numbers found on pages |
socialLinks | LinkedIn, Facebook, Instagram, X/Twitter, YouTube, TikTok |
matchedSignals | Signals that explain why the record was matched |
pagesCrawled | Number of pages visited for the domain |
errors | Non-fatal crawl or fetch errors |
Pricing
This Actor uses Apify pay-per-event pricing. The prices below come from the current Actor pricing configuration. Apify public plans map to Store discount tiers, so the table shows both the user-facing plan context and the pricing tier name. The final price shown in Apify depends on the user account plan and any custom agreement.
| Event | What is charged | Price |
|---|---|---|
start | One-time fee charged when a run starts. Covers fixed startup cost (init, proxy warmup, first HTTP setup). | $0.005 |
| Event | What is charged | Free / no discount | Starter / Bronze | Scale / Silver | Business / Gold | Custom / Platinum | Custom / Diamond |
|---|---|---|---|---|---|---|---|
contact | Charged per saved website/domain contact record, including a saved status record with no contact found. | $0.09721 / 1,000 | $0.08453 / 1,000 | $0.06593 / 1,000 | $0.05072 / 1,000 | $0.03381 / 1,000 | $0.02367 / 1,000 |
Apify may also charge platform usage for compute, storage, proxies, or data transfer outside this Actor pricing. Check the Actor run and the Apify Pricing tab for the exact cost shown to your account.
Input example
You can provide full URLs or plain domains.
{"startUrls": [{ "url": "https://www.w3.org/contact/" }],"maxPagesPerDomain": 25,"crawlDepth": 2,"includeSitemap": true,"includePhones": true,"includeSocialLinks": true,"validateMx": false,"sameDomainOnly": true}
Input configuration
| Setting | JSON key | Use it for | Example |
|---|---|---|---|
| Start URLs | startUrls | Full public URLs such as homepages, contact pages, or company website URLs. | [{"url":"https://www.w3.org/contact/"}] |
| Domains | domains | Plain domains when your source list has values like example.com. | ["example.com"] |
| Maximum pages per domain | maxPagesPerDomain | Cap pages crawled per website to control runtime and spend. | 25 |
| Crawl depth | crawlDepth | Number of link levels to follow from each seed URL. | 2 |
| Check sitemap.xml | includeSitemap | Use sitemap URLs to discover contact, about, team, legal, and support pages faster. | true |
| Stay on the same domain | sameDomainOnly | Only follow links on the same website domain. | true |
| Extract phone numbers | includePhones | Find public phone numbers in page text. | true |
| Extract social links | includeSocialLinks | Find LinkedIn, Facebook, Instagram, X/Twitter, YouTube, and TikTok profile links. | true |
| Validate email domains with MX lookup | validateMx | Check whether each email domain has mail exchange records. | false |
| Proxy configuration | proxyConfiguration | Optional Apify Proxy settings; leave disabled for normal public websites. | {"useApifyProxy":false} |
| Resume unfinished sources | resumeUrls | Continue source URLs recorded in PENDING_SOURCES after a run reaches its time reserve. | ["https://example.com/contact"] |
Output example
{"domain": "w3.org","seedUrl": "https://www.w3.org/contact/","sourceUrl": "https://www.w3.org/contact/","contactPageType": "mailto","emails": [{"email": "contact@w3.org","normalizedEmail": "contact@w3.org","sourceUrl": "https://www.w3.org/contact/","confidence": 100,"mxValid": null}],"phones": [],"socialLinks": {},"matchedSignals": ["email_regex", "mailto"],"pagesCrawled": 3,"firstSeenAt": "2026-06-22T00:00:00.000Z","errors": []}
Tips for best results
- Start with homepage URLs or known contact-page URLs.
- Keep page limits modest for first runs.
- Use
sameDomainOnlyfor clean company-level results. - Turn on MX validation only when needed.
- Review
sourceUrlbefore importing contacts into outreach tools.
Integrations
Use the output dataset with:
- CRM enrichment workflows
- Google Sheets exports
- Sales engagement tools
- Lead scoring pipelines
- Internal prospecting dashboards
- No-code automation tools
API usage
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('fetch_cat/website-contact-finder').call({startUrls: [{ url: 'https://www.w3.org/contact/' }],maxPagesPerDomain: 25});console.log(run.defaultDatasetId);
Python
from apify_client import ApifyClientimport osclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('fetch_cat/website-contact-finder').call(run_input={'startUrls': [{'url': 'https://www.w3.org/contact/'}],'maxPagesPerDomain': 25,})print(run['defaultDatasetId'])
cURL
curl -X POST 'https://api.apify.com/v2/acts/fetch_cat~website-contact-finder/runs?token=APIFY_TOKEN' \-H 'Content-Type: application/json' \-d '{"startUrls":[{"url":"https://www.w3.org/contact/"}],"maxPagesPerDomain":25}'
MCP and AI agents
Connect this actor to Apify MCP and ask your assistant to find public contacts for a list of company websites.
Claude Code setup:
$claude mcp add apify https://mcp.apify.com?tools=fetch_cat/website-contact-finder
Claude Desktop JSON setup:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=fetch_cat/website-contact-finder"}}}
Example prompts:
- "Find public emails and LinkedIn links for these domains."
- "Crawl these company websites and return contact-page evidence URLs."
- "Validate email domains with MX checks for this prospect list."
Data quality notes
The actor extracts public information from web pages. Email confidence scores are heuristics based on source page and contact signals. Always review results before using them in outreach.
Legality
Only use this actor for lawful purposes and follow applicable privacy, anti-spam, and marketing rules. The actor is intended for public business contact discovery, not private or restricted data access.
Troubleshooting
Why did a website return no contacts?
Some websites hide contact information behind forms, images, scripts, or login walls. Increase maxPagesPerDomain, provide a known contact page, or review the errors field.
Why are there fewer pages crawled than my limit?
The actor stops when it runs out of same-domain links or reaches the configured crawl depth.
Should I enable proxies?
Most public websites do not need proxies. Leave proxy settings disabled unless a target blocks direct requests.
Related scrapers
Explore related actors from the same account:
- Facebook Pages Scraper
- TikTok Profile Scraper
- YouTube Channel Details Scraper
- Threads Profile & Posts Scraper
- Website Content Crawler Lite
FAQ
Can it crawl multiple websites in one run?
Yes. Add multiple entries to startUrls or domains.
Does it validate every email address?
It can optionally validate the email domain with MX records. It does not send email or verify inbox ownership.
Does it charge per page?
No. The current design charges per saved website/domain contact record, not per crawled page.
Can it find social links?
Yes. It detects common public social profile domains including LinkedIn, Facebook, Instagram, X/Twitter, YouTube, and TikTok.
Limits
The actor uses strict depth and page caps to keep runs predictable. Very large websites may require higher limits or a targeted contact-page URL.
Support
If a run fails, returns no data, or a field looks wrong, open an issue from the Actor page.
Please include the Apify run ID or run URL, input JSON, one example public URL, query, or input item, what you expected, and what the dataset returned. Small reproducible inputs make parsing or site-layout issues much faster to fix.
Version
Current build target: 0.1.
Privacy and data handling
This Actor only requests the permissions needed to run the input you provide. It uses your input (such as URLs, search terms, identifiers, filters, and limits) only to fetch the requested public data from the relevant source site or API for this Actor, then writes results to your Apify dataset/key-value store.
Data may pass through Apify platform services and Apify Proxy during the run, and requests are sent only to the target site or public data provider required for this Actor's results. FetchCat does not send your inputs or outputs to advertising networks, data brokers, or model-training services, and does not retain run data outside Apify storage after the run except when you explicitly share run details for transient support debugging.
You are responsible for using this Actor lawfully, respecting the target site's terms, and avoiding unnecessary personal or sensitive data in inputs. Review the output before storing, sharing, or combining it with other data.