v2

latestOpenAPI 3.1.02026-08-075421692.0 MB
Ad Campaigns

Duplicate an ad set

Duplicates an ad set, including its ads and creatives by default (deepCopy: true), via Meta's native POST /{adset-id}/copies. The copy is created paused so callers can review before launching. campaignId retargets the copy into another campaign; omitted = the source's own campaign. The new hierarchy materializes asynchronously — sync discovery is triggered automatically (syncAfter: false to skip).

post/v1/ads/ad-sets/{adSetId}/duplicate

Path parameters

adSetIdstring required

Source platform ad set ID

Headers

Idempotency-Keystring

Optional client-generated unique key (e.g. a UUID) that makes retries safe. Same key + same body replays the original response; same key + different body → 422; key still processing → 409. Only 2xx responses are stored, so a request that failed with a 4xx can be retried with a corrected body under the SAME key.

Request body

platform'facebook' | 'instagram' required
campaignIdstring

Destination platform campaign id (defaults to the source's campaign)

deepCopyboolean

Copy child ads + creatives

statusOption'ACTIVE' | 'PAUSED' | 'INHERITED_FROM_SOURCE'
startTimestring date-time

Reschedule the copy's start time

endTimestring date-time
renameStrategy'DEEP_RENAME' | 'ONLY_TOP_LEVEL_RENAME' | 'NO_RENAME'
renamePrefixstring
renameSuffixstring
syncAfterboolean

Response

Ad set duplicated

copiedAdSetIdstring

Platform ID of the new ad set

discovery'triggered' | 'skipped' | 'failed'
rawobject

Meta's native copy response (includes ad_object_ids for child copies)