Enrich contacts via API
Pass an email or LinkedIn URL and get back 40+ verified fields — name, title, seniority, company firmographics, direct dial, mobile, and social profiles — all cross-checked across 25+ data providers in a single API call.
AuthorizationBearer clnl_live_…
Content-Typeapplication/json
{
"email": "jane@acme.com"
}- 1 creditA verified work email, however many providers it took to find it.
- 11 creditsEmail and direct dial together, on the same call.
- 25+ providersQueried in cost order. The first source that returns wins, and a miss costs nothing.
- 98% / 85%Verified work email and direct dial, measured on a 500-lead stratified test.
One call in.17 fields back.
The payload for a single contact lookup, and every field the record can carry. Same shape on every plan.
{
"id": "ev_c9x2kf8",
"status": "completed",
"contact": {
"email": "jane.smith@acme.com",
"email_status": "valid",
"first_name": "Jane",
"last_name": "Smith",
"title": "VP of Marketing",
"seniority": "VP",
"department": "Marketing",
"linkedin_url": "https://linkedin.com/in/janesmith",
"phone": "+1-415-555-0142",
"phone_type": "direct_dial",
"mobile": "+1-415-555-0198",
"location": "San Francisco, CA",
"company_name": "Acme Corp",
"company_domain": "acme.com",
"company_industry": "SaaS",
"company_size": "201-500",
"company_revenue": "$50M-$100M"
},
"meta": {
"credits_used": 11,
"providers_queried": 25,
"providers_matched": 8,
"confidence": 0.96,
"enriched_at": "2026-04-15T14:32:01Z"
}
}- emailstringVerified work email address. SMTP-checked against live mail server.
- email_statusenumVerification result: valid, invalid, risky, catch-all, disposable, role-based, unknown.
- first_namestringContact's first name, cross-referenced across providers.
- last_namestringContact's last name.
- titlestringCurrent job title, normalized to standard form (e.g., 'VP of Sales' not 'VP, Sales & BD').
- seniorityenumSeniority level: entry, individual_contributor, manager, director, vp, c_level, owner.
- departmentstringDepartment classification: Sales, Marketing, Engineering, Operations, Finance, HR, etc.
- linkedin_urlstringLinkedIn profile URL, validated for current employment match.
- phonestringDirect dial phone number in E.164 format.
- phone_typeenumPhone classification: direct_dial, mobile, hq_switchboard.
- mobilestringMobile phone number, if available. Requires 11 credits.
- locationstringCity, state/province, country based on most recent employment data.
- company_namestringCurrent employer name, matched against corporate registries.
- company_domainstringPrimary company website domain.
- company_industrystringIndustry classification using SIC/NAICS mapping.
- company_sizestringEmployee count range: 1-10, 11-50, 51-200, 201-500, 501-1000, 1001-5000, 5001+.
- company_revenuestringEstimated annual revenue range.
Call it from anything.Pay for what comes back.
One POST from curl, Node or Python. Credits are drawn from one wallet the whole team shares, and a call that finds nothing is never charged.
curl -X POST https://api.cleanlist.ai/v1/enrich/contact \
-H "Authorization: Bearer $CLEANLIST_API_KEY" \
-H "Content-Type: application/json" \
-d '{"email": "jane@acme.com"}'import Cleanlist from "cleanlist";
const client = new Cleanlist(process.env.CLEANLIST_API_KEY);
const result = await client.enrich.contact({
email: "jane@acme.com",
});
console.log(result.contact.title);from cleanlist import Cleanlist client = Cleanlist(api_key=os.environ["CLEANLIST_API_KEY"]) result = client.enrich.contact(email="jane@acme.com") print(result["contact"]["title"])
- SearchFree, unlimited
- Verified work email1 credit
- Direct dial10 credits
- Email and direct dial11 credits
- Validation0.5 credits
- AI qualification5 credits
- A call that finds nothing0
One shared wallet across the team. The Free plan runs on 30 credits a month.
What teams do with it, and what they ask first.
Outbound prospecting
Pass a LinkedIn Sales Nav export of emails and get back verified contact records with direct dials, seniority, and company size — ready for sequencing.
CRM record completion
Enrich incomplete Salesforce or HubSpot contacts to fill title, phone, and firmographic gaps without manual research.
Lead routing and scoring
Use seniority, department, and company_size fields to auto-route inbound leads to the right rep and score against your ICP.
Event follow-up enrichment
Turn a badge-scan CSV of names and emails into fully enriched contact records within hours of the event ending.
What input does the contacts enrichment endpoint accept?
You can pass an email address, a LinkedIn URL, or a name + company combination. Email is the most reliable identifier and returns the highest match rate (98%+). LinkedIn URL match rate is 95%+. Name + company matching is approximately 85% depending on name uniqueness.
How many credits does contact enrichment cost?
Email-only enrichment costs 1 credit per contact. Full enrichment with phone numbers costs 11 credits per contact. Unmatched lookups do not consume credits. Free accounts receive 30 credits per month.
How is the email verified during enrichment?
Every email returned goes through triple verification: syntax validation, DNS/MX record check, and live SMTP handshake. Catch-all domains are flagged as 'risky' so you can decide whether to include them in outreach. The email_status field tells you the exact result.
What happens if a contact has changed jobs since the data was last updated?
Cleanlist queries 25+ providers in sequence and selects the most recently verified data. If a contact changed jobs, the waterfall typically picks up the new employer within 30-60 days. The enriched_at timestamp tells you when the data was last confirmed.
Can I enrich contacts in bulk via the API?
Yes. The API accepts batch requests of up to 1,000 contacts per call. For larger volumes, use the async batch endpoint which processes up to 100,000 contacts and sends a webhook when complete. CSV upload through the dashboard handles unlimited volumes.
Enrich contacts in production.
The public API is on Pro and Scale. Search costs nothing on every plan, and a call that returns nothing is never charged.
Related reading: data enrichment and waterfall enrichment. Plans and credit rates are on pricing.