---
title: "Bulk copy campaigns"
type: reference
method: POST
path: /rest-api/campaigns/copy/bulk/{advertiserId}.do
tag: "Campaigns"
---

# Bulk copy campaigns

`POST https://YOUR-NETWORK-DOMAIN/rest-api/campaigns/copy/bulk/{advertiserId}.do`

Copies one or more campaigns to a target advertiser in a single bulk operation. Each campaign in the request names its source (companyId), a new name (companyName) and the banners to copy (banners: send [] for none), each with itemId (item_id is accepted too), link and active. The 'numberOfCopies' parameter controls how many copies of each campaign are created, 1 to 20 (default 1); an empty request or a count outside that range is a 400. A campaign whose copy fails is listed in failedCampaignIds and success is false; the other campaigns are still copied. The target advertiser must exist and not be deleted. Each source campaign is validated for existence and non-deleted status, and the caller must have UPDATE permission on both the source campaign's advertiser and the target advertiser. Returns a merged result containing new campaign IDs, titles, and success status.

## Path params

| Name | Type | Required | Example | Description |
|---|---|---|---|---|
| `advertiserId` | integer | yes | `1001` | Unique identifier of the target advertiser that will own the copied campaigns. Must reference an existing, non-deleted advertiser |

## Query params

| Name | Type | Required | Example | Description |
|---|---|---|---|---|
| `numberOfCopies` | integer | no | `1` | Number of copies to create for each campaign in the bulk request, 1 to 20. Defaults to 1 if not specified |

## Body

A JSON body. An example, built from the field definitions:

```json
[
  {
    "companyName": "Summer Campaign (Copy)",
    "companyId": "3001"
  }
]
```

## Responses

- `200` — Bulk copy operation result with new campaign IDs
- `400` — Invalid request format or deleted advertiser/campaign
- `401` — Authentication error
- `403` — Insufficient permissions
- `404` — Advertiser or campaign not found

## Example request

```bash
curl --request POST \
  --url 'https://YOUR-NETWORK-DOMAIN/rest-api/campaigns/copy/bulk/1001.do?numberOfCopies=1' \
  --header 'X-Api-Key: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '[
  {
    "companyId": 3001,
    "companyName": "Summer Campaign (Copy)",
    "banners": []
  }
]'
```

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