Create an email campaign (draft)
Requires EDITOR. Computes audience preview counts at creation.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”projectId
required
string
Tenant project id (row-level isolation on every query).
Request Bodyrequired
Section titled “Request Bodyrequired”Media typeapplication/json
object
name
required
string
templateId
required
string
providerId
string | null
identityId
string | null
audienceFilter
required
Segment predicate shared by campaigns and trigger userFilter (all fields optional).
object
locale
One of:
string
Array<string>
hasEmail
boolean
hasPhone
boolean
userIdLike
string
firstSeenFrom
string format: date-time
firstSeenTo
string format: date-time
lastSeenFrom
string format: date-time
lastSeenTo
string format: date-time
savedAudienceId
string
queueKey
string
paidStatus
One of:
string
Array<string>
valueTier
One of:
string
Array<string>
minLtv
number
maxLtv
number
minBalance
number
maxBalance
number
minUsage30d
number
maxUsage30d
number
lastPurchaseFrom
string format: date-time
lastPurchaseTo
string format: date-time
lifecycleStage
One of:
string
Array<string>
recommendedAction
One of:
string
Array<string>
variables
object
key
additional properties
any
sendRatePerSecond
integer
scheduledAt
string format: date-time
Responses
Section titled “Responses”Created campaign.
Media typeapplication/json
object
campaign
Email campaign (serialized). See handler for the full field set.
object
id
string
projectId
string
name
string
status
string
templateId
string
providerId
string | null
identityId
string | null
audienceFilter
Segment predicate shared by campaigns and trigger userFilter (all fields optional).
object
locale
One of:
string
Array<string>
hasEmail
boolean
hasPhone
boolean
userIdLike
string
firstSeenFrom
string format: date-time
firstSeenTo
string format: date-time
lastSeenFrom
string format: date-time
lastSeenTo
string format: date-time
savedAudienceId
string
queueKey
string
paidStatus
One of:
string
Array<string>
valueTier
One of:
string
Array<string>
minLtv
number
maxLtv
number
minBalance
number
maxBalance
number
minUsage30d
number
maxUsage30d
number
lastPurchaseFrom
string format: date-time
lastPurchaseTo
string format: date-time
lifecycleStage
One of:
string
Array<string>
recommendedAction
One of:
string
Array<string>
variables
object | null
estimatedRecipients
integer
suppressionPreview
integer
sendRatePerSecond
integer
scheduledAt
string | null format: date-time
launchAt
string | null format: date-time
expandedCount
integer
sentCount
integer
deliveredCount
integer
openedCount
integer
clickedCount
integer
failedCount
integer
suppressedCount
integer
abortedReason
string | null
quotaDeferredCount
integer
lastQuotaDeferredAt
string | null format: date-time
createdBy
string | null
createdAt
string format: date-time
updatedAt
string format: date-time
startedAt
string | null format: date-time
completedAt
string | null format: date-time
Request body failed Zod validation.
Media typeapplication/json
Validation error envelope with per-field issues.
object
error
string
issues
Array<object>
object
path
string
message
string
Examplegenerated
{ "error": "example", "issues": [ { "path": "example", "message": "example" } ]}Not authenticated (no valid session/principal).
Media typeapplication/json
object
error
required
Human-readable error message.
string
message
string
Examplegenerated
{ "error": "example", "message": "example"}Authenticated but lacks the required project role.
Media typeapplication/json
object
error
required
Human-readable error message.
string
message
string
Examplegenerated
{ "error": "example", "message": "example"}Saved audience or sending identity not found.
Media typeapplication/json
object
error
required
Human-readable error message.
string
message
string
Examplegenerated
{ "error": "example", "message": "example"}