Skip to main content
POST
/
api
/
public
/
v1
/
campaigns
Create campaign
curl --request POST \
  --url https://api.coldsend.pro/api/public/v1/campaigns \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: <api-key>' \
  --data '
{
  "name": "<string>",
  "daily_limit_per_inbox": 50,
  "start_date": "2023-11-07T05:31:56Z",
  "timezone": "America/New_York",
  "sending_days": [
    1,
    2,
    3,
    4,
    5
  ],
  "sending_window_start": 9,
  "sending_window_end": 17,
  "enable_tracking": false,
  "enable_unsubscribe": true
}
'
{
  "success": true,
  "message": "<string>",
  "campaign_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "name": "<string>",
  "status": "<string>",
  "current_step": 123,
  "created_at": "2023-11-07T05:31:56Z"
}

Authorizations

X-API-Key
string
header
required

API key with format cs_live_xxx

Query Parameters

Body

application/json

Request schema for public campaign creation.

name
string
required

Campaign name (minimum 8 characters). Use descriptive names like 'Q1 2024 Product Launch'.

Required string length: 8 - 255
daily_limit_per_inbox
integer | null

Maximum emails per inbox per day for this campaign. Recommended: 20-30 for new accounts, 50-80 for warmed accounts, 80-100 for established accounts. Set to null for no campaign-specific limit.

Required range: 1 <= x <= 100
start_date
string<date-time> | null

Campaign start date and time (ISO 8601 format). If not specified, campaign starts immediately upon activation. All times are interpreted in the specified timezone.

timezone
string
default:America/New_York

Timezone for campaign scheduling (IANA timezone format). Common values: America/New_York, Europe/London, America/Los_Angeles, Asia/Tokyo. All sending windows are interpreted in this timezone.

Maximum string length: 100
sending_days
integer[]

Days of the week to send emails where 1=Monday, 2=Tuesday, 3=Wednesday, 4=Thursday, 5=Friday, 6=Saturday, 7=Sunday. Best practice for B2B is [1,2,3,4,5] (Monday-Friday).

Required array length: 1 - 7 elements
sending_window_start
integer
default:9

Start hour for sending window in 24-hour format (0-23). Emails are only sent during the window. Example: 9 = 9:00 AM. Recommended for B2B: 9 (9 AM).

Required range: 0 <= x <= 23
sending_window_end
integer
default:17

End hour for sending window in 24-hour format (1-24). Must be after sending_window_start. Example: 17 = 5:00 PM. Recommended for B2B: 17 (5 PM).

Required range: 1 <= x <= 24
enable_tracking
boolean
default:false

Enable email open tracking via tracking pixels. When enabled, inserts invisible 1x1 pixel to detect opens. Requires HTML email format. Note: Blocked by some privacy-focused email clients. Replies are always tracked regardless of this setting.

enable_unsubscribe
boolean
default:true

Automatically insert unsubscribe link in email footer. Strongly recommended to keep enabled for compliance with CAN-SPAM (US), CASL (Canada), and GDPR (EU). Adds one-click unsubscribe and honors List-Unsubscribe header.

Response

Campaign created successfully

Response for campaign creation.

success
boolean
required
message
string
required
campaign_id
string<uuid>
required

Created campaign ID

name
string
required

Campaign name

status
string
required

Campaign status (DRAFT)

current_step
integer
required

Current campaign creation step

created_at
string<date-time>
required

Campaign creation timestamp