---
title: "Duplicate an ad"
method: POST
path: "/v1/ads/{adId}/duplicate"
tags: ["Ad Campaigns"]
---

# Duplicate an ad

`POST /v1/ads/{adId}/duplicate`

Duplicates a single ad via Meta's native `POST /{ad-id}/copies`. The copy is created
paused. `adSetId` retargets the copy into another ad set; omitted = the source's own ad
set. Accepts the Zernio ad id or the platform ad id. Sync discovery is triggered
automatically (`syncAfter: false` to skip).

## Path parameters

- `adId` string, required

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `adSetId` string — Destination platform ad set id (defaults to the source's ad set)
  - `statusOption` 'ACTIVE' | 'PAUSED' | 'INHERITED_FROM_SOURCE'
  - `renameStrategy` 'DEEP_RENAME' | 'ONLY_TOP_LEVEL_RENAME' | 'NO_RENAME'
  - `renamePrefix` string
  - `renameSuffix` string
  - `syncAfter` boolean

## Response `200`

Ad duplicated

- object
  - `copiedAdId` string — Platform ID of the new ad
  - `discovery` 'triggered' | 'skipped' | 'failed'
  - `raw` object

## Other responses

- `400` — Invalid input
- `401` — Unauthorized
- `404` — Ad not found
- `501` — Only supported on Meta (facebook/instagram)

---

[API](https://skmtc.net/zernio/apis/zernio-api.md) · [All operations](https://skmtc.net/zernio/apis/zernio-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/zernio/zernio-api/versions/f81ca70ea6b9/schema)
