> ## Documentation Index
> Fetch the complete documentation index at: https://api.docs.dealmachine.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Campaign

> Update a draft campaign

Update a campaign that is in `draft` status. Active, paused, completed, or cancelled campaigns cannot be updated.

If you update the audience, provide exactly one audience type: `property_ids`, `contact_ids`, or `list_ids`. Mixing audience types in a single request is not supported.

<ParamField path="id" type="string" required>
  Campaign ID (UUID)
</ParamField>

<ParamField body="name" type="string">
  Campaign name
</ParamField>

<ParamField body="description" type="string">
  Campaign description
</ParamField>

<ParamField body="property_ids" type="number[]">
  Replace the audience with property IDs. Mutually exclusive with `contact_ids` and `list_ids`.
</ParamField>

<ParamField body="contact_ids" type="number[]">
  Replace the audience with contact (person) IDs. Mutually exclusive with `property_ids` and `list_ids`.
</ParamField>

<ParamField body="list_ids" type="string[]">
  Replace the audience with saved list IDs. Mutually exclusive with `property_ids` and `contact_ids`.
</ParamField>

<ParamField body="address_to" type="string">
  Required when updating to `property_ids` and for property-based `list_ids`. Use `owner` for mailing addresses or `resident` for property addresses.
</ParamField>

<ParamField body="contact_name" type="string">
  Contact name on the postcard
</ParamField>

<ParamField body="contact_phone" type="string">
  Contact phone on the postcard
</ParamField>

<ParamField body="contact_email" type="string">
  Contact email on the postcard
</ParamField>

<ParamField body="qr_code_url" type="string">
  QR code URL
</ParamField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X PATCH https://api.v2.dealmachine.com/v1/mail/campaigns/a1b2c3d4 \
    -H "Authorization: Bearer dm_sk_live_xxx" \
    -H "Content-Type: application/json" \
    -d '{"name": "Updated Campaign Name"}'
  ```
</RequestExample>
