Create draft
Creates a campaign draft in the workspace the API key is scoped to and returns it, including its id. Publishing and scheduling happen in the app.
/campaignsAuthorization
apiKey posts:read-writeIn: header
Scope: posts:read-write
Header Parameters
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.
For email campaigns: also notify recipients with an SMS teaser. Requires the workspace to have SMS enabled and the "SMS preview in posts" setting switched on in its SMS settings.
The SMS text. Required for SMS campaigns.
Email campaign content blocks.
Campaign title, shown as the campaign name in the app. For email campaigns it is also used as the email subject unless notification.emailTitle is given, so it is limited to 45 characters. Required for email campaigns unless blocks or an email title are given.
What the campaign sends: an email campaign or a standalone SMS campaign.
curl -X POST "https://example.com/campaigns" \ -H "X-Api-Version: 2026-07" \ -H "Content-Type: application/json" \ -d '{ "deliveryChannel": "email" }'{ "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}