Website Contact Finder avatar

Website Contact Finder

Pricing

from $0.05 / 1,000 contact extracteds

Go to Apify Store
Website Contact Finder

Website Contact Finder

Find public emails, phone numbers, and social links from websites and domains for lead-ready contact enrichment.

Pricing

from $0.05 / 1,000 contact extracteds

Rating

0.0

(0)

Developer

Hanna Nosova

Hanna Nosova

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

16 hours ago

Last modified

Categories

Share

Find public emails, phone numbers, and social profile links from company websites and domains. Website Contact Finder turns a list of domains into lead-ready contact records with source URLs, confidence signals, crawl counts, and extraction errors.

What does Website Contact Finder do?

Website Contact Finder crawls public pages on a website and extracts useful contact details for sales, partnerships, recruiting, agency prospecting, and enrichment workflows.

It can collect:

  • πŸ“§ Email addresses
  • ☎️ Phone numbers
  • πŸ”— Social profile links
  • 🌐 Source pages where each contact was found
  • βœ… Confidence signals and optional email-domain MX status
  • 🧭 Crawl diagnostics such as pages crawled and errors

Who is it for?

This actor is useful for teams that need structured contact data from public websites.

  • Sales teams building prospect lists
  • Agencies enriching domain lists
  • Recruiters looking for company contact channels
  • Partnership teams finding business development inboxes
  • Data teams cleaning or validating web leads
  • Founders researching target accounts

Why use this actor?

Manually opening every company website and checking the footer, contact page, about page, team page, and social links is slow. Website Contact Finder automates that repetitive work and keeps every discovered contact tied to an evidence URL.

Key features

  • Bounded website crawl with depth and page limits
  • Sitemap discovery for faster contact-page discovery
  • Contact, about, team, legal, support, and footer-oriented discovery
  • Email, phone, and social link extraction
  • Optional MX validation for email domains
  • Dedupe across pages
  • Confidence score for each email
  • Lead-ready row per domain

What data can you extract?

FieldDescription
domainNormalized website domain
seedUrlOriginal URL used to start the crawl
sourceUrlBest page where contact data was found
contactPageTypeSignal such as contact, about, mailto, or general
emailsEmail records with confidence and source URL
phonesPublic phone numbers found on pages
socialLinksLinkedIn, Facebook, Instagram, X/Twitter, YouTube, TikTok
matchedSignalsSignals that explain why the record was matched
pagesCrawledNumber of pages visited for the domain
errorsNon-fatal crawl or fetch errors

How much does it cost to find website contacts?

The actor uses pay-per-event pricing. A small start event is charged for each run and a contact record event is charged for each website/domain result saved. Final tiered pricing is set after cloud cost measurement.

Input options

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
}

Start URLs

Use startUrls when you already have full URLs such as homepage URLs, contact page URLs, or company website URLs.

Domains

Use domains when your source list contains values like example.com. The actor will convert each domain into an HTTPS start URL.

Crawl settings

maxPagesPerDomain controls the maximum number of pages visited per website. Start with 10 to keep runs fast, then increase for larger websites.

crawlDepth controls how many link levels the actor follows from the seed URL.

Contact enrichment settings

Enable phone extraction when you want public telephone numbers. Enable social extraction when you want official social profile links. Enable MX validation when you want to check whether an email domain can receive mail.

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 sameDomainOnly for clean company-level results.
  • Turn on MX validation only when needed.
  • Review sourceUrl before 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 usage

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.

Explore other Apify actors from this account for content crawling, website monitoring, lead enrichment, and business data collection.

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.

Yes. It detects common public social profile domains including LinkedIn, Facebook, Instagram, X/Twitter, YouTube, and TikTok.

Changelog

Initial version: domain crawl, sitemap discovery, email extraction, phone extraction, social link extraction, confidence scoring, optional MX validation, and crawl diagnostics.

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 you need a specific website pattern supported, include an example URL and the expected contact fields when opening an issue.

Version

Current build target: 0.1.