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

# Duplicate Campaign

> Create a draft copy of a campaign

Create a draft copy of a campaign with a `(Copy)` suffix. You can duplicate the plain campaign, copy the campaign together with its A/B test and variants, or copy a single variant's content as a plain campaign.

## Request

<ParamField path="campaignId" type="string" required>
  Campaign ID to duplicate.
</ParamField>

<ParamField body="mode" type="string">
  Duplication mode. `campaign` copies the campaign email (default), `ab_test`
  also copies the linked A/B test and variants, `variant` copies one variant's
  content as a plain campaign.
</ParamField>

<ParamField body="variantId" type="string">
  Variant ID to copy. Required when `mode` is `variant`.
</ParamField>

```bash theme={null}
curl -X POST "https://api.sequenzy.com/api/v1/campaigns/camp_abc123/duplicate" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"mode": "ab_test"}'
```

## Responses

<ResponseExample>
  ```json 200 theme={null}
  {
    "success": true,
    "campaign": {
      "id": "camp_new123",
      "name": "April Launch (Copy)",
      "subject": "A quick update",
      "status": "draft",
      "labels": [],
      "emailId": "email_new123",
      "scheduledAt": null,
      "sentAt": null,
      "createdAt": "2026-06-11T10:00:00.000Z",
      "url": "https://sequenzy.com/dashboard/company/comp_abc123/campaign/camp_new123",
      "previewUrl": "https://sequenzy.com/dashboard/company/comp_abc123/campaign/camp_new123?step=review"
    }
  }
  ```

  ```json 400 theme={null}
  {
    "error": "Variant ID is required when duplicating a single variant"
  }
  ```

  ```json 400 theme={null}
  {
    "error": "A/B test variant not found for this campaign"
  }
  ```

  ```json 401 theme={null}
  {
    "error": "Invalid API key"
  }
  ```

  ```json 404 theme={null}
  {
    "error": "Campaign not found"
  }
  ```

  ```json 404 theme={null}
  {
    "error": "A/B test not found for this campaign"
  }
  ```

  ```json 500 theme={null}
  {
    "error": "Failed to duplicate campaign"
  }
  ```
</ResponseExample>
