Email Finder & Verifier avatar

Email Finder & Verifier

Pricing

Pay per usage

Go to Apify Store
Email Finder & Verifier

Email Finder & Verifier

Finds and verifies email addresses from a domain. Crawls the website for emails, tries common patterns (first@domain, info@domain, contact@domain), validates format, and checks MX records.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Dima Radov

Dima Radov

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Finds and verifies email addresses from a domain. Ideal for lead generation, sales outreach, and contact discovery.

Features

  • Website Crawling — Crawls the website homepage, /contact, /about, /team, and linked internal pages to find published email addresses
  • Email Extraction — Extracts emails from page text and mailto: links using BeautifulSoup
  • Common Pattern Generation — Generates and tests common email patterns: info@, contact@, hello@, support@, admin@, sales@, and 25+ more
  • Name-Based Pattern Generation — If a person's name is provided, generates common patterns: first@, first.last@, firstlast@, f.last@, and more
  • Format Validation — Validates email format (RFC 5321-style) with detailed issue reporting
  • MX Record Checking — Checks if the domain has valid MX records for email delivery using DNS lookup
  • Deduplication — Automatically deduplicates emails found from multiple sources

Input

FieldTypeRequiredDescription
domainstringDomain to search (e.g., example.com)
firstNamestringFirst name for name-based patterns
lastNamestringLast name for name-based patterns
crawlWebsitebooleanCrawl website for emails (default: true)
tryCommonPatternsbooleanTry common email prefixes (default: true)
tryNamePatternsbooleanTry name-based patterns (default: true)
checkMxRecordsbooleanCheck MX records (default: true)
maxCrawlPagesintegerMax pages to crawl (default: 10, max: 50)

Output

The actor outputs a summary object plus individual email entries:

Summary Object

{
"domain": "example.com",
"firstName": null,
"lastName": null,
"stats": {
"totalEmailsFound": 5,
"validFormat": 4,
"invalidFormat": 1,
"sources": {
"website_crawl": 3,
"common_patterns": 10,
"name_patterns": 0
}
},
"emails": [
{
"email": "contact@example.com",
"formatValid": true,
"localPart": "contact",
"domain": "example.com",
"issues": [],
"sources": ["common_patterns", "website_crawl"],
"discoveredBy": "common_patterns"
},
...
],
"mxRecords": {
"domain": "example.com",
"hasMxRecords": true,
"mxRecords": [
{"preference": 10, "exchange": "mail.example.com"}
]
},
"crawlResults": {
"pagesCrawled": ["https://example.com", "https://example.com/contact"],
"pageErrors": {},
"emailsFoundOnWebsite": ["contact@example.com"]
}
}

Individual Email Entries

Each validated email is also pushed as a separate dataset item for easy CSV/JSON export, including the search domain and MX record status.

How It Works

  1. Input Validation — Cleans the domain and validates required fields
  2. Website Crawling — Fetches the website homepage and common pages, extracts all visible email addresses
  3. Pattern Generation — Generates common (info@, contact@, etc.) and name-based (first.last@) patterns
  4. Validation — Validates each email's format with detailed RFC-style checks
  5. MX Check — Queries DNS MX records to verify the domain can receive email
  6. Dedup & Output — Merges, deduplicates, and outputs results

Use Cases

  • Lead generation and prospecting
  • Sales outreach contact discovery
  • Marketing campaign list building
  • Competitor analysis
  • Finding press/media contacts
  • Discovering support/billing contacts

Limitations

  • Crawls publicly visible pages only — does not bypass authentication or scrape behind logins
  • Email pattern generation produces likely addresses but cannot confirm deliverability without sending an actual email
  • MX record checking confirms the domain can receive email, but does not verify individual email existence
  • Some websites obfuscate email addresses (e.g., using JavaScript or images) which cannot be extracted with simple HTTP crawling
  • Respects robots.txt is recommended when used at scale