Audience: developers. API keys and the REST API are included on Pro and Enterprise (and legacy Pro and Scale plans) and on AppSumo Tiers 5 to 7. They are not available on Free, Starter, AppSumo Tiers 1 to 4 or during the Pro trial. Support agent: confirm the user's plan includes API access before giving API advice.
TL;DR: partial (default) finds a work email plus profile data for 1 credit per email found. phone_only finds a phone number for 10 credits per phone found. full does both, up to 11 credits. Nothing is charged when nothing is found.
Enrichment types
The enrichment_type field on POST /api/v1/public/enrich/bulk decides what Cleanlist looks for on each contact. One type applies to every contact in the request.
Quick comparison
| Type | What it looks for | Credits |
|---|---|---|
partial (default) | Work email, plus profile data (LinkedIn URL, title, company) | 1 per email found |
phone_only | Phone number only | 10 per phone found |
full | Work email and phone number | 1 per email found + 10 per phone found (up to 11) |
Contacts where nothing is found cost 0 credits. Before the run starts, your balance must cover the full price for every contact (1, 10 or 11 each); see Credits.
partial (default)
Used when you leave out enrichment_type. Cleanlist runs its email waterfall and keeps the first reliable work email, along with the profile data found on the way. It skips the phone lookup.
{
"enrichment_type": "partial",
"contacts": [
{ "linkedin_url": "https://www.linkedin.com/in/janedoe" }
]
}Cost: 1 credit per email found.
phone_only
Skips the email lookup and looks for a phone number. Use it when you already have emails and need phones for calling.
{
"enrichment_type": "phone_only",
"contacts": [
{ "linkedin_url": "https://www.linkedin.com/in/janedoe" }
]
}Cost: 10 credits per phone found.
full
Looks for both a work email and a phone number.
{
"enrichment_type": "full",
"contacts": [
{ "linkedin_url": "https://www.linkedin.com/in/janedoe" }
]
}Cost: 1 credit if an email is found plus 10 if a phone is found, so up to 11 per contact.
What you get back
Results arrive in the webhook payload and in per-contact status polls:
- Webhook result:
email,email_status,other_emails,phones,provider,linkedin_url. - Task poll result:
email,email_status,phone,provider,linkedin_url.
The full profile (title, company, location and so on) is saved on the lead in your Extension Leads list. See Lead lists.
Choosing a type
| If you want to... | Use |
|---|---|
| Get work emails as cheaply as possible | partial |
| Get phone numbers for calling | phone_only |
| Get the most complete contact data | full |
The same depths on v2
The v2 API supports the same three depths: partial, phone_only and full as enrichment_type on CSV import, and partial, phone-only and full as scope on list enrichment. v1 rejects any other value, such as prospecting_only, with a 422.
After enrichment
To research or score the enriched contacts, open the Extension Leads list in the app (or copy the contacts to another list) and run a skill such as the Research or Qualification skill from the Actions drawer. Skills use the same workspace credit balance and show their price before you run them.