# Update campaign
URL: /docs/api-reference/campaigns/update-campaign
Description: Updates an existing campaign.

**PUT** `https://www.promotekit.com/api/v1/campaigns/{id}`

Updates an existing campaign.

## Authentication

Requires a Bearer token in the `Authorization` header.

## Parameters

- `id` (path): string (uuid) **(required)** - Resource UUID

## Request Body

- `name`: string
- `commission_type`: string: `percentage`, `fixed`
- `commission_amount`: number
- `code_mode`: string: `link`, `coupon`, `both` - Referral code mode. "link" creates affiliate links, "coupon" creates promo codes, "both" creates both.
- `website_url`: string - Campaign website URL. Required when code_mode is "link" or "both".
- `reference_coupon`: string - Stripe coupon ID for the campaign. Required when code_mode is "coupon" or "both".
- `is_default`: boolean

## Responses

### 200 - Campaign updated

- `success`: boolean **(required)**
- `data`: object **(required)**

### 400 - Invalid request

- `success`: boolean **(required)**
- `error`: object **(required)**

### 401 - Authentication failed

- `success`: boolean **(required)**
- `error`: object **(required)**

### 404 - Resource not found

- `success`: boolean **(required)**
- `error`: object **(required)**

### 429 - Rate limit exceeded

- `success`: boolean **(required)**
- `error`: object **(required)**