Skip to content
campaign

Email owned participants (async)

POST
/v1/campaign/email
curl --request POST \
--url https://aggregator.example.com/v1/campaign/email \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "item_ids": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ], "metadata": [], "content": {} }'

Creates a durable campaign job that emails the given owned participants a shared message (subject + Markdown body, with an optional fixed set of {{placeholder}} tokens personalised per recipient). Body is the shared campaign envelope { item_ids, metadata[], content{subject, body_markdown, reply_to?} }. Recipient email addresses are resolved server-side and never returned. Send an Idempotency-Key header to make retries safe. Returns 202 { job_id }; poll GET /v1/campaign/email/{job_id} for per-recipient outcomes.

Media typeapplication/json
object
item_ids
required
Array<string>
>= 1 items
metadata
Array<object>
default: <= 50 items
object
key
required
string
>= 1 characters <= 200 characters
value
required
string
<= 2000 characters
content
object
key
additional properties

Default Response

Media typeapplication/json
object
status
required
string
Allowed values: queued
requested
required
integer
job_id
required
string format: uuid
message
required
string
Example
{
"status": "queued"
}

Default Response

Media typeapplication/json
object
error
required
object
code
required
string
title
required
string
detail
required
string
docs
string
fields
object
key
additional properties
requestId
required
string
timestamp
required
string
key
additional properties
any
key
additional properties
any
Examplegenerated
{
"error": {
"code": "example",
"title": "example",
"detail": "example",
"docs": "example",
"fields": {
"additionalProperty": "example"
},
"requestId": "example",
"timestamp": "example"
}
}

Default Response

Media typeapplication/json
object
error
required
object
code
required
string
title
required
string
detail
required
string
docs
string
fields
object
key
additional properties
requestId
required
string
timestamp
required
string
key
additional properties
any
key
additional properties
any
Examplegenerated
{
"error": {
"code": "example",
"title": "example",
"detail": "example",
"docs": "example",
"fields": {
"additionalProperty": "example"
},
"requestId": "example",
"timestamp": "example"
}
}

Default Response

Media typeapplication/json
object
error
required
object
code
required
string
title
required
string
detail
required
string
docs
string
fields
object
key
additional properties
requestId
required
string
timestamp
required
string
key
additional properties
any
key
additional properties
any
Examplegenerated
{
"error": {
"code": "example",
"title": "example",
"detail": "example",
"docs": "example",
"fields": {
"additionalProperty": "example"
},
"requestId": "example",
"timestamp": "example"
}
}

Default Response

Media typeapplication/json
object
error
required
object
code
required
string
title
required
string
detail
required
string
docs
string
fields
object
key
additional properties
requestId
required
string
timestamp
required
string
key
additional properties
any
key
additional properties
any
Examplegenerated
{
"error": {
"code": "example",
"title": "example",
"detail": "example",
"docs": "example",
"fields": {
"additionalProperty": "example"
},
"requestId": "example",
"timestamp": "example"
}
}

Default Response

Media typeapplication/json
object
error
required
object
code
required
string
title
required
string
detail
required
string
docs
string
fields
object
key
additional properties
requestId
required
string
timestamp
required
string
key
additional properties
any
key
additional properties
any
Examplegenerated
{
"error": {
"code": "example",
"title": "example",
"detail": "example",
"docs": "example",
"fields": {
"additionalProperty": "example"
},
"requestId": "example",
"timestamp": "example"
}
}