9 min readTutorial

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:

1
Lead Enrichment — Email/phone in, full profile out (name, company, title, industry, socials)
2
Business Lookup — Get the company's rating, reviews, hours, and location
3
Website Audit — Score their website for speed, SEO, mobile, and security
4
Score & Prioritize — Decision maker + bad website + low rating = hot lead

Full Code: Lead Enrichment Pipeline

Python
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

ProviderPer enrichmentMinimumIncludes other endpoints?
Clearbit$0.10-$0.50$99/moNo
ZoomInfoCustom$10K+/yearNo
Apollo$0.05-$0.10$49/moLimited
Rebirth API$0.05FreeYes (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.