---
title: "Update a draft campaign"
method: PUT
path: "/campaigns/{campaignId}"
tags: ["Campaigns"]
---

# Update a draft campaign

`PUT /campaigns/{campaignId}`

Update a draft campaign's name, content, or reply-to settings.

## Path parameters

- `campaignId` string, required

## Request body

- object
  - `name` string — Updated campaign name
  - `subject` string — Updated email subject line
  - `html` string — Updated email HTML content. Mutually exclusive with `blocks`.
  - `blocks` object[] — Updated Sequenzy email blocks. Mutually exclusive with `html`.
  - `replyTo` string, email — Existing reply profile email for this company. Mutually exclusive with `replyProfileId`.
  - `replyProfileId` string — Reply profile ID for this company. Mutually exclusive with `replyTo`.

## Response `200`

Campaign updated successfully

- object
  - `success` boolean, required
  - `campaign` object, required
    - `id` string
    - `name` string
    - `subject` string
    - `status` string
    - `replyProfileId` string, nullable
    - `replyToName` string, nullable
    - `replyToEmail` string, email, nullable

## Other responses

- `400` — Validation error
- `401` — Unauthorized
- `404` — Campaign not found
- `422` — Request body failed schema validation

## Changes

- **2026-04-16** `3e7678233a4e` — 1 info
  - added the new optional request property `blocks`
- **2026-04-12** `b56685d87b35` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/sequenzy/apis/sequenzy-api/changes/campaigns/:campaignId/put.md)

---

[API](https://skmtc.dev/sequenzy/apis/sequenzy-api.md) · [All operations](https://skmtc.dev/sequenzy/apis/sequenzy-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/sequenzy/sequenzy-api/revisions/3bbf8d3569bb/schema)
