How to Build a Lead Enrichment Tool with a Single API
Your sales team gets a list of emails. Instead of manually Googling each one, enrich them programmatically into full profiles with company data, website scores, and qualification signals.
What Is Lead Enrichment?
Lead enrichment takes a minimal data point — usually an email or phone number — and expands it into a full profile: name, company, job title, industry, company size, social profiles, phone number, and location.
This data helps sales teams prioritize outreach, personalize messaging, and close faster.
Why Build Your Own Instead of Buying a Tool?
Clearbit, ZoomInfo, and Apollo are great dashboard products. But if you're a developer building enrichment into your own product, you need an API. And most enrichment APIs have problems:
Expensive
Per-contact pricing adds up fast. ZoomInfo starts at $10K+/year. Clearbit charges $0.10-$0.50 per enrichment depending on volume.
Complex
OAuth flows, webhook callbacks, credit systems, separate billing dashboards. Integration takes days, not minutes.
Siloed
Enrichment is separate from business lookup, website audits, and outreach. More providers means more integration work.
The Architecture: A Complete Lead Pipeline
Instead of using 3-4 different APIs, here's how to build a full lead qualification pipeline with Rebirth API's unified platform:
Full Code: Lead Enrichment Pipeline
import requests
from typing import Optional
BASE = "https://rebirthapi.com/api"
HEADERS = {
"Authorization": "Bearer rb_live_your_key",
"Content-Type": "application/json"
}
def enrich_and_score(email: str) -> dict:
"""Full pipeline: enrich -> lookup -> audit -> score."""
# 1. Enrich the email into a profile
lead = requests.post(f"{BASE}/v1/lead-enrich",
headers=HEADERS,
json={"email": email}
).json()
company_name = lead.get("company", {}).get("name")
if not company_name:
return {"email": email, "score": 0, "status": "no_company_found"}
# 2. Look up the company for ratings and location
biz = requests.post(f"{BASE}/v1/business-lookup",
headers=HEADERS,
json={"query": company_name, "limit": 1}
).json()
business = biz["results"][0] if biz.get("results") else {}
website = business.get("website") or lead.get("company", {}).get("website")
# 3. Audit their website (if they have one)
audit = None
if website:
audit = requests.post(f"{BASE}/v1/website-audit",
headers=HEADERS,
json={"url": website}
).json()
# 4. Score the lead
score = 0
signals = []
# Decision maker?
title = lead.get("person", {}).get("title", "").lower()
if any(role in title for role in ["ceo", "cto", "owner", "founder", "vp", "director"]):
score += 30
signals.append(f"Decision maker: {lead['person']['title']}")
# Bad website = needs help
if audit and audit.get("scores", {}).get("overall", 100) < 60:
score += 25
signals.append(f"Poor website (score: {audit['scores']['overall']})")
elif not website:
score += 35
signals.append("No website at all")
# Low rating = pain point
rating = business.get("rating", 5)
if rating and rating < 4.0:
score += 20
signals.append(f"Low rating: {rating} stars")
# Small team = decision maker accessible
size = lead.get("company", {}).get("size", "")
if "1-10" in size or "11-50" in size:
score += 10
signals.append(f"Small team ({size})")
priority = "hot" if score >= 50 else "warm" if score >= 25 else "cold"
return {
"email": email,
"person": lead.get("person"),
"company": lead.get("company"),
"business_data": business,
"website_scores": audit.get("scores") if audit else None,
"score": min(score, 100),
"priority": priority,
"signals": signals
}
# Process a list of leads
emails = [
"john@smithplumbing.com",
"sarah@acmedesign.co",
"mike@bigcorpinc.com"
]
for email in emails:
result = enrich_and_score(email)
print(f"{result['priority'].upper():>4} ({result['score']:>3}) "
f"{email} — {', '.join(result['signals'])}")Three API calls per lead. One API key. A complete qualification pipeline that would take a human 15+ minutes per lead to do manually.
Use Cases by Role
For SaaS Products
Enrich user signups automatically. When someone signs up with a work email, pull their company data to customize onboarding. Route enterprise leads (50+ employees, VP+ title) to sales immediately. Put everyone else in self-serve.
For Sales Teams
Upload a CSV of emails, enrich them via the API, score based on website quality and company size, and push the hottest leads into your CRM with full context. Your reps spend time on leads that will close, not leads that won't respond.
For Agencies
Build a prospecting engine: search for businesses in a category, audit their websites, enrich the owner's contact info, and generate a personalized outreach message — all from one API. Four endpoints, one pipeline, zero manual work.
Cost Comparison
| Provider | Per enrichment | Minimum | Includes other endpoints? |
|---|---|---|---|
| Clearbit | $0.10-$0.50 | $99/mo | No |
| ZoomInfo | Custom | $10K+/year | No |
| Apollo | $0.05-$0.10 | $49/mo | Limited |
| Rebirth API | $0.05 | Free | Yes (4 more) |
FAQ
How accurate is email-to-company enrichment?
For work emails (john@company.com), accuracy is very high since the domain maps directly to the company. For personal emails (Gmail, Yahoo), accuracy depends on the data sources available.
Can I enrich in bulk?
Yes. Loop through your list and call the API for each contact. Use batching with rate limit awareness (the code examples above show this pattern). On the Growth plan, you get 120 requests/minute.
How is this different from Clearbit?
Clearbit is enrichment-only. Rebirth API gives you enrichment + business lookup + website audit + review response + SMS generation through one API key. If you need more than just enrichment, Rebirth eliminates the multi-provider overhead.
Start Building
Business Lookup is live now. Lead Enrichment is coming soon. Get your free key and start with the live endpoint.