---
title: "Copy or move campaign"
type: reference
method: POST
path: /rest-api/campaign/{campaignId}/{operation}/{advertiserId}.do
tag: "Campaigns"
---

# Copy or move campaign

`POST https://YOUR-NETWORK-DOMAIN/rest-api/campaign/{campaignId}/{operation}/{advertiserId}.do`

Copies or moves a campaign to an advertiser (the same or another one). COPY creates copyCount (1 to 20; anything else is a 400 naming the limit) new campaigns and returns their IDs in 'created' and, in 'copies', each copy's id, name and whether it starts active. A copy is named after the optional 'name' - the first copy takes it as given, later ones get ' 2', ' 3'... appended - or, without 'name', '<name>_copy' / '<name>_copy(N)' when the target advertiser already has a campaign of the source's name, and the source's own name otherwise. Each copy carries the campaign settings (priority, weight, optimization, labels, autolink categories, description), targeting rules, frequency/click/action/no-click and DSP frequency capping, the total limit and action limits, pricing with country and action prices, price adjustment rules, rule groups, piggybacks, PMP deals and competitor campaigns. Request capping and DSP recency capping are not copied. A copy starts switched OFF unless preserveActive=true, which keeps the source campaign's on/off state. Unless dontCopyBanners=true, every non-deleted banner whose creative files are present is copied with its own settings, targeting, capping, limits, pricing and approval status; copied banners keep their source on/off state unless pauseBanners=true switches them off. Placement links are copied only with keepBannersLinked=true (and only to placements the user can access); otherwise copied banners start unlinked. MOVE reassigns the same campaign (IDs unchanged) with all its banners to the target advertiser; its banners lose their placement links unless keepBannersLinked=true. copyCount, dontCopyBanners, pauseBanners and preserveActive apply to COPY only. Both the source campaign and target advertiser must exist and not be deleted.

## Path params

| Name | Type | Required | Example | Description |
|---|---|---|---|---|
| `campaignId` | integer | yes | `2001` | Unique identifier of the campaign to copy or move |
| `operation` | string | yes | `COPY` | Operation to perform: COPY or MOVE |
| `advertiserId` | integer | yes | `1001` | ID of the target advertiser to copy/move the campaign to |

## Form params

| Name | Type | Required | Example | Description |
|---|---|---|---|---|
| `copyCount` | integer | no | `1` | Number of copies to create, 1 to 20 (COPY only, defaults to 1) |
| `keepBannersLinked` | boolean | no | `false` | Whether the copied or moved banners stay linked to the source banners' placements; when false they end up with no placement links (defaults to false) |
| `dontCopyBanners` | boolean | no | `false` | When true, campaign banners are not copied (COPY only, defaults to false) |
| `pauseBanners` | boolean | no | `false` | When true, the copied banners are switched off; when false they keep the source banners' on/off state (COPY only, defaults to false) |
| `preserveActive` | boolean | no | `false` | When true, the copied campaign keeps the source campaign's on/off state; when false (default) every copy starts switched off (COPY only) |
| `name` | string | no | `Summer Sale - retargeting` | Name for the copy (COPY only, at most 500 characters). With copyCount above 1 the later copies are named '<name> 2', '<name> 3'... Omit to keep the source's name (with '_copy' appended when the target advertiser already has one of that name). |

## Responses

- `200` — Operation completed successfully
- `400` — Wrong request format or entity not found
- `401` — Authentication error
- `403` — Not enough permissions
- `404` — Not found — resource does not exist
- `500` — Internal server error during operation

## Example request

```bash
curl --request POST \
  --url 'https://YOUR-NETWORK-DOMAIN/rest-api/campaign/2001/COPY/1001.do' \
  --header 'X-Api-Key: YOUR_API_KEY' \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data-urlencode 'name=Summer Sale - retargeting' \
  --data-urlencode 'copyCount=1' \
  --data-urlencode 'keepBannersLinked=false'
```

Source: https://epom.com/ad-server/docs/api/campaigns/post-campaign