Skip to main content
POST
🎯 Campaign Features:
  • Target specific lists, tags, and segments
  • Schedule campaigns or send immediately
  • Smart send optimization
  • Time zone aware delivery
  • A/B testing capabilities
πŸ“… Schedule Types:
  • 0 - Schedule for later
  • 1 - Send immediately
πŸ”§ Advanced Options:
  • Smart Send: Optimizes delivery time based on recipient engagement
  • Contact Timezone: Sends at specified time in each contact’s timezone
🎨 Content Requirements:
  • HTML content is required
  • Plain text version recommended for better deliverability
  • Preview text improves open rates
  • Subject line personalization supported

Authorizations

X-Team-ApiKey
string
header
required

Team API key for authentication. Find your API key in SendX Settings β†’ Team API Key.

Example:

Body

application/json
name
string
required

Campaign name for internal organization

Maximum string length: 255
Example:

"Spring Sale Campaign"

subject
string
required

Email subject line with personalization support.

Features:

  • Supports template variables ({{contact.firstName}})
  • Emoji support for better engagement
  • A/B testing variations supported
Maximum string length: 255
Example:

"🌸 Spring Sale - {{contact.firstName}}, Save 30%!"

sender
string
required

Sender identifier.

Note: Sender must be verified before use

Pattern: ^(sender_)?[a-zA-Z0-9]{22}$
Example:

"sender_4vK3WFhMgvOwUNyaL4QxCD"

htmlCode
string
required

HTML content of the email campaign

Example:

"<html><body><h1>Spring Sale!</h1><p>Save 30% on all items</p></body></html>"

previewText
string

Preview text shown in email clients

Maximum string length: 255
Example:

"Limited time offer - 30% off everything!"

plainText
string

Plain text version for better deliverability

Example:

"Spring Sale!\n\nSave 30% on all items..."

scheduleType
integer

Campaign scheduling type.

Values:

  • 0 - Schedule for specific date/time
  • 1 - Send immediately
Example:

0

scheduleCondition
string

datetime for scheduled campaigns (required if scheduleType=0)

Example:

"2024-03-20"

timeCondition
string

Time condition for scheduled campaigns in HH:MM PM/AM format

Example:

"9:00 AM"

timezone
string

Timezone for scheduled campaigns (IANA format)

Example:

"America/New_York"

preferredTimezone
string

Preferred timezone for smart send optimization (required for smartSend and sendInContactsTimezone)

Example:

"America/Los_Angeles"

preferredTimeCondition
string

Preferred time optimization setting (required for smartSend and sendInContactsTimezone)

Example:

"10:00 AM"

sendInContactsTimezone
boolean

Send at specified time in each contact's timezone

Example:

true

smartSend
boolean

Enable AI-powered send time optimization

Example:

true

includedSegments
string[]

Segment IDs to include

Pattern: ^segment_[a-zA-Z0-9]{22}$
Example:
includedLists
string[]

List IDs to include

Pattern: ^(list_)?[a-zA-Z0-9]{22}$
Example:
includedTags
string[]

Tag IDs to include

Pattern: ^(tag_)?[a-zA-Z0-9]{22}$
Example:
excludedSegments
string[]

Segment IDs to exclude

Pattern: ^segment_[a-zA-Z0-9]{22}$
Example:
excludedLists
string[]

List IDs to exclude

Pattern: ^(list_)?[a-zA-Z0-9]{22}$
Example:
excludedTags
string[]

Tag IDs to exclude (prefix automatically stripped)

Pattern: ^(tag_)?[a-zA-Z0-9]{22}$
Example:

Response

βœ… Campaign created successfully

id
string
required

Campaign ID, with prefix

Pattern: ^campaign_[a-zA-Z0-9]{22}$
Example:

"campaign_4vK3WFhMgvOwUNyaL4QxCD"

name
string
required

Internal campaign name

Example:

"Summer Sale 2024"

subject
string
required

Email subject line

Example:

"🌞 Summer Sale - 50% Off Everything!"

sender
string
required

Sender id

Example:

"sender_4vK3WFhMgvOwUNyaL4QxCD"

status
enum<integer>
required

Campaign status.

Values:

  • 0 - Draft
  • 1 - Scheduled
  • 2 - Sending
  • 3 - Sent
  • 4 - Quarantined
  • 5 - Evaluating
  • 6 - Evaluation failed
  • 7 - Warming up
  • 8 - Warming up paused
  • 9 - Spread sending paused
Available options:
0,
1,
2,
3,
4,
5,
6,
7,
8,
9
Example:

1

scheduleType
enum<integer>
default:0
required

Campaign scheduling type.

Values:

  • 0 - Schedule later
  • 1 - Send Now
Available options:
0,
1,
2,
3
scheduleCondition
string
required

datetime for scheduled campaigns (required if scheduleType=1)

Example:

"2024-12-30"

includedLists
string[]
required

Included list IDs with prefix

Pattern: ^list_[a-zA-Z0-9]{22}$
Example:
excludedLists
string[]
required

Excluded list IDs with prefix

Pattern: ^list_[a-zA-Z0-9]{22}$
Example:
htmlCode
string

HTML email content. Matches the htmlCode field accepted on create/update.

Returned by GET /campaign/{id}, POST /campaign, and PUT /campaign/{id} only. Omitted from the GET /campaign list response β€” campaign HTML is large, so the list endpoint stays lean. Fetch a single campaign to read it.

Example:

"<html><body><h1>Summer Sale</h1></body></html>"

plainText
string

Plain text email content. Currently auto-generated from htmlCode on create/update rather than taken from the request. Omitted from the list response, like htmlCode.

Example:

"Summer Sale"

previewText
string

Email preview text (preheader). Omitted from the list response, like htmlCode.

Example:

"Limited time offer - Shop now!"

timeCondition
string

Time-related condition for the campaign

Example:

"9:00 AM"

timezone
string

Campaign timezone

Example:

"America/New_York"

smartSend
boolean

Timezone for the scheduled send

Example:

"America/New_York"

sendInContactsTimezone
boolean

Send at specified time in each contact's timezone

Example:

true

preferredTimeCondition
string

Preferred time condition, in case of smartSend and sendInContactTimeZone

Example:

"10:00 AM"

preferredTimezone
string

Preferred timezone for smart send optimization

Example:

"America/Los_Angeles"

strategy
string

Campaign delivery strategy

Example:

"Batch Sending"

includedSegments
string[]

Included segment IDs

Pattern: ^segment_[a-zA-Z0-9]{22}$
Example:
includedTags
string[]

Included tag IDs with prefix

Pattern: ^tag_[a-zA-Z0-9]{22}$
Example:
excludedSegments
string[]

Excluded segment IDs

Pattern: ^segment_[a-zA-Z0-9]{22}$
Example:
excludedTags
string[]

Excluded tag IDs with prefix

Pattern: ^tag_[a-zA-Z0-9]{22}$
Example:
isArchived
boolean

Whether the campaign has been archived

Example:

false

campaignScreenshotUrl
string

URL of the generated campaign preview screenshot. Empty until the screenshot job completes.

autowarmup
boolean

Whether autowarmup is enabled for this campaign

Example:

false

autowarmupType
integer

Autowarmup pacing type

Example:

0

autowarmupStartLevel
integer

Autowarmup starting level

Example:

0

plainwarmup
boolean

Whether plain warmup is enabled for this campaign

Example:

false

plainwarmupStartLevel
integer

Plain warmup starting level

Example:

0