Domain Contact Finder — Emails, Phones & Socials from Websites avatar

Domain Contact Finder — Emails, Phones & Socials from Websites

Pricing

from $2.00 / 1,000 contact founds

Go to Apify Store
Domain Contact Finder — Emails, Phones & Socials from Websites

Domain Contact Finder — Emails, Phones & Socials from Websites

Turn a list of company domains into usable contacts. Extracts emails, phone numbers, and social profile links from websites — structured output for CRM, outreach, and agent workflows. Pay only when a contact is found ($0.002 per contact-found).

Pricing

from $2.00 / 1,000 contact founds

Rating

0.0

(0)

Developer

Industrial AI

Industrial AI

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

17 hours ago

Last modified

Share

Find Company Emails, Phones & Socials from Domains

When to call this Actor

Use when a human or agent needs public contact details from company websites:

  • "Get emails from these company websites"
  • "Find phone numbers and LinkedIn for these domains"
  • "Enrich this domain list with public emails/socials"

Do not use for: inbox scraping, CRM exports, LinkedIn Sales Nav, CAPTCHA/login bypass, or people-search APIs.

Agent quickstart

Input (prefer): { "domains": ["acme.com", "https://example.com"] }
Also accepted: startUrls (RequestList sources)
Output: one dataset item per domain → emails, externalEmails, phones, socials, status

Example prompts → input

User saysPass
Get emails from acme.com and globex.iodomains: ["acme.com","globex.io"]
Contacts from https://www.acme.com/aboutdomains: ["https://www.acme.com/about"]
First 25 of this list onlydomains: [...], maxDomains: 25

Pricing (PPE): domain-processed per domain; contact-found when emails/phones > 0 (socials alone do not bill contact-found).

Apify Actor PPE


What this Actor does

Given one or more company domains or website URLs, the Actor:

  1. Normalizes each domain to https://
  2. Crawls high-signal pages: /, /contact, /contact-us, /about, /about-us, /team, /impressum, /legal, /support
  3. Extracts emails (including obfuscated [at] / (dot) / mailto: / HTML entities)
  4. Extracts phone numbers (tel: links + patterns)
  5. Extracts social profiles: LinkedIn, X/Twitter, Facebook, Instagram, YouTube, GitHub, TikTok
  6. Filters junk / placeholder emails and splits same-domain emails vs externalEmails
  7. Optionally verifies emails with format + DNS MX/A checks (no third-party API)

Output: one dataset item per domain.

Uses CheerioCrawler (HTTP + HTML parse) instead of a full browser — lower compute cost and faster runs.


Input

FieldTypeDefaultDescription
domainsstring[]Domains or URLs (acme.com, https://www.acme.com)
startUrlsRequestListSourcesAlternative URL list
maxPagesPerDomaininteger8Contact-ish paths to fetch per domain (1–20)
maxDomainsintegerOptional cap on domains processed
includeEmailVerificationbooleanfalseFormat + MX/A DNS verification
proxyConfigurationobjectApify Proxy onRecommended for larger batches

Example input

{
"domains": ["apify.com", "crawlee.dev"],
"maxPagesPerDomain": 8,
"includeEmailVerification": false,
"proxyConfiguration": { "useApifyProxy": true }
}

Output

One item per domain:

{
"domain": "apify.com",
"urls": ["https://apify.com/", "https://apify.com/contact"],
"emails": ["hello@apify.com"],
"externalEmails": [],
"phones": ["+420123456789"],
"socials": {
"linkedin": ["https://www.linkedin.com/company/apifytech"],
"twitter": ["https://twitter.com/apify"],
"facebook": [],
"instagram": [],
"youtube": [],
"github": ["https://github.com/apify"],
"tiktok": []
},
"pagesScanned": 6,
"status": "ok",
"error": null
}
  • emails — addresses on the same domain (or subdomain)
  • externalEmails — other addresses found on the pages (partners, tools, etc.)
  • statusok | partial | failed

Pricing (Pay-per-event)

Suggested Store pricing (configure in Apify Console → Actor → Monetization):

EventWhen chargedSuggested price
contact-found (primary)Domain finished with ≥1 email or phone~$2.00 / 1,000 events ($0.002 each)
domain-processedEvery finished domain~$0.50 / 1,000 events ($0.0005 each)

Do not enable pay-per-event + usage pass-through — keep PPE-only so agent budgets stay predictable.

Synthetic platform events (e.g. actor start) may appear separately; leave defaults unless you have a reason to change them.

Cost example

  • 1,000 domains with contacts → ~$2.00 on contact-found (+ small domain-processed fee)
  • Domains with no email/phone still emit domain-processed only

For AI agents / MCP

  • Actor name: gary_sells/domain-contact-finder (ID cvhnTR9Q5TvW2qWRH)
  • Prefer input field: domains (string list of domains or URLs)
  • PPE events: domain-processed (every finished domain), contact-found (emails or phones found; socials alone do not bill)
  • Constraints: public HTML only — no inbox access, no login/CAPTCHA bypass
  • Discoverable via Apify Store / MCP search-actors once published with PPE-only + Limited permissions + Standby off (allowsAgenticUsers)

API & agent usage

curl "https://api.apify.com/v2/acts/USERNAME~domain-contact-finder/runs" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"domains":["example.com"],"maxPagesPerDomain":8}'

Or use the Apify client / Store “Try for free” / AI agent tool integrations. Charge events map cleanly to tool-call budgets.

Local PPE dry-run:

$ACTOR_TEST_PAY_PER_EVENT=true apify run -p

Inspect storage/datasets/charging_log/ for charged events (local default price $1/event).


This Actor collects publicly available information from websites you specify. It does not bypass logins, CAPTCHAs, or access private inboxes.

You are responsible for complying with applicable laws (including GDPR/CCPA where relevant), website terms, and anti-spam rules (e.g. CAN-SPAM). Use contact data only for lawful purposes. The authors provide no warranty and accept no liability for misuse.


How it works (technical)

  • Runtime: Node.js + Crawlee CheerioCrawler + Apify SDK
  • PPE: Actor.charge({ eventName: 'domain-processed' | 'contact-found' })
  • Permissions: Designed for limited Actor permissions (default). No Standby mode.
  • Email decode: [at] / (at) / [dot] / mailto: / HTML entities
  • Junk filters: noreply, example.com placeholders, asset false-positives, etc.

Local development

cd domain-contact-finder
npm install
# dry-run on sample domains
npm run dry-run
# or
apify run -p

Deploy (after apify login):

$apify push

Then set PPE prices and keep Limited permissions in Apify Console.


Changelog

  • 1.0.3 — Agent-findability: richer input descriptions, Store/MCP title & description, README when-to-call + AI/MCP blurb.
  • 1.0.2 — README charging_log path fix; dataset schema emailVerification.
  • 1.0 — Initial Store-ready release: Cheerio crawl, PPE events, MX optional verify, social extractors.