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_lead

Request

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

FieldTypeDescription
sf_lead_idstringSalesforce Lead record ID. Used to match enrichment results back to the correct record.
emailstringVerified work email. If the existing Salesforce email is invalid, a new verified email is returned.
email_statusenumVerification result for the email: valid, invalid, risky, catch-all, disposable, role-based.
titlestringCurrent job title, normalized. Updates the Salesforce Title field if changed.
seniorityenumSeniority level derived from title normalization.
phonestringDirect dial phone number for the lead.
mobilestringMobile phone number.
companystringCurrent company name, cross-verified against Salesforce Company field.
industrystringIndustry classification, mapped to Salesforce picklist values when possible.
employee_countstringCompany size range.
revenuestringEstimated annual revenue range.
icp_scoreintegerICP fit score (0-100) based on your configured criteria.
enrichment_deltaobjectShows which fields were added (previously empty) and which were updated (value changed). Useful for audit trails.

Code samples

curl
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"}'
Node.js
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);
Python
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

New lead enrichment trigger

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.

Replace Data.com / ZoomInfo

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.

Pre-campaign list enrichment

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.

Stale lead re-enrichment

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

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