TL;DR: Three enrichment types. partial = email only (1 credit), phone_only = phone only (10 credits), full = email + phone (11 credits). The bulk list endpoint spells phone_only as phone-only (hyphen) under its scope field, but the pricing is identical.
Enrichment Types
Every Cleanlist enrichment is one of three types. The type controls which data points the waterfall goes looking for, and the cost.
| Type | What you get | Cost / lead |
|---|---|---|
partial | Verified business email only | 1 |
phone_only | Phone number only | 10 |
full | Verified email and phone | 11 |
Phone discovery is more expensive than email because it draws on premium phone providers — that's why full (11) is partial (1) plus the phone cost (10).
Field names by endpoint
The same three types appear under slightly different field names depending on the endpoint:
| Endpoint | Field | Accepted values |
|---|---|---|
POST /enrichment/person | enrichment_type | partial, phone_only, full |
POST /enrichment/bulk | scope | partial, full, phone-only |
POST /lead-lists/{id}/csv-import | enrichment_type | partial, phone_only, full |
POST /enrichment/by-task | data_points | derived (see below) |
The bulk list endpoint uses phone-only (hyphen) under scope; the person and CSV endpoints use phone_only (underscore) under enrichment_type. They mean the same thing and cost the same.
By-task: data points → type
The by-task cohort endpoint takes data_points instead of a single enum, and derives the type:
data_points | Resolved type | Cost / lead |
|---|---|---|
["Email", "Phone"] | full | 11 |
["Phone"] | phone_only | 10 |
["Email"] (or ["LinkedIn"]) | partial | 1 |
Legacy include_phone
The single-person endpoint also accepts a legacy boolean, include_phone, kept for older callers:
include_phone: false→partial(email only)include_phone: true→phone_only
When set, the explicit enrichment_type field always wins. New integrations should use enrichment_type — it's the only way to express full.
Choosing a type
- Building an outbound email list? Use
partial. Cheapest, highest fill rate. - Cold calling? Use
phone_only. - Multi-channel (email + dialer)? Use
full— one call, both channels, cheaper than two separate runs.