Update a campaign
Updates an existing campaign under the brand of the specified profile. Cannot update campaigns that have already been submitted to TCR.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
curl -X PUT "https://api.sent.dm/v3/profiles/770e8400-e29b-41d4-a716-446655440002/campaigns/b2c3d4e5-f6a7-8901-bcde-f12345678901" \ -H "Idempotency-Key: req_abc123_retry1" \ -H "Content-Type: application/json" \ -d '{ "campaign": { "name": "Customer Notifications Updated", "description": "Updated appointment reminders and account notifications", "type": "App", "useCases": [ { "messagingUseCaseUs": "ACCOUNT_NOTIFICATION", "sampleMessages": [ "Hi {name}, your appointment is confirmed for {date} at {time}.", "Your order #{order_id} has been shipped. Track at {url}" ] } ], "messageFlow": "User signs up on website and opts in to receive SMS notifications", "privacyPolicyLink": null, "termsAndConditionsLink": null, "optinMessage": null, "optoutMessage": null, "helpMessage": null, "optinKeywords": null, "optoutKeywords": null, "helpKeywords": null }, "sandbox": false }'{
"success": true,
"data": {
"useCases": [
{
"campaignId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
"customerId": "00000000-0000-0000-0000-000000000000",
"messagingUseCaseUs": "ACCOUNT_NOTIFICATION",
"sampleMessages": [
"Hi {name}, your appointment is confirmed for {date} at {time}.",
"Your order #{order_id} has been shipped. Track at {url}"
],
"id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
"createdAt": "0001-01-01T00:00:00+00:00",
"updatedAt": null
}
],
"tcrSyncError": null,
"kycSubmissionFormId": null,
"type": "App",
"customerId": "00000000-0000-0000-0000-000000000000",
"name": "Customer Notifications Updated",
"description": "Updated appointment reminders and account notifications",
"submittedToTCR": false,
"submittedAt": null,
"billedDate": null,
"cost": null,
"telnyxCampaignId": null,
"tcrCampaignId": null,
"cspId": null,
"status": null,
"brandId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"resellerId": null,
"messageFlow": null,
"privacyPolicyLink": null,
"termsAndConditionsLink": null,
"optinMessage": null,
"optoutMessage": null,
"helpMessage": null,
"optinKeywords": null,
"optoutKeywords": null,
"helpKeywords": null,
"upstreamCnpId": null,
"sharingStatus": null,
"id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
"createdAt": "2026-03-24T15:21:52.2016837+00:00",
"updatedAt": "2026-03-31T15:21:52.2016853+00:00"
},
"error": null,
"meta": {
"request_id": "req_7X9zKp2jDw",
"timestamp": "2026-03-31T15:21:52.2017+00:00",
"version": "v3"
}
}{
"success": false,
"data": null,
"error": {
"code": "VALIDATION_001",
"message": "These campaigns are read-only. Set inherit_tcr_campaign to false to manage your own campaigns.",
"details": null,
"doc_url": "https://docs.sent.dm/docs/reference/api/error-catalog"
},
"meta": {
"request_id": "req_7X9zKp2jDw",
"timestamp": "2026-03-31T15:21:52.2017014+00:00",
"version": "v3"
}
}{
"success": false,
"data": null,
"error": {
"code": "RESOURCE_010",
"message": "Campaign not found for this profile",
"details": null,
"doc_url": "https://docs.sent.dm/docs/reference/api/error-catalog"
},
"meta": {
"request_id": "req_7X9zKp2jDw",
"timestamp": "2026-03-31T15:21:52.201702+00:00",
"version": "v3"
}
}{
"success": false,
"data": null,
"error": {
"code": "INTERNAL_001",
"message": "Failed to update campaign. Please contact support with request ID: req_7X9zKp2jDw",
"details": null,
"doc_url": "https://docs.sent.dm/docs/reference/api/error-catalog"
},
"meta": {
"request_id": "req_7X9zKp2jDw",
"timestamp": "2026-03-31T15:21:52.2017025+00:00",
"version": "v3"
}
}Create a campaign for a profile's brand POST
Creates a new campaign scoped under the brand of the specified profile. Each campaign must include at least one use case with sample messages.
Delete a campaign DELETE
Deletes a campaign by ID from the brand of the specified profile. The profile must belong to the authenticated organization.