---
title: "Updates a campaign."
method: PUT
path: "/campaign/{campaignId}"
tags: ["Tracker"]
---

# Updates a campaign.

`PUT /campaign/{campaignId}`

Full-replacement update, not a partial patch. The request body accepts the
campaign object returned by the get-campaign endpoint as-is.

## Required workflow

To change one or more fields: first fetch the campaign, take the object exactly
as returned, modify only the fields you intend to change, and send the whole
object back. Do not build the payload from scratch.

## Do not drop fields

Send back every field you received from GET, including fields not described in
this schema. The campaign object carries more fields than the documented schema
exposes, and because this is a full replacement, any field omitted from the body
is removed or reset on the campaign. Echoing the GET response verbatim (plus your
edits) is what preserves them.

## Do not add fields

Do not introduce fields that were not present in the GET response just to satisfy
a `required` marker in the schema. The object returned by GET is already complete
and valid for update; adding fields risks sending invented or wrong values.

## Path parameters

- `campaignId` string, required

## Response `200`

A Campaign.

---

[API](https://skmtc.net/voluum/apis/voluum-api.md) · [All operations](https://skmtc.net/voluum/apis/voluum-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/voluum/voluum-api/versions/ebf61c973cf2/schema)
