Skip to main content
POST
Create a campaign

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Headers

Idempotency-Key
string

Optional. A unique key you generate (max 255 chars, such as a UUID) that makes this request safe to retry. Retrying with the same key replays the original response instead of repeating the operation. Reusing a key with a different body returns 422.

Maximum string length: 255
Example:

"a1b2c3d4-e5f6-7890-abcd-ef1234567890"

Body

application/json
name
string
required
Maximum string length: 255
Example:

"Q4 Product Launch Outreach"

schedule
object
settings
object
sequence
object[]

Inline email sequence steps, in send order. Omit for no sequence; when supplied it must have at least one step.

Minimum array length: 1
accounts
string[]

SMTP account ids to attach to the campaign. Campaigns created through the API send from all connected mailboxes of the workspace ("use all accounts" mode), so this list does not limit which mailboxes send.

Example:
leads
string[]

Lead emails to add. The response summarizes how many were added. Up to 1000. A malformed address is NOT a request-level 400 - it is counted in the leads summary’s invalid, so one bad entry never rejects the create.

Example:
launch
boolean

Start sending immediately after the campaign is configured. Requires the campaigns:lifecycle scope in addition to campaigns:write.

Example:

false

Response

campaign
object
required
launched
boolean
required

Whether the campaign was launched (true only when launch: true succeeded).

Example:

false

leads
object

Present only when leads were supplied.

launchError
string

Present only when launch: true was requested but the campaign could NOT be started. The campaign is still created (as a draft) - fix the issue and start it via the lifecycle endpoint. Absent on success.

Example:

"Campaign is not ready to launch: No leads added. Start it with POST /v1/campaigns/{id}/start."