Create a Campaign
Create a new campaign using the API. This can be a regular or autoresponder campaign, and allows advanced customization like segments, template content, scheduling, and optional configurations.
🆕 Create a Campaign
Use this endpoint to create and schedule a campaign using a template and optional features like URL tracking and stats reporting.
🔹 HTTP Request
POST API-URL/campaigns
🔎 POST Parameters
campaign
array
Yes
Array containing campaign details.
📦 Campaign Block
name
string
Yes
Name of the campaign.
type
string
No
Type: regular
or autoresponder
. Default: regular
.
from_name
string
Yes
Sender name.
from_email
string
Yes
Sender email.
subject
string
Yes
Subject of the email.
reply_to
string
Yes
Email address for replies.
send_at
datetime
Yes
When to send the campaign (Y-m-d H:i:s). Uses customer's timezone.
list_uid
string
Yes
Target list unique ID.
segment_uid
string
No
Optional segment to target a specific audience.
options
array
No
Optional settings like tracking, feeds, stats email, etc.
template
array
Yes
Content or reference to the email template.
🖌️ Template Block
archive
filePath
Yes*
Path to zip archive if using archived template.
template_uid
string
Yes*
Reference to saved template UID.
content
string
Yes*
HTML content of the campaign.
inline_css
yes/no
Yes
Enable/disable inline CSS.
plain_text
string
No
Manually set plain text version or leave null.
auto_plain_text
yes/no
Yes
Automatically generate plain text.
*At least one of archive
, template_uid
, or content
must be provided.
⚙️ Options Block
url_tracking
yes/no
Enable/disable URL tracking.
json_feed
yes/no
Enable/disable JSON feed.
xml_feed
yes/no
Enable/disable XML feed.
plain_text_email
yes/no
Send email as plain text.
email_stats
string
Optional: Send campaign stats to this email.
autoresponder_event
string
Values: AFTER-SUBSCRIBE, AFTER-CAMPAIGN-OPEN.
autoresponder_time_unit
string
Time unit: minute, hour, day, etc.
autoresponder_time_value
integer
Interval value for autoresponder.
autoresponder_open_campaign_id
integer
Campaign ID to link with for open-event responders.
cronjob
string
Cron syntax for recurring campaigns.
cronjob_enabled
integer
1 (enabled) or 0 (disabled).
🔐 Authorization Header
X-API-KEY: your-api-key-here
💻 PHP Example
// CREATE CAMPAIGN
$response = $endpoint->create([
'name' => 'April Campaign via API', // required
'type' => 'regular', // optional: regular or autoresponder
'from_name' => 'Sophie Turner', // required
'from_email' => '[email protected]', // required
'subject' => 'Hello from the April Campaign (via API)', // required
'reply_to' => '[email protected]', // required
'send_at' => date('Y-m-d H:i:s', strtotime('+10 hours')), // required, this will use the timezone which customer selected
'list_uid' => 'LIST-UNIQUE-ID', // required
'segment_uid' => 'SEGMENT-UNIQUE-ID', // optional, only to narrow down
// optional block, defaults are shown
'options' => [
'url_tracking' => 'no', // yes | no
'json_feed' => 'no', // yes | no
'xml_feed' => 'no', // yes | no
'plain_text_email' => 'yes', // yes | no
'email_stats' => null, // a valid email address where we should send the stats after campaign done
// - if autoresponder uncomment below:
//'autoresponder_event' => 'AFTER-SUBSCRIBE', // AFTER-SUBSCRIBE or AFTER-CAMPAIGN-OPEN
//'autoresponder_time_unit' => 'hour', // minute, hour, day, week, month, year
//'autoresponder_time_value' => 1, // 1 hour after event
//'autoresponder_open_campaign_id' => 1, // INT id of campaign, only if event is AFTER-CAMPAIGN-OPEN,
],
// required block, archive or template_uid or content => required.
'template' => [
//'archive' => file_get_contents(__DIR__ . '/template-example.zip'),
//'template_uid' => 'TEMPLATE-UNIQUE-ID',
'content' => file_get_contents(__DIR__ . '/template-example.html'),
'inline_css' => 'no', // yes | no
'plain_text' => null, // leave empty to auto generate
'auto_plain_text' => 'yes', // yes | no
],
]);
// DISPLAY RESPONSE
echo '<hr /><pre>';
print_r($response->body);
echo '</pre>';
📦 Sample JSON Response
{
"status": "success",
"campaign_uid": "xy5934demo938"
}
Last updated