---
title: "Update campaign UTM settings"
method: PUT
path: "/campaigns/{id}/utm"
tags: ["Campaigns"]
---

# Update campaign UTM settings

`PUT /campaigns/{id}/utm`

## Request

- Base URL: `https://api.omnisend.com/api`
- URL: `https://api.omnisend.com/api/campaigns/{id}/utm`
- Auth: one of:
  - OAuth 2
    - Client credentials
    - Token URL: `https://app.omnisend.com/oauth2/token` scopes: `campaigns.write`
  - API key in header `Authorization`

Replace UTM tag settings for a campaign. For regular campaigns send a
`tags` object. For A/B test campaigns send a `variants` object. The campaign
must be in draft status.

**Scopes:**
`campaigns.write`

**Rate Limiting:**
This endpoint is rate limited to 400 requests per minute.

## Path parameters

- `id` string, required

## Headers

- `Omnisend-Version` string, required

## Request body

- UTMUpdate: UTM update request. Provide `tags` for regular campaigns or `variants` for A/B test campaigns. Exactly one must be present; providing both is a validation error.
  - `tags` UTMTags: UTM tag values. Providing empty values resets them to defaults.
    - `campaign` string: UTM campaign parameter (max 250 characters)
    - `medium` string: UTM medium parameter (max 250 characters)
    - `source` string: UTM source parameter (max 250 characters)
  - `variants` UTMVariantsUpdate: UTM variant update entries for an A/B test campaign.
    - `a` UTMVariantTags: UTM variant tags for an A/B update request. Providing empty values resets them to defaults.
      - `campaign` string: UTM campaign parameter (max 250 characters)
      - `medium` string: UTM medium parameter (max 250 characters)
      - `source` string: UTM source parameter (max 250 characters)
    - `b` UTMVariantTags: UTM variant tags for an A/B update request. Providing empty values resets them to defaults.
      - `campaign` string: UTM campaign parameter (max 250 characters)
      - `medium` string: UTM medium parameter (max 250 characters)
      - `source` string: UTM source parameter (max 250 characters)

## Response `200`

Updated UTM settings

- UTMResponse: UTM settings for a campaign. Exactly one of `tags` (regular campaign) or `variants` (A/B test campaign) is present.
  - `tags` UTMTags: UTM tag values. Providing empty values resets them to defaults.
    - `campaign` string: UTM campaign parameter (max 250 characters)
    - `medium` string: UTM medium parameter (max 250 characters)
    - `source` string: UTM source parameter (max 250 characters)
  - `variants` UTMVariants: UTM variants for an A/B test campaign.
    - `a` UTMVariant: UTM variant entry for an A/B test campaign.
      - `id` string: Variant campaign ID (read-only)
      - `tags` UTMTags: UTM tag values. Providing empty values resets them to defaults.
        - `campaign` string: UTM campaign parameter (max 250 characters)
        - `medium` string: UTM medium parameter (max 250 characters)
        - `source` string: UTM source parameter (max 250 characters)
    - `b` UTMVariant: UTM variant entry for an A/B test campaign.
      - `id` string: Variant campaign ID (read-only)
      - `tags` UTMTags: UTM tag values. Providing empty values resets them to defaults.
        - `campaign` string: UTM campaign parameter (max 250 characters)
        - `medium` string: UTM medium parameter (max 250 characters)
        - `source` string: UTM source parameter (max 250 characters)

## Other responses

- `400`: Request contains invalid or missing fields
- `401`: Authentication is missing or invalid
- `403`: Insufficient permissions for this operation
- `404`: Campaign not found
- `409`: Campaign state does not allow modification
- `410`: API version has been retired
- `429`: Rate limit exceeded
- `500`: Unexpected error occurred

---

[API](https://skmtc.dev/omnisend/apis/campaigns-api.md) - [All operations](https://skmtc.dev/omnisend/apis/campaigns-api/llms.txt) - [OpenAPI document](https://skmtc.dev/omnisend/apis/campaigns-api/revisions/fef4d9467305?raw)
