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.
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.
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 |
Input example
You can provide full URLs or plain domains.
{
"startUrls": [{ "url": "https://www.w3.org/contact/" }],
"maxPagesPerDomain": 10,
"crawlDepth": 2,
"includeSitemap": true,
"includePhones": true,
"includeSocialLinks": true,
"validateMx": false,
"sameDomainOnly": true
}
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 with 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: 10
});
console.log(run.defaultDatasetId);
API usage with Python
from apify_client import ApifyClient
import os
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('fetch_cat/website-contact-finder').call(run_input={
'startUrls': [{'url': 'https://www.w3.org/contact/'}],
'maxPagesPerDomain': 10,
})
print(run['defaultDatasetId'])
API usage with 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":10}'
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.
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.