API Reference · core

Enrich leads via API

Send a raw lead — just an email or name + company — and get back a fully scored ICP record with verified contact data, firmographics, intent signals, and a 0-100 fit score. One API call replaces the manual research loop.

Endpoint

POST https://api.cleanlist.ai/v1/enrich/lead

Request

POST https://api.cleanlist.ai/v1/enrich/lead
Authorization: Bearer clnl_live_...
Content-Type: application/json

{
  "email": "jane@acme.com"
}

Response

{
  "id": "ev_l4m8np2",
  "status": "completed",
  "lead": {
    "email": "mike.chen@techflow.io",
    "email_status": "valid",
    "first_name": "Mike",
    "last_name": "Chen",
    "title": "Director of Revenue Operations",
    "seniority": "director",
    "company_name": "TechFlow",
    "company_domain": "techflow.io",
    "company_size": "51-200",
    "company_industry": "SaaS",
    "company_revenue": "$10M-$25M",
    "icp_score": 87,
    "icp_signals": [
      "target_seniority",
      "target_department",
      "company_size_fit",
      "industry_match"
    ],
    "intent_signals": [
      "hiring_sales_ops",
      "evaluated_competitor"
    ]
  },
  "meta": {
    "credits_used": 11,
    "providers_queried": 15,
    "providers_matched": 6,
    "confidence": 0.92,
    "enriched_at": "2026-04-15T09:18:44Z"
  }
}

Field reference

FieldTypeDescription
emailstringVerified work email address with SMTP-level validation.
email_statusenumVerification result: valid, invalid, risky, catch-all, disposable, role-based, unknown.
first_namestringLead's first name.
last_namestringLead's last name.
titlestringNormalized job title.
seniorityenumSeniority level classification.
company_namestringCurrent employer.
company_domainstringCompany primary domain.
company_sizestringEmployee count range.
company_industrystringIndustry classification.
company_revenuestringEstimated annual revenue.
icp_scoreinteger0-100 fit score against your configured ICP. 80+ = high priority, 50-79 = nurture, below 50 = deprioritize.
icp_signalsstring[]Array of specific ICP match signals explaining the score breakdown.
intent_signalsstring[]Active buying intent signals detected: hiring patterns, technology evaluations, competitor engagement.

Code samples

curl
curl -X POST https://api.cleanlist.ai/v1/enrich/lead \
  -H "Authorization: Bearer $CLEANLIST_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"email": "jane@acme.com"}'
Node.js
import Cleanlist from "cleanlist";

const client = new Cleanlist(process.env.CLEANLIST_API_KEY);

const result = await client.enrich.lead({
  email: "jane@acme.com",
});
console.log(result.lead.title);
Python
from cleanlist import Cleanlist

client = Cleanlist(api_key=os.environ["CLEANLIST_API_KEY"])

result = client.enrich.lead(email="jane@acme.com")
print(result["lead"]["title"])

Common use cases

Inbound lead qualification

Enrich and score every form submission in real time. Route high-ICP leads to reps instantly, send low-fit leads to nurture sequences automatically.

List purchase validation

Run purchased lead lists through enrichment before importing to CRM. Remove invalids, fill missing fields, and score against ICP — so only qualified leads enter your pipeline.

SDR territory planning

Enrich a raw list of target companies into scored lead records. Sort by ICP score to prioritize the highest-fit accounts for each rep's territory.

Automated lead routing

Use icp_score, seniority, and company_size in your routing rules to assign leads to the right rep, sequence, or SLA tier without manual triage.

Pricing

Credit-based, no per-seat fees. This endpoint uses the standard enrichment rate:

  • Email only: 1 credit per enriched lead.
  • Email + phone: 11 credits per enriched lead.
  • Free tier: 30 credits/mo. See all pricing.

FAQ

How does ICP scoring work in the lead enrichment endpoint?

ICP scoring compares enriched lead attributes (title, seniority, company size, industry, revenue, tech stack) against your configured Ideal Customer Profile. You define your ICP criteria in the Cleanlist dashboard, and every enriched lead receives a 0-100 score with a breakdown of which signals matched. Scores above 80 indicate a strong fit.

What is the difference between lead enrichment and contact enrichment?

Contact enrichment returns verified contact data (email, phone, title, company). Lead enrichment returns the same contact data plus ICP scoring and intent signals. Use contact enrichment when you need data accuracy. Use lead enrichment when you also need qualification and prioritization.

Can I enrich leads with just a company name and no email?

Yes. The lead enrichment endpoint accepts email, name + company, domain, or LinkedIn URL as input. When you provide a company name without an email, Cleanlist identifies the best-fit contacts at that company based on your ICP criteria and returns enriched records for them.

How fresh are the intent signals?

Intent signals are refreshed weekly from hiring data, technology adoption signals, and web activity patterns. The recency of each signal is included in the response so you can weight recent signals more heavily in your routing logic.

Next steps

30 credits included. No credit card required. Set up in 5 minutes.