Skip to main content
A campaign represents a single outreach effort in ColdSend. Each campaign contains leads, email variants, follow-up sequences, and sender accounts, working together to automate your cold email outreach.

Campaign Lifecycle

Campaigns progress through distinct states:

DRAFT

Campaign is being configured. You can add leads, assign inboxes, create email variants, and set up sequences.

ACTIVE

Campaign is running and sending emails according to schedule and limits.

PAUSED

Campaign is temporarily stopped. No emails are being sent, but all configuration is preserved.

COMPLETED

All leads have been processed. No more emails will be sent.

FAILED

Campaign launch failed due to configuration issues or missing components.

Campaign Workflow

Campaign creation and activation follows a component-based approach:
  1. Create Campaign — Set core configuration (name, schedule, limits)
  2. Upload Leads — Add recipients via CSV
  3. Assign Inboxes — Select sender accounts for the campaign
  4. Design Emails — Create email variants and follow-up sequences
  5. Launch — Set launch: true to activate. The API validates all requirements automatically.
The public API does not expose internal step numbers. Simply provide the fields you want to update, and the system handles validation automatically. Set launch: true when you’re ready to activate.

Step 1: Create Campaign

Initialize a campaign with core settings:
import requests

response = requests.post(
    https://api.coldsend.pro/api/public/v1/campaigns,
    headers={X-API-Key: api_key},
    json={
        name: Product Launch Outreach,
        timezone: America/New_York,
        sending_days: [1, 2, 3, 4, 5],
        sending_window_start: 9,
        sending_window_end: 17,
        daily_limit_per_inbox: 30
    }
)

campaign_id = response.json()[campaign_id]

Step 2: Upload Leads

Leads are uploaded via CSV upload. See Leads Management for detailed instructions.

Step 3: Assign Inboxes & Configure Content

Update the campaign with inbox assignments, email variants, and sequences all in one PUT request:
response = requests.put(
    fhttps://api.coldsend.pro/api/public/v1/campaigns/{campaign_id},
    headers={X-API-Key: api_key},
    json={
        inbox_ids: [inbox_id],
        variants: [
            {
                variant_name: A,
                subject_template: Quick question about {{company}},
                email_content: Hi {{first_name}},\n\nI noticed {{company}} is expanding...,
                distribution_percent: 100
            }
        ]
    }
)

Step 4: Launch

Set launch: true to activate:
response = requests.put(
    fhttps://api.coldsend.pro/api/public/v1/campaigns/{campaign_id},
    headers={X-API-Key: api_key},
    json={launch: True}
)
The response includes is_launch_ready and missing_requirements to help you check what’s missing.
When launch: true, the API validates that the campaign leads, inboxes, and email content are all configured. If requirements are missing, the campaign stays in DRAFT and the response tells you what’s needed.

Campaign Actions

Pause Campaign

response = requests.post(
    fhttps://api.coldsend.pro/api/public/v1/campaigns/{campaign_id}/pause,
    headers={X-API-Key: api_key}
)

Activate/Resume Campaign

response = requests.post(
    fhttps://api.coldsend.pro/api/public/v1/campaigns/{campaign_id}/activate,
    headers={X-API-Key: api_key}
)

Delete Campaign

response = requests.delete(
    fhttps://api.coldsend.pro/api/public/v1/campaigns/{campaign_id},
    headers={X-API-Key: api_key}
)
Only DRAFT or PAUSED campaigns can be deleted. This is permanent — all leads, sequences, and analytics are removed.

Campaign Limits

CategoryLimit
Email variantsMax 4 per campaign
Follow-up sequencesMax 3 per campaign
Total sequence durationMax 45 days
Max wait between stepsMax 30 days per step
Leads per uploadMax 10,000
Max CSV file size50MB
Campaign name8-255 characters

Next Steps

Create Campaign

Detailed guide for campaign creation with all available parameters.

Email Variants

Configure A/B testing variants and distribution.

Follow-up Sequences

Set up automated follow-up sequences.

Personalization

Use variables, spintax, and conditionals for personalized content.