API Reference · crm record
Enrich Salesforce leads via API
Enrich Salesforce leads directly via API or managed sync — fill missing emails, phones, titles, and firmographics without a Data.com subscription or ZoomInfo annual contract. Credit-based pricing, no seat fees.
Endpoint
POST https://api.cleanlist.ai/v1/enrich/salesforce_leadRequest
POST https://api.cleanlist.ai/v1/enrich/salesforce_lead
Authorization: Bearer clnl_live_...
Content-Type: application/json
{
"email": "jane@acme.com"
}Response
{
"id": "ev_sf3k9p7",
"status": "completed",
"salesforce_lead": {
"sf_lead_id": "00Q5e000009XyZaEAK",
"email": "david.kim@enterprise.com",
"email_status": "valid",
"title": "Senior Director of Sales Operations",
"seniority": "director",
"phone": "+1-212-555-0189",
"mobile": "+1-917-555-0234",
"company": "Enterprise Solutions Inc.",
"industry": "Information Technology",
"employee_count": "501-1000",
"revenue": "$100M-$250M",
"icp_score": 91,
"enrichment_delta": {
"fields_added": [
"phone",
"mobile",
"seniority",
"revenue"
],
"fields_updated": [
"title",
"employee_count"
]
}
},
"meta": {
"credits_used": 11,
"providers_queried": 15,
"providers_matched": 9,
"confidence": 0.95,
"enriched_at": "2026-04-15T08:22:17Z"
}
}Field reference
| Field | Type | Description |
|---|---|---|
| sf_lead_id | string | Salesforce Lead record ID. Used to match enrichment results back to the correct record. |
| string | Verified work email. If the existing Salesforce email is invalid, a new verified email is returned. | |
| email_status | enum | Verification result for the email: valid, invalid, risky, catch-all, disposable, role-based. |
| title | string | Current job title, normalized. Updates the Salesforce Title field if changed. |
| seniority | enum | Seniority level derived from title normalization. |
| phone | string | Direct dial phone number for the lead. |
| mobile | string | Mobile phone number. |
| company | string | Current company name, cross-verified against Salesforce Company field. |
| industry | string | Industry classification, mapped to Salesforce picklist values when possible. |
| employee_count | string | Company size range. |
| revenue | string | Estimated annual revenue range. |
| icp_score | integer | ICP fit score (0-100) based on your configured criteria. |
| enrichment_delta | object | Shows which fields were added (previously empty) and which were updated (value changed). Useful for audit trails. |
Code samples
curl -X POST https://api.cleanlist.ai/v1/enrich/salesforce_lead \
-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.salesforce_lead({
email: "jane@acme.com",
});
console.log(result.salesforce_lead.title);from cleanlist import Cleanlist
client = Cleanlist(api_key=os.environ["CLEANLIST_API_KEY"])
result = client.enrich.salesforce_lead(email="jane@acme.com")
print(result["salesforce_lead"]["title"])Common use cases
Set up a Salesforce flow to call Cleanlist when a new lead is created. Automatically fill title, phone, and firmographics before routing to the assigned rep — so they never work an incomplete record.
Switch from annual contract enrichment providers to Cleanlist's credit-based model. Pay per enrichment, not per seat. No minimums, no annual lock-in. Most teams save 40-60% on enrichment costs.
Before launching a Salesforce campaign, run the target leads through enrichment. Verify emails, fill phone numbers, and score against ICP. Only include leads with valid emails and high ICP scores in the campaign.
Run leads that have been untouched for 6+ months through re-enrichment. Catch job changes, update titles, and find new email addresses for contacts who moved companies.
Pricing
Credit-based, no per-seat fees. This endpoint uses the standard enrichment rate:
- Email only: 1 credit per enriched salesforce_lead.
- Email + phone: 11 credits per enriched salesforce_lead.
- Free tier: 30 credits/mo. See all pricing.
FAQ
Does Cleanlist write enrichment data back to Salesforce automatically?
Yes, with the managed sync option. Connect your Salesforce org through the Cleanlist dashboard, configure field mapping, and enriched data writes directly to your Lead records. You control which fields get updated and can set rules to prevent overwriting existing data. The API option returns JSON for teams that prefer to handle the write-back themselves.
How does Cleanlist compare to Salesforce Data.com for lead enrichment?
Data.com (now retired and replaced by limited Salesforce data features) was a single-source database. Cleanlist queries 15+ independent providers in sequence, so coverage is substantially higher — especially for phone numbers and mid-market companies. Pricing is credit-based (no annual contract) and typically 40-60% cheaper than what teams were paying for Data.com or ZoomInfo Salesforce integrations.
What Salesforce editions are supported?
Cleanlist works with all Salesforce editions that support REST API access: Professional (with API add-on), Enterprise, Unlimited, and Developer editions. The managed sync uses OAuth 2.0 for authentication and respects Salesforce field-level security and sharing rules.
Can I enrich Salesforce Contacts and Accounts too?
Yes. Cleanlist has separate endpoints for Salesforce Leads, Contacts, and Accounts. Each endpoint is optimized for the specific object type: Lead enrichment focuses on qualification, Contact enrichment on data accuracy, and Account enrichment on firmographics and buying committee mapping.
Next steps
- Full REST reference: /product/api.
- Related glossary: data enrichment, waterfall enrichment.
- Ready to ship? Start free with 30 credits.