API

Create draft

Creates a campaign draft in a workspace and returns it, including its id. Publishing and scheduling happen in the app.

POST/feeds/{feedId}/campaigns

Authorization

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

In: header

Scope: posts:read-write

Path Parameters

feedId*string

Header Parameters

X-Api-Version?string

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

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Campaigns are always created as drafts. Publishing and scheduling happen in the app.

recipients?
notification?
smsTeaser?boolean

Also notify recipients with an SMS that links to the campaign. Defaults to false and requires the workspace to have SMS enabled.

blocks?array<>

Campaign content blocks.

title?string

Campaign title, shown as the campaign name in the app. It is also used as the email subject unless notification.emailTitle is given, so it is limited to 45 characters. Required unless blocks or an email title are given.

curl -X POST "https://example.com/feeds/string/campaigns" \  -H "X-Api-Version: 2026-07" \  -H "Content-Type: application/json" \  -d '{}'
{  "updated": "string",  "created": "string",  "publishDate": "string",  "smsTeaser": true,  "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"    }  ]}
{  "traceId": "string",  "message": "string",  "path": "string",  "timestamp": "string",  "statusCode": 0.1}
{  "traceId": "string",  "message": "string",  "path": "string",  "timestamp": "string",  "statusCode": 0.1}