Update campaign
Update campaign configuration
Modify campaign settings, leads, inboxes, email content, or sequences. All validations are handled automatically - no need to track internal steps.
What Can Be Updated
- Basic settings (name, schedule, limits)
- Lead mapping configuration
- Sender inbox selection
- Email variants for A/B testing
- Follow-up sequences
Launching a Campaign
Set launch: true when the campaign is ready to activate. The response includes
is_launch_ready and missing_requirements to help you understand what’s needed.
Example Usage
import requests
campaign_id = "550e8400-e29b-41d4-a716-446655440000"
# Update campaign with email content
response = requests.put(
f"https://api.coldsend.io/api/public/v1/campaigns/{campaign_id}",
headers={"X-API-Key": "your-api-key"},
json={
"variants": [{
"variant_name": "A",
"subject_template": "Quick question, {{first_name}}",
"email_content": "Hi {{first_name}},...",
"distribution_percent": 100
}]
}
)
# Response shows what's still needed
# {"is_launch_ready": false, "missing_requirements": ["leads", "inboxes"]}
# Launch when ready
response = requests.put(
f"https://api.coldsend.io/api/public/v1/campaigns/{campaign_id}",
headers={"X-API-Key": "your-api-key"},
json={"launch": true}
)
# {"status": "ACTIVE", "is_launch_ready": true, "missing_requirements": []}
Authorizations
API key with format cs_live_xxx
Path Parameters
Body
Request schema for updating a campaign via public API.
This schema does NOT expose internal step mechanics. Simply provide the fields you want to update, and the system will handle validation automatically. Set 'launch=true' when you're ready to activate the campaign.
Campaign name (minimum 8 characters)
8 - 255Maximum emails per inbox per day (1-100)
1 <= x <= 100Campaign start date (ISO 8601 format)
Timezone for scheduling (IANA format)
100Days to send (1=Monday, 7=Sunday)
1 - 7 elementsSending window start hour (0-23)
0 <= x <= 23Sending window start minute (0-59)
0 <= x <= 59Sending window end hour (1-24)
1 <= x <= 24Sending window end minute (0-59). Must be 0 when sending_window_end is 24
0 <= x <= 59Enable open tracking
Enable unsubscribe link
Enable or disable gradual ramp-up of daily sending volume per inbox. Setting to true resets ramp-up progress for all assigned inboxes.
Additional emails per inbox per day added on each ramp-up day (1-100)
1 <= x <= 100Maximum daily emails per inbox once fully ramped (1-1000)
1 <= x <= 1000Column mapping from CSV to lead fields
Inbox IDs to use for sending
1Email variants for A/B testing. All variants must sum to 100% distribution.
Follow-up email sequences (max 3)
Set to true when ready to activate the campaign. Campaign must have leads, inboxes, and email content.
Response
Campaign updated successfully
Response for public campaign update.
Campaign ID
Campaign name
Campaign status: DRAFT, ACTIVE, PAUSED, COMPLETED, or FAILED
Whether the campaign has all required components to launch
Last update timestamp
List of missing requirements before launch (empty if launch-ready)

