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}/campaignsAuthorization
apiKey posts:read-writex-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}