Update a campaign

Deprecated. This endpoint is replaced by /v3/sender-profiles and will be removed in a future release. It still behaves exactly as before, so nothing needs to change today — but new integrations should use /v3/sender-profiles, which models a profile's markets, compliance, brand, campaigns and billing explicitly.

Updates an existing campaign under the brand of the specified profile. Once the campaign has been submitted to TCR its volume can no longer move between low volume (under 2,000 messages a day) and high volume.

PUT
/v3/profiles/{profileId}/campaigns/{campaignId}

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X PUT "https://example.com/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"    },    "sandbox": false  }'
{
  "success": true,
  "data": {
    "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
    "customerId": "00000000-0000-0000-0000-000000000000",
    "type": "App",
    "name": "Customer Notifications Updated",
    "description": "Updated appointment reminders and account notifications",
    "brandId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "status": null,
    "tcrCampaignId": null,
    "submittedToTCR": false,
    "submittedAt": null,
    "cost": null,
    "billedDate": null,
    "messageFlow": null,
    "volume": null,
    "privacyPolicyLink": null,
    "termsAndConditionsLink": null,
    "optinMessage": null,
    "optoutMessage": null,
    "helpMessage": null,
    "optinKeywords": null,
    "optoutKeywords": null,
    "helpKeywords": null,
    "dcaElectionsComplete": null,
    "dcaElectionsCompletedAt": null,
    "tcrSyncError": null,
    "hasSubmissionTransaction": false,
    "useCases": [
      {
        "id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
        "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}"
        ],
        "createdAt": "0001-01-01T00:00:00+00:00",
        "updatedAt": null
      }
    ],
    "createdAt": "2026-10-29T15:14:27.1614832+00:00",
    "updatedAt": "2026-11-05T15:14:27.161484+00:00"
  },
  "error": null,
  "meta": {
    "request_id": "req_7X9zKp2jDw",
    "timestamp": "2026-11-05T15:14:27.1614972+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/reference/api/error-catalog"
  },
  "meta": {
    "request_id": "req_7X9zKp2jDw",
    "timestamp": "2026-11-05T15:14:27.1615162+00:00",
    "version": "v3"
  }
}
Empty
Empty
{
  "success": false,
  "data": null,
  "error": {
    "code": "RESOURCE_010",
    "message": "Campaign not found for this profile",
    "details": null,
    "doc_url": "https://docs.sent.dm/reference/api/error-catalog"
  },
  "meta": {
    "request_id": "req_7X9zKp2jDw",
    "timestamp": "2026-11-05T15:14:27.1615168+00:00",
    "version": "v3"
  }
}
{
  "success": true,
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": [
        "string"
      ],
      "property2": [
        "string"
      ]
    },
    "doc_url": "string"
  },
  "meta": {
    "request_id": "string",
    "timestamp": "2019-08-24T14:15:22Z",
    "version": "string"
  }
}
{
  "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/reference/api/error-catalog"
  },
  "meta": {
    "request_id": "req_7X9zKp2jDw",
    "timestamp": "2026-11-05T15:14:27.1615173+00:00",
    "version": "v3"
  }
}