Update a draft campaign
Only a draft can be changed. Send at least one of name, channelId, segmentId, or content. content follows the same template and text rules as create.
bearerAuthorizationBearer <token>Key issued in Settings → Developer → API key. Inbox methods need the Inbox scope. Campaigns methods need the Campaigns scope.
campaignId*stringCampaign id returned by create or list.
application/json- body
name?stringNew title. Send at least one of name, channelId, segmentId, or content. Only a draft can be changed.
channelId?stringAnother channel this account owns.
segmentId?stringAnother segment id. The new members are copied when you send.
content?Replaces the whole content object. Same template and text rules as create.
application/json- response
id*stringCampaign id.
name*stringCampaign title.
channelId*stringChannel that sends the campaign.
segmentId*stringSegment used as the audience.
status*stringCampaign status.
"draft""sending""pause""completed""failed""scheduled"content*||Template or session text stored on the campaign.
sentAt*|When sending started, or null if it has not started.
date-timescheduledAt*|UTC instant for a scheduled send, or null.
date-timequeuedRemaining*numberRecipients still waiting to be sent.
sentThisPortion*numberTemplate sends already started in the current tier window.
dailyLimit*|How many template sends this channel may start in a rolling 24 hours. Taken from the channel tier (waba_info.current_limit), not from a campaign setting. Null when the tier is unknown or unlimited. Session text is not counted.
nextPortionAt*|When the next template portion can start after the tier window is full. Null when a portion is not waiting.
date-timecreatedAt*stringWhen the campaign was created.
date-timeupdatedAt*stringWhen the campaign was last updated.
date-timecurl -X PATCH 'https://api.1msg.io/api/v1/campaigns/string' \ -H 'Content-Type: application/json' \ -d '{}'{ "id": "cm3campaign01", "name": "April restock", "channelId": "cm3channel01", "segmentId": "cm3segment01", "status": "draft", "content": { "mode": "text", "text": "Hello" }, "sentAt": "2026-11-01T09:00:00.000Z", "scheduledAt": "2026-11-01T09:00:00.000Z", "queuedRemaining": 0, "sentThisPortion": 0, "dailyLimit": 1000, "nextPortionAt": null, "createdAt": "2026-11-01T09:00:00.000Z", "updatedAt": "2026-11-01T09:00:00.000Z"}