Cleanlist
Authentication Type: API Key
Description: Bulk contact enrichment service. Submit contacts (by name + company or LinkedIn URL) and receive verified emails, phones, and firmographic data via an asynchronous workflow.
Authentication
To authenticate, you'll need a Cleanlist API key:
- Log in to portal.cleanlist.ai
- Navigate to Settings → API Keys
- Click Generate Key, name it, and copy the full key (starts with
clapi_) — it is shown only once - Provide it as the
apiKeyfield
You'll also need a plan that includes API access and enough credits for the records you plan to enrich.
Enrichment
Submit and poll asynchronous enrichment workflows. The flow is: call Bulk Enrichment to start a workflow, then call Enrichment Status every 5–10 seconds until the workflow reaches a terminal state.
Bulk Enrichment
Submit a batch of contacts for asynchronous enrichment. Returns immediately with a workflow_id and a list of task_ids (one per submitted contact). Each contact can be identified either by name + company info or by a LinkedIn URL alone.
Operation Type: Mutation (Write)
Parameters:
- enrichment_type
string(required): One of"none","partial","phone_only","full","prospecting_only"."partial"returns work email + standard fields;"full"includes personal emails;"none"validates only. - contacts
array of objects(required): The records to enrich. Costs credits per record.- first_name
string(nullable): First name - last_name
string(nullable): Last name - company_domain
string(nullable): Employer domain (e.g., "acme.com") — strongest signal alongside name - company_name
string(nullable): Employer name (use if domain is unknown) - linkedin_url
string(nullable): LinkedIn profile URL — can be used alone with no name or company - email
string(nullable): Known email; lets Cleanlist verify and append additional fields
- first_name
Returns:
- workflow_id
string: Workflow identifier — pass tocleanlist/enrich/statusto poll for results - task_ids
array of strings: One task ID per submitted contact, in submission order
Example Usage:
{
"enrichment_type": "partial",
"contacts": [
{
"first_name": "John",
"last_name": "Doe",
"company_domain": "acme.com"
},
{
"linkedin_url": "https://www.linkedin.com/in/janedoe"
}
]
}
Enrichment Status
Poll the status of a Cleanlist bulk enrichment workflow. Call repeatedly until status is "completed", "completed_with_errors", or "failed" — then read the results array. Recommended poll interval: every 5–10 seconds.
Operation Type: Query (Read)
Parameters:
- workflow_id
string(required): Workflow ID returned bycleanlist/enrich/bulk
Returns:
- workflow
object:- workflow_id
string: Workflow identifier - status
string:"queued","running","completed","completed_with_errors", or"failed" - enrichment_type
string(nullable): Enrichment type the workflow was submitted with - summary
object(nullable): Counts (null while running)- total
number(nullable): Total records submitted - successful
number(nullable): Successfully enriched - failed
number(nullable): Failed to enrich - emails_found
number(nullable): Records that yielded an email - phones_found
number(nullable): Records that yielded a phone
- total
- results
array of objects(nullable): Enriched records (null while running). Each result includestask_id,primary_email,primary_email_status,prospect,company, etc. - completed_at
string(nullable): ISO-8601 completion timestamp
- workflow_id
Example Usage:
{
"workflow_id": "public_bulk_4d6f2c3a-1f8b-4c8d-a9e3-2c1b9f5a4d8b"
}
Account
Credit Balance
Check the current credit balance on your Cleanlist account. Use this before submitting a large bulk enrichment to confirm you have enough credits.
Operation Type: Query (Read)
Parameters:
- None.
Returns:
- Current account balance details (credit count and any plan metadata Cleanlist returns).
Example Usage:
{}
Common Use Cases
Outbound Prospecting:
- Enrich a list of names + companies pulled from LinkedIn or a CRM export
- Get verified work emails and direct phones for cold outreach
- Validate an existing list before launching a sequence
Data Hygiene:
- Bulk-validate emails on inactive CRM contacts and re-engage the ones that bounce
- Refresh stale job-title and employer fields on accounts you haven't touched in months
- Standardize LinkedIn URLs into contact records
Lead Workflows:
- Trigger Cleanlist whenever a new prospect signs up — append email, phone, and firmographic context before routing to a rep
- Score inbound leads using
successful/emails_foundcounts as a data-quality signal - Auto-pause a workflow if the credit balance dips below a threshold