Lead Status
| Status | Description |
|---|---|
PENDING | Lead not yet contacted — eligible for sending |
QUEUED | Email task created, waiting to be sent |
SENT | Initial email successfully sent |
OPENED | Email was opened (tracking enabled) |
REPLIED | Lead replied to email |
FAILED | Email send failed |
BOUNCED | Email bounced after sending |
UNSUBSCRIBED | Lead unsubscribed |
EXTERNAL | External/unsolicited incoming lead |
Lead Upload via CSV
POST/api/public/v1/campaigns/{campaign_id}/leads
Upload leads asynchronously via CSV file. The file must include an email column.
CSV Requirements
- Must include an email column (required)
- Additional supported columns:
first_name,last_name,company - Custom columns are mapped automatically and available as
{{custom_column_name}}in your email templates - Max CSV size: 50MB
- Max leads per upload: 10,000
Upload Progress
The upload runs asynchronously. Check progress with:Manual Lead Addition
POST/api/public/v1/campaigns/{campaign_id}/leads/manual
Add a single lead:
Listing Leads
GET/api/public/v1/campaigns/{campaign_id}/leads
List leads with pagination and filtering:
Query Parameters
| Parameter | Description |
|---|---|
page | Page number (1-based, default: 1) |
limit | Items per page (1-100, default: 20) |
status | Filter by status: PENDING, SENT, OPENED, REPLIED, BOUNCED, etc. |
search | Search by email or name |
Deleting Leads
DELETE/api/public/v1/campaigns/{campaign_id}/leads
Only PENDING leads (not yet sent) can be deleted:
Get a Single Lead
GET/api/public/v1/campaigns/{campaign_id}/leads/{lead_id}
Returns full lead data including email interaction history and any replies received from the lead.
Update a Lead
PUT/api/public/v1/campaigns/{campaign_id}/leads/{lead_id}
Update mutable fields on a lead. Only the fields you provide are changed — custom_fields uses merge patch semantics: existing keys are preserved, keys you send are added or updated, and keys explicitly set to null are removed.
Updatable fields: first_name, last_name, company, custom_fields.
Requires the
leads:update scope.Export Leads as CSV
GET/api/public/v1/campaigns/{campaign_id}/leads/export
Downloads all leads for a campaign as a CSV file — bypasses pagination limits, so every lead is included in a single download. The exported columns are:
email, first_name, last_name, company, status, custom_fields (JSON-encoded), created_at
Content-Type is text/csv and the Content-Disposition header sets the suggested filename.
Next Steps
Create Campaign
Set up your campaign with lead mapping configuration.
Personalization
Use lead data in personalized email content.

