Company Email Finder
Find public emails for a company - Returns verified public email addresses for a given company domain.
5 credits/req
2.5
Overview
The Company Email Finder endpoint returns verified public email addresses associated with a company domain. Pass a domain, get emails — ready for outreach, lead generation, or CRM enrichment.
Who Is This For?
| Role | Use Case |
|---|---|
| Marketers | Build targeted email lists from a list of company domains for outbound campaigns. |
| Lead Generation Teams | Enrich prospect lists with verified contact points before handing off to sales. |
| Developers | Integrate email discovery into CRMs, sales tools, or internal automation pipelines. |
What You Can Build
- Cold outreach automation — feed a list of domains, collect emails, plug them straight into your email sequences.
- CRM enrichment pipeline — automatically fill missing contact fields when a new company is added to your CRM.
- Lead qualification tool — verify a company has reachable contacts before your sales team spends time on it.
- Prospecting dashboard — combine with the Company Directory endpoint to scrape industries and surface emails in one workflow.
- Account-based marketing (ABM) lists — target specific companies with known, validated email addresses.
Endpoint
POST https://api.scravity.com/v1/email/company-email-finder
Cost: 5 credits per successful request · Avg. Response Time: ~3.5s
Authentication
Include your API key as a Bearer token in every request.
Authorization: Bearer YOUR_API_KEY
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
domain |
string | Yes | The root domain of the target company (e.g., scravity.com). |
Code Examples
cURL
curl -X POST https://api.scravity.com/v1/email/company-email-finder \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"domain": "scravity.com"}'
Python
import requests
url = "https://api.scravity.com/v1/email/company-email-finder"
headers = {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
}
payload = {"domain": "scravity.com"}
r = requests.post(url, json=payload, headers=headers)
print(r.json())
JavaScript
const res = await fetch("https://api.scravity.com/v1/email/company-email-finder", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({ domain: "scravity.com" })
});
const data = await res.json();
console.log(data);
Response Format
Success (200)
{
"success": true,
"domain": "scravity.com",
"content": [...],
"logs": []
}
No Emails Found (404)
{
"success": false,
"error": "Domain not found or no emails available",
"domain": "example.com"
}
Insufficient Credits (402)
{
"success": false,
"error": "Insufficient credits",
"details": ["You need at least 5 credits to perform this action. Current balance: 2."]
}
Validation Error (422)
{
"detail": [
{
"loc": ["body", "domain"],
"msg": "Field required",
"type": "value_error.missing"
}
]
}
Credits
| Result | Cost |
|---|---|
| Emails found | 5 credits |
| No emails found (404) | 0 credits |
| Repeated domain query (within 15 days) | 0 credits |
Rate Limits
| Window | Limit |
|---|---|
| Per second | 2 requests |
| Per minute | 120 requests |
Tips
- Always pass the root domain without protocol or path — use
scravity.com, nothttps://scravity.com/about. - A 404 costs nothing — safe to probe domains without worrying about burning credits on empty results.
- Querying the same domain within 15 days is free — useful when polling domains across multiple campaigns.
- Check your balance first with
GET /v1/creditsbefore running bulk lookups.