API

Update campaign

Updates a draft campaign. Omitted fields keep their current values; blocks and recipients are replaced as a whole. Send the campaign's hash as If-Match to get a 412 instead of overwriting a newer version.

PATCH/campaigns/{id}

Authorization

apiKey posts:read-write
x-api-key<token>

In: header

Scope: posts:read-write

Path Parameters

id*string

Header Parameters

X-Api-Version?string

API version date. Requests without the header use 2026-07.

If-Match?string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Only draft campaigns can be updated. Omitted fields keep their current values.

recipients?

Replaces the recipients. An empty list removes them all.

notification?

Notification fields given here are replaced; the others are kept.

smsTeaser?boolean

Switches the SMS teaser of an email campaign on or off.

text?string

For SMS campaigns the SMS text. For email campaigns, plain text that replaces the blocks with a single text block.

blocks?array<>

Replaces all content blocks of an email campaign.

title?string

Campaign title. For email campaigns it also updates the email subject unless one was set explicitly.

curl -X PATCH "https://example.com/campaigns/string" \  -H "X-Api-Version: 2026-07" \  -H "Content-Type: application/json" \  -d '{}'
{  "updated": "string",  "created": "string",  "publishDate": "string",  "smsTeaser": true,  "deliveryChannel": "email",  "status": "draft",  "title": "string",  "id": "string",  "editorUrl": "string",  "hash": "string",  "recipients": {    "segmentIds": [      "string"    ]  },  "notification": {    "smsText": "string",    "emailDescription": "string",    "emailTitle": "string"  },  "blocks": [    {      "description": "string",      "alt": "string",      "imageUrl": "string",      "isFullWidth": true,      "style": "button",      "url": "string",      "alignment": "left",      "text": "string",      "type": "h1"    }  ],  "text": "string"}
{  "traceId": "string",  "message": "string",  "path": "string",  "timestamp": "string",  "statusCode": 0.1}
{  "traceId": "string",  "message": "string",  "path": "string",  "timestamp": "string",  "statusCode": 0.1}
{  "traceId": "string",  "message": "string",  "path": "string",  "timestamp": "string",  "statusCode": 0.1}
{  "traceId": "string",  "message": "string",  "path": "string",  "timestamp": "string",  "statusCode": 0.1}