Schedule Campaign

The Schedule Campaign API allows you to schedule an existing Email Campaign for delivery to Subscriber Lists or saved Segments.

Available API Functions

Method Endpoint Description
POST /scheduleCampaign Schedule an Email Campaign
GET /getScheduledCampaign Retrieve one scheduled campaign
GET /getScheduledCampaigns Retrieve scheduled campaigns

Schedule Campaign

Endpoint

POST /scheduleCampaign

Parameters

Parameter Required Description
campaign_label Yes Internal name for the scheduled campaign
list_type Yes 1 = Subscriber Lists, 2 = Segments
list_id_fk[] Conditional Subscriber List IDs when list_type=1
segment_id_fk[] Conditional Segment IDs when list_type=2
email_campaign_id_fk[] Yes Email Campaign ID(s)
smtp_list[] Yes SMTP username(s) to use for sending
campaign_type No Use 1 for a normal Email Campaign
smtp_sequence No 1 = Batches, 2 = Loop
sender_info No Sender information source
sch_fromname No From Name
sch_fromemail Recommended From Email
sch_bounceemail Recommended Bounce Email
sch_replyemail Recommended Reply-To Email
sch_datetime Recommended UTC Time to send the email campaign
notification_email No Campaign notification email
show_unsub No 1 to enable unsubscribe functionality
track_open No 1 to enable open tracking
track_click No 1 to enable click tracking
no_of_threads No Number of sending threads
hourly_limit No Hourly sending limit
masked_domain No Domain masking option

SMTP Accounts

Use smtp_list[] to specify the SMTP username to use for sending. SMTP username can be fetched from API endpoint /getSMTPs

Single SMTP

smtp_list[]=smtp-user-1

Multiple SMTP Accounts

smtp_list[]=smtp-user-1
smtp_list[]=smtp-user-2
smtp_list[]=smtp-user-3

Each SMTP username must be valid and available to your account.


SMTP Sequence

When multiple SMTP accounts are selected, smtp_sequence controls the sending sequence.

Value Mode
1 Batches
2 Loop

Example:

smtp_sequence=1

Subscriber Lists

To send to Subscriber Lists:

list_type=1

Provide one or more List IDs:

list_id_fk[]=10
list_id_fk[]=12

Segments

To send to saved Segments:

list_type=2

Provide one or more Segment IDs:

segment_id_fk[]=15
segment_id_fk[]=20

Email Campaign

Specify the Email Campaign using:

email_campaign_id_fk[]=125

The campaign must already exist before it can be scheduled.


Send Campaign Now

If no future schedule date and time are supplied, the campaign is scheduled for immediate delivery.

curl -X POST "https://YOUR-DOMAIN/API-PATH/scheduleCampaign" \
  -d "campaign_label=September Newsletter" \
  -d "list_type=1" \
  -d "list_id_fk[]=10" \
  -d "email_campaign_id_fk[]=125" \
  -d "smtp_list[]=smtp-user-1" \
  -d "campaign_type=1" \
  -d "smtp_sequence=1" \
  -d "sender_info=3" \
  -d "sch_fromname=My Company" \
  -d "[email protected]" \
  -d "[email protected]" \
  -d "[email protected]" \
  -d "show_unsub=1" \
  -d "track_open=1" \
  -d "track_click=1"

Schedule Campaign for Later

Use sch_date and sch_time to schedule delivery for a future date and time.

sch_date=09/28/2026
sch_time=10:00:00 AM

Example:

curl -X POST "https://YOUR-DOMAIN/API-PATH/scheduleCampaign" \
  -d "campaign_label=Monday Newsletter" \
  -d "list_type=1" \
  -d "list_id_fk[]=10" \
  -d "email_campaign_id_fk[]=125" \
  -d "smtp_list[]=smtp-user-1" \
  -d "campaign_type=1" \
  -d "smtp_sequence=1" \
  -d "sch_date=09/28/2026" \
  -d "sch_time=10:00:00 AM" \
  -d "sender_info=3" \
  -d "sch_fromname=My Company" \
  -d "[email protected]" \
  -d "[email protected]" \
  -d "[email protected]" \
  -d "show_unsub=1" \
  -d "track_open=1" \
  -d "track_click=1"

A combined schedule date/time may also be supplied:

sch_datetime=2026-09-28 10:00:00

Schedule Campaign to a Segment

curl -X POST "https://YOUR-DOMAIN/API-PATH/scheduleCampaign" \
  -d "campaign_label=Engaged Subscribers" \
  -d "list_type=2" \
  -d "segment_id_fk[]=15" \
  -d "email_campaign_id_fk[]=125" \
  -d "smtp_list[]=smtp-user-1" \
  -d "campaign_type=1" \
  -d "smtp_sequence=1" \
  -d "sender_info=3" \
  -d "sch_fromname=My Company" \
  -d "[email protected]" \
  -d "[email protected]" \
  -d "[email protected]" \
  -d "show_unsub=1" \
  -d "track_open=1" \
  -d "track_click=1"

Multiple SMTP Accounts

Multiple SMTP usernames can be supplied:

curl -X POST "https://YOUR-DOMAIN/API-PATH/scheduleCampaign" \
  -d "campaign_label=Multi SMTP Campaign" \
  -d "list_type=1" \
  -d "list_id_fk[]=10" \
  -d "email_campaign_id_fk[]=125" \
  -d "smtp_list[]=smtp-user-1" \
  -d "smtp_list[]=smtp-user-2" \
  -d "smtp_list[]=smtp-user-3" \
  -d "smtp_sequence=2" \
  -d "sender_info=3" \
  -d "sch_fromname=My Company" \
  -d "[email protected]" \
  -d "[email protected]" \
  -d "[email protected]"

Sender Information

The sender_info parameter controls the source of sender information.

Value Source
1 Subscriber List
2 SMTP Account
3 Custom Sender Information

For custom sender information:

sender_info=3
sch_fromname=My Company
[email protected]
[email protected]
[email protected]

Tracking Options

Enable unsubscribe, open tracking, and click tracking:

show_unsub=1
track_open=1
track_click=1

Use 0 to disable the corresponding option.


Hourly Sending Limit

Example:

hourly_limit=5000

For the default unlimited setting:

hourly_limit=-1

Sending Threads

Example:

no_of_threads=5

The availability of multiple sending threads depends on your account and installation configuration.


Domain Masking

masked_domain Description
0 Do not mask
1 Use SMTP domain
2 Use custom masking domain

Example:

masked_domain=1

For a custom masking domain:

masked_domain=2
mask_domain_id_fk[]=5

Recipient Filtering

Recipient filters can be used when scheduling to Subscriber Lists (list_type=1).

Subscriber Name

Value Description
0 All Subscribers
1 With First Name
2 With Last Name
3 With First and Last Name
4 Without First Name
5 Without Last Name
6 Without First and Last Name
7 With First Name or Last Name
8 Without First Name or Last Name

Example:

subscriber_name=3

Email Address

Include email addresses containing:

email_contains=gmail.com

Exclude email addresses containing:

email_dont_contains=example.com

Open Status

Value Description
0 All
1 Opened
2 Unopened

Example:

opened=1

Additional open filters:

opened_country[]=United States
opened_after_date=09/01/2026
opened_after_time=00:00:00
opened_before_date=09/30/2026
opened_before_time=23:59:59

Click Status

Value Description
0 All
1 Clicked
2 Unclicked

Example:

clicked=1

Additional click filters:

clicked_country[]=United States
clicked_after_date=09/01/2026
clicked_after_time=00:00:00
clicked_before_date=09/30/2026
clicked_before_time=23:59:59

Successful Response

Example:

{
  "success": true,
  "Schedule Campaign ID": 250,
  "Total": 15420,
  "Schedule DateTime": "2026-09-28 05:00:00"
}

Get Scheduled Campaign

Endpoint

GET /getScheduledCampaign

Parameters

Parameter Required Description
schedule_campaign_id Yes Schedule Campaign ID

Example:

curl -X GET \
"https://YOUR-DOMAIN/API-PATH/getScheduledCampaign?schedule_campaign_id=250"

The API returns the details of the requested scheduled campaign.


Get Scheduled Campaigns

Endpoint

GET /getScheduledCampaigns

Parameters

Parameter Required Default Description
start No 0 Starting record
records No 100 Number of records
status No — Filter by campaign status
search No — Search campaign label
campaign_type No — Filter by campaign type
list_type No — 1 = Lists, 2 = Segments

Example:

curl -X GET \
"https://YOUR-DOMAIN/API-PATH/getScheduledCampaigns?start=0&records=100"

Search:

GET /getScheduledCampaigns?search=Newsletter

Subscriber List campaigns:

GET /getScheduledCampaigns?list_type=1

Segment campaigns:

GET /getScheduledCampaigns?list_type=2

Error Responses

Possible errors include:

campaign_label is required
smtp_list is required
email_campaign_id_fk is required
list_id_fk is required when list_type=1
segment_id_fk is required when list_type=2
list_type must be 1 (subscriber lists) or 2 (segments)
One or more mailing lists are invalid or access denied
One or more segments are invalid or access denied
One or more email campaigns are invalid or access denied
SMTP account not found, disabled or access denied
Invalid campaign schedule date/time

Complete Example

curl -X POST "https://YOUR-DOMAIN/API-PATH/scheduleCampaign" \
  -d "campaign_label=September Customer Newsletter" \
  -d "list_type=1" \
  -d "list_id_fk[]=10" \
  -d "list_id_fk[]=12" \
  -d "email_campaign_id_fk[]=125" \
  -d "smtp_list[]=smtp-user-1" \
  -d "smtp_list[]=smtp-user-2" \
  -d "campaign_type=1" \
  -d "smtp_sequence=1" \
  -d "masked_domain=1" \
  -d "no_of_threads=5" \
  -d "hourly_limit=5000" \
  -d "sender_info=3" \
  -d "sch_fromname=My Company" \
  -d "[email protected]" \
  -d "[email protected]" \
  -d "[email protected]" \
  -d "[email protected]" \
  -d "show_unsub=1" \
  -d "track_open=1" \
  -d "track_click=1" \
  -d "sch_date=09/28/2026" \
  -d "sch_time=10:00:00 AM"

Example response:

{
  "success": true,
  "Schedule Campaign ID": 250,
  "Total": 15420,
  "Schedule DateTime": "2026-09-28 05:00:00"
}

Typical Workflow

1. Create Email Campaign
        ↓
POST /addCampaign

2. Receive Campaign ID
        ↓
Campaign ID: 125

3. Schedule Campaign
        ↓
POST /scheduleCampaign

4. Select Recipients
        ↓
list_type=1
list_id_fk[]=10

        OR

list_type=2
segment_id_fk[]=15

5. Select Email Campaign
        ↓
email_campaign_id_fk[]=125

6. Select SMTP Account(s)
        ↓
smtp_list[]=smtp-user-1

7. Configure sender, tracking and schedule
        ↓
Campaign Scheduled

Important Notes

Creating an Email Campaign does not automatically schedule or send it.

First create the campaign:

POST /addCampaign

Then schedule it:

POST /scheduleCampaign

For Subscriber Lists:

list_type=1
list_id_fk[]=10

For Segments:

list_type=2
segment_id_fk[]=15

For SMTP accounts:

smtp_list[]=smtp-user-1

Multiple SMTP accounts can be supplied by repeating smtp_list[].

  • 0 Пользователи нашли это полезным
Помог ли вам данный ответ?

Связанные статьи

Add Subscriber

The section describes the JSON request to add a new subscriber to a list Required to Submit...

Delete Subscriber

The section describes the JSON request to delete a subscriber from a list Required to Submit...

Get Subscriber

The section describes the JSON request to get a subscriber detail Required to Submit JSON...

Get Subscribers

The section describes the JSON request to get multiple subscribers Required to Submit JSON...

Update Subscriber

The section describes the JSON request to update a subscriber Required to Submit JSON Request...