TL;DR: RESTful Public API at api.cleanlist.ai/api/v1/public for programmatic B2B contact enrichment. Authenticate with a clapi_ Bearer token. Submit up to 250 contacts per bulk request, then poll for status or receive results via webhook.
API Reference
The Cleanlist Public API lets you enrich contacts, check your credit balance, and receive enrichment results programmatically. It is a stable, versioned surface designed to be embedded into CRMs, outbound tooling, ETL jobs, and internal workflows.
Base URL
https://api.cleanlist.ai/api/v1/publicAll requests must use HTTPS. HTTP requests are rejected.
The 5 Public API endpoints
| Method | Path | Purpose |
|---|---|---|
GET | /credits/balance | Get your organization's current credit balance |
GET | /auth/validate-key | Check whether an API key is valid |
POST | /enrich/bulk | Submit up to 250 contacts for asynchronous enrichment |
GET | /enrich/status | Poll workflow or task status |
GET | /webhooks/deliveries | List webhook delivery attempts for a workflow |
That's the entire externally-exposed surface. Lead-list management, smart columns, ICP profiles, and CRM sync are available inside the Cleanlist portal (opens in a new tab) but are not part of the Public API.
Quick Start
1. Get your API key
- Log in to portal.cleanlist.ai (opens in a new tab)
- Go to Settings → API Keys
- Click Generate Key
- Copy the key — it starts with
clapi_and is shown only once
You can have up to 10 active keys per user. See Authentication for full details.
2. Check your credit balance
curl https://api.cleanlist.ai/api/v1/public/credits/balance \
-H "Authorization: Bearer clapi_your_api_key"3. Enrich your first batch
curl -X POST https://api.cleanlist.ai/api/v1/public/enrich/bulk \
-H "Authorization: Bearer clapi_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"enrichment_type": "partial",
"contacts": [
{
"first_name": "John",
"last_name": "Doe",
"company_domain": "acme.com"
},
{
"linkedin_url": "https://www.linkedin.com/in/janedoe"
}
]
}'The response contains a workflow_id. Enrichment runs in the background — see Enrichment for how to retrieve results.
API Sections
| Section | Description |
|---|---|
| Authentication | API keys, headers, lifecycle |
| Enrichment | Bulk enrichment and status polling |
| Enrichment Types | The 5 enrichment modes and what each returns |
| Credits | Credit balance, costs, and 402 handling |
| Webhooks | Outbound webhook payload schema and delivery logs |
| Errors | Error codes, validation, and rate limits |
| Lead Lists | How public-API enrichment maps to lead lists (DEFAULT list) |
| OpenAPI | Live OpenAPI / Swagger specification |
Key Concepts
Asynchronous enrichment
POST /enrich/bulk returns immediately with a workflow_id. The actual enrichment runs through Cleanlist's waterfall system across multiple providers. You can:
- Poll
GET /enrich/status?workflow_id=...untilstatusiscompletedorcompleted_with_errors, or - Receive a callback by passing
webhook_urlin the bulk request — Cleanlist will POST the full result set when the workflow finishes.
Credits
Credits are deducted from your organization's balance only when an enrichment succeeds. Common costs:
| Enrichment | Credits |
|---|---|
| Email found | 1 |
| Phone found | 10 |
Email + phone (full) | 11 |
| Failed enrichment | 0 |
See Credits for full pricing and how to handle insufficient-credit errors.
Lead lists
Public API enrichments are automatically grouped into a system-managed lead list named DEFAULT so they remain visible inside the Cleanlist portal. You don't need to create or manage this list yourself — see Lead Lists for details.
Response format
Successful responses return JSON. Error responses use FastAPI's standard format:
{
"detail": "Error message describing what went wrong"
}Common status codes:
| Code | Meaning |
|---|---|
200 | Success |
400 | Bad request (e.g., contact validation failed) |
401 | Missing or invalid API key |
402 | Insufficient credits |
404 | Workflow / task not found |
422 | Pydantic validation error |
429 | Rate limit exceeded |
500 | Internal server error |
See Errors for the complete reference.
Learn more
- Waterfall enrichment — how Cleanlist combines multiple providers
- Pricing — credit-based pricing details
- Cleanlist product overview (opens in a new tab)