# Update a draft campaign

**PATCH** `/campaigns/{campaignId}`

Only draft campaigns are editable. If-Match is optional; when supplied, it must contain the current campaign ETag.

Authentication: bearerAuth
Required scopes: `campaign:update`
Allowed roles: `owner`, `admin`
Authorization: Update a draft campaign.

## Request body

- `application/json`: `UpdateCampaignRequest` required.

## Responses

- `200`: Campaign updated
- `412`: The supplied ETag is stale.
- `default`: Error
