Email API
Verify and find business emails. Use verify to validate deliverability and find to discover email addresses for known people/domains.
Realtime
api_key in query (legacy)
Email
Notes
- api_key in query is legacy. Prefer Authorization: Bearer in new integrations.
- Verification is best used before outreach (bounce reduction).
- Results include a compact status + optional reason. Treat unknown fields as optional (forward-compatible).
Navigation
Request
| Part | Field | Type | Notes |
|---|---|---|---|
| Query | api_key | string | Required (legacy) |
| Body | string | Email to verify |
Body example
{
"email": "john.doe@company.com"
}
Tip: run verification before sequences to reduce bounces.
Response (example)
{
"email": "john.doe@company.com",
"status": "valid",
"reason": null
}
Status can be valid, invalid, risky, or unknown.
POST
Find Email
/email/find
Discover a likely work email using personal name + company identifier (domain or company name).
Request
| Part | Field | Type | Notes |
|---|---|---|---|
| Query | api_key | string | Required (legacy) |
| Body | first_name | string | Required |
| Body | last_name | string | Required |
| Body | domain | string | Recommended (e.g., company.com) |
| Body | company | string | Optional fallback if domain is unknown |
Body example
{
"first_name": "John",
"last_name": "Doe",
"domain": "company.com"
}
Tip: pass a clean domain (no protocol, no path) for best matching.
Response (example)
{
"input": {
"first_name": "John",
"last_name": "Doe",
"domain": "company.com"
},
"email": "john.doe@company.com",
"confidence": 0.86,
"verification": {
"status": "valid"
}
}
You may get null if no confident match exists.
Statuses
Verification statuses are intentionally simple so you can map them to your outreach rules.
| Status | Meaning | Recommended action |
|---|---|---|
| valid | Deliverable | Safe to send |
| risky | May bounce (catch-all, temporary) | Send with caution / lower volume |
| unknown | Cannot determine reliably | Retry later or use alternate channel |
| invalid | Undeliverable | Do not send |
Tip: Many teams only send to valid (and optionally risky) to keep bounce rate low.
Use cases
Typical automations for verification and discovery.
Make
- New row in Sheets (name + domain)
- HTTP → POST /email/find
- HTTP → POST /email/verify
- Write back status + email
Zapier
- Trigger: new lead
- Webhooks → /email/find
- Webhooks → /email/verify
- Create/update contact in CRM
Clay
- Columns: first_name, last_name, domain
- API enrichment → /email/find
- Optional: verify before export
Quick curl
# find
curl -X POST "https://api.scrupp.com/email/find?api_key=YOUR_API_KEY" \
-H "Content-Type: application/json" \
--data '{"first_name":"John","last_name":"Doe","domain":"company.com"}'
# verify
curl -X POST "https://api.scrupp.com/email/verify?api_key=YOUR_API_KEY" \
-H "Content-Type: application/json" \
--data '{"email":"john.doe@company.com"}'