SenderWiz API
HomepagePricingContact UsLoginSignup
  • Introduction
  • API URL and Key
  • Customer
    • Contact List
      • Get All Lists
      • Get One List
      • Create a List
      • Update a List
      • Copy a List
      • Delete a List
    • Fields
      • Get All List Fields
      • Get One List Field
      • Create a List Field
      • Update a List Field
      • Delete a List Field
      • Get All List Field Types
    • Segments
      • Get All List Segments
      • Get One List Segment
      • Get All Subscribers
      • Create a List Segment
      • Update a List Segment
      • Delete a List Segment
      • Get All List Segment Condition Operators
    • Subscribers
      • Get All Subscribers
      • Get One Subscriber
      • Search Subscriber by Email
      • Search by Email in All Lists
      • Search by Custom Fields in a List
      • Search Subscribers by Status
      • Get Blacklisted Subscribers
      • Get Confirmed Subscribers
      • Get Unconfirmed Subscribers
      • Get Unsubscribed Subscribers
      • Create a Subscriber
      • Create Subscribers in Bulk
      • Update a Subscriber
      • Update a Subscriber by Email
      • Create or Update a Subscriber
      • Unsubscribe a Subscriber
      • Unsubscribe a Subscriber by Email
      • Unsubscribe Subscriber from All Lists
      • Delete One Subscriber
      • Delete Subscriber by Email
    • Campaigns
      • Get All Campaigns
      • Get One Campaign
      • Create a Campaign
      • Update a Campaign
      • Copy a Campaign
      • Pause/Unpause a Campaig
      • Mark a Campaign as SENT
      • Delete a Campaign
      • Get Stats of a Campaign
    • Reports
      • Track Subscriber Click for Campaign
      • Track Subscriber Open
      • Track Subscriber Unsubscribe
    • Bounces
      • Get All Bounces
      • Create a Campaign Bounce
    • Countries
      • Get All Countries
      • Get All Zones of a Country
    • Templates
      • Get All Templates
      • Get One Template
      • Search Templates
      • Create a Template
      • Update a Template
      • Delete a Template
    • Subaccounts
      • Get All Subaccounts
      • Create a Subaccount
      • Update a Subaccount
      • Delete a Subaccount
      • Get Subaccount Permissions
      • Update Subaccount Permissions
    • Transactional Emails
      • Get All Transactional Emails
      • Get One Transactional Email
      • Create a Transactional Email
      • Delete a Transactional Email
  • Admin
    • Customer
      • Get All Customers
      • Get One Customer
      • Create a Customer
      • Update a Customer
      • Delete a Customer
      • Get All Customer Groups
      • Get All Timezones
    • Customer Login via Token
    • Customer Task via Admin API
Powered by GitBook
On this page
  1. Customer
  2. Campaigns

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

Parameter
Type
Required
Description

campaign

array

Yes

Array containing campaign details.


📦 Campaign Block

Parameter
Type
Required
Description

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

Parameter
Type
Required
Description

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

Parameter
Type
Description

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'    => 'sophie.turner@demo.com', // required
    'subject'       => 'Hello from the April Campaign (via API)', // required
    'reply_to'      => 'sophie.turner@demo.com', // 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"
}
PreviousGet One CampaignNextUpdate a Campaign

Last updated 1 month ago