Skip to main content

Email Finder

Find contact email addresses associated with a domain. CronDB discovers emails from website content, DNS records, social profiles, and public directories.

Lead explorer

Endpoint

GET /v1/email-finder

Request

Headers

HeaderValue
AuthorizationBearer cdb_your_api_key

Query Parameters

ParameterTypeRequiredDescription
domainstringYesDomain to find emails for

Example Request

curl -H "Authorization: Bearer cdb_your_api_key_here" \
"https://api.crondb.com/v1/email-finder?domain=stripe.com"

Python

import requests

response = requests.get(
"https://api.crondb.com/v1/email-finder",
params={"domain": "stripe.com"},
headers={"Authorization": "Bearer cdb_your_api_key_here"},
)

data = response.json()
for email in data["emails"]:
print(f"{email['address']}{email['confidence']} confidence")

Node.js

const response = await fetch(
"https://api.crondb.com/v1/email-finder?domain=stripe.com",
{ headers: { Authorization: "Bearer cdb_your_api_key_here" } }
);
const data = await response.json();
data.emails.forEach((e) => console.log(`${e.address}${e.confidence}`));

Ruby

require 'net/http'
require 'json'

uri = URI("https://api.crondb.com/v1/email-finder?domain=stripe.com")
req = Net::HTTP::Get.new(uri)
req['Authorization'] = 'Bearer cdb_your_api_key_here'

res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }
data = JSON.parse(res.body)
data['emails'].each { |e| puts "#{e['address']}#{e['confidence']}" }

Response

{
"domain": "stripe.com",
"emails": [
{
"address": "sales@stripe.com",
"type": "generic",
"confidence": "verified",
"source": "website"
},
{
"address": "support@stripe.com",
"type": "generic",
"confidence": "verified",
"source": "website"
},
{
"address": "press@stripe.com",
"type": "generic",
"confidence": "likely",
"source": "dns"
}
],
"total": 3,
"mx_provider": "Google Workspace"
}

Response Fields

FieldTypeDescription
domainstringThe queried domain
emailsarrayArray of email objects
totalintegerNumber of emails found
mx_providerstringDetected email provider

Email Object Fields

FieldTypeDescription
addressstringThe email address
typestringpersonal or generic
confidencestringverified, likely, or unverified
sourcestringWhere the email was found

Confidence Levels

LevelDescription
verifiedMX and SMTP checks passed; email is deliverable
likelyFound on the domain but not SMTP-verified
unverifiedDiscovered from secondary sources, not verified

Email Types

TypeDescriptionExamples
personalLikely belongs to a specific personjohn@, jane.doe@
genericRole-based or department addressinfo@, sales@, support@

Errors

StatusDetailCause
400Invalid domain formatDomain is malformed
401Invalid API keyAuthentication failed
404Domain not foundDomain not in CronDB database
404No emails foundDomain exists but no emails discovered
429Rate limit exceededToo many requests

Notes

  • Each email finder request counts as 1 API query
  • Results are cached and updated periodically
  • Not all domains have discoverable emails
  • Generic emails (info@, support@) are more commonly found than personal emails
  • Use the confidence field to prioritize which emails to use for outreach

Next Steps

  • Enrichment — Get full domain enrichment data
  • Tech Stack — See what technologies the domain uses
  • Search — Find domains with emails