For the complete documentation index, see llms.txt. This page is also available as Markdown.

Email Campaigns

List, create, retrieve, and delete email campaigns

Manage email campaigns

Get a list of email campaigns

get

Returns a paginated list of the account's email campaigns, newest first.

Pagination is page-token based. Use the token query parameter together with the token, next_token, and prev_token values returned in the pagination object to navigate between pages.

Authorizations
Api-TokenstringRequired

Pass the API token in the Api-Token header

Query parameters
tokeninteger · min: 1Optional

Page number to retrieve (page-token pagination). Defaults to 1.

Default: 1Example: 1
per_pageinteger · min: 1 · max: 100Optional

Number of campaigns per page. Defaults to 50, maximum 100.

Default: 50Example: 50
searchstringOptional

Filter campaigns by name (case-insensitive partial match).

Example: spring
Responses
200

A paginated list of email campaigns.

application/json
get/api/email_campaigns
cURL

Create an email campaign

post

Creates a new email campaign. The campaign must reference an existing sending domain via domain_id, and include a template subject within template_attributes.

Create accepts the same fields as update — pick the audience with contact_list_ids/contact_segment_ids, set delivery options, and add the design via template_attributes.body_html. The campaign is always created in the draft state; scheduling and starting are separate actions (see the schedule and start endpoints).

Authorizations
Api-TokenstringRequired

Pass the API token in the Api-Token header

Body

Campaign attributes. Both create and update accept the same fields. Create and update only manage attributes and audience — the campaign always stays in draft; scheduling and starting are performed via the dedicated lifecycle action endpoints.

namestringRequired

Campaign name.

Example: Spring Sale
domain_idinteger · int64Required

ID of the verified sending domain used for the campaign, as returned by the Sending Domains endpoints.

Example: 4321
from_display_namestringOptional

Display name shown in the From header.

Example: Acme Marketing
from_local_partstringRequired

Local part (before the @) of the From address.

Example: news
template_attributesobjectRequired
delivery_modestring · enumOptional

How the campaign is delivered. rapid sends as fast as possible; gradual throttles sending to delivery_options.emails_per_hour.

Example: rapidPossible values:
contact_list_idsinteger · int64[]Optional

IDs of contact lists to send to. Treated as the full set of included lists — lists not listed are removed. Combine with contact_segment_ids to target both.

Example: [55,56]
contact_segment_idsinteger · int64[]Optional

IDs of contact segments to send to. Treated as the full set of included segments.

Example: [12]
Responses
201

A single email campaign.

application/json
post/api/email_campaigns
cURL — create a draft

Get an email campaign by ID

get

Returns a single email campaign.

Authorizations
Api-TokenstringRequired

Pass the API token in the Api-Token header

Path parameters
email_campaign_idinteger · int64 · min: 1Required

Unique identifier of the email campaign

Example: 4567
Responses
200

A single email campaign.

application/json
get/api/email_campaigns/{email_campaign_id}
cURL

Delete an email campaign

delete

Soft-deletes an email campaign. The campaign must not be in a sending state. Returns 204 No Content on success.

Authorizations
Api-TokenstringRequired

Pass the API token in the Api-Token header

Path parameters
email_campaign_idinteger · int64 · min: 1Required

Unique identifier of the email campaign

Example: 4567
Responses
204

The email campaign was deleted. No response body.

No content

delete/api/email_campaigns/{email_campaign_id}
cURL

No content

Update an email campaign

patch

Updates an existing draft campaign. Only the provided attributes are changed. To edit the template (subject or design), pass template_attributes — the campaign's template is always edited in place, and only the template sub-fields you provide change (see the template_attributes schema for the partial-update rules).

Update accepts the same fields as create, including the audience (contact_list_ids/contact_segment_ids). The typical flow is to create a draft, add its design and audience over one or more updates, then schedule or start it via the dedicated schedule/start action endpoints.

Only draft campaigns can be updated — editing a campaign that is already scheduled/sending returns 422.

Authorizations
Api-TokenstringRequired

Pass the API token in the Api-Token header

Path parameters
email_campaign_idinteger · int64 · min: 1Required

Unique identifier of the email campaign

Example: 4567
Body

Campaign attributes. Both create and update accept the same fields. Create and update only manage attributes and audience — the campaign always stays in draft; scheduling and starting are performed via the dedicated lifecycle action endpoints.

namestringOptional

Campaign name.

Example: Spring Sale
domain_idinteger · int64Optional

ID of the verified sending domain used for the campaign, as returned by the Sending Domains endpoints.

Example: 4321
from_display_namestringOptional

Display name shown in the From header.

Example: Acme Marketing
from_local_partstringOptional

Local part (before the @) of the From address.

Example: news
delivery_modestring · enumOptional

How the campaign is delivered. rapid sends as fast as possible; gradual throttles sending to delivery_options.emails_per_hour.

Example: rapidPossible values:
contact_list_idsinteger · int64[]Optional

IDs of contact lists to send to. Treated as the full set of included lists — lists not listed are removed. Combine with contact_segment_ids to target both.

Example: [55,56]
contact_segment_idsinteger · int64[]Optional

IDs of contact segments to send to. Treated as the full set of included segments.

Example: [12]
Responses
200

A single email campaign.

application/json
patch/api/email_campaigns/{email_campaign_id}
cURL — edit a draft (subject + design)

Start an email campaign

post

Starts sending a draft campaign immediately. Runs full sending validation (the template must have a body_html design, the audience and verified sending domain must be set, billing within limits); on failure the request returns 422 and the campaign stays a draft. The campaign must be in the draft state — starting from any other state returns 422.

Authorizations
Api-TokenstringRequired

Pass the API token in the Api-Token header

Path parameters
email_campaign_idinteger · int64 · min: 1Required

Unique identifier of the email campaign

Example: 4567
Responses
200

A single email campaign.

application/json
post/api/email_campaigns/{email_campaign_id}/start
cURL

Schedule an email campaign

post

Schedules a draft campaign to start sending at a future time. Runs full sending validation (the template must have a body_html design, the audience and verified sending domain must be set, billing within limits); on failure the request returns 422 and the campaign stays a draft. The campaign must be in the draft state — scheduling from any other state returns 422. After scheduling, the time is reported back in current_state_metadata.scheduled_at.

Authorizations
Api-TokenstringRequired

Pass the API token in the Api-Token header

Path parameters
email_campaign_idinteger · int64 · min: 1Required

Unique identifier of the email campaign

Example: 4567
Body

When to start sending the campaign.

datetimestring · date-timeRequired

When to send the campaign (ISO 8601). Must be in the future and no more than 1 month ahead, otherwise the request is rejected with 422.

Example: 2026-06-01T09:00:00.000Z
Responses
200

A single email campaign.

application/json
post/api/email_campaigns/{email_campaign_id}/schedule
cURL

Cancel a scheduled email campaign

post

Cancels a scheduled campaign, removing the pending send job and returning the campaign to the draft state. The campaign must be in the scheduled state — cancelling from any other state returns 422 ("Campaign is not scheduled").

Authorizations
Api-TokenstringRequired

Pass the API token in the Api-Token header

Path parameters
email_campaign_idinteger · int64 · min: 1Required

Unique identifier of the email campaign

Example: 4567
Responses
200

A single email campaign.

application/json
post/api/email_campaigns/{email_campaign_id}/cancel
cURL

Terminate a sending email campaign

post

Terminates a campaign that is currently sending, aborting the in-flight send. The campaign must be in a sending state (started, queued, or paused) — terminating from any other state returns 422.

Authorizations
Api-TokenstringRequired

Pass the API token in the Api-Token header

Path parameters
email_campaign_idinteger · int64 · min: 1Required

Unique identifier of the email campaign

Example: 4567
Responses
200

A single email campaign.

application/json
post/api/email_campaigns/{email_campaign_id}/terminate
cURL

Reset an email campaign to draft

post

Resets a campaign back to the draft state. Allowed only from the scheduled state; resetting from any other state (e.g. a sending or terminal state) returns 422.

Authorizations
Api-TokenstringRequired

Pass the API token in the Api-Token header

Path parameters
email_campaign_idinteger · int64 · min: 1Required

Unique identifier of the email campaign

Example: 4567
Responses
200

A single email campaign.

application/json
post/api/email_campaigns/{email_campaign_id}/reset
cURL

Last updated

Was this helpful?