Ad Campaign Group Copies
Updated: Sep 3, 2025
Copy for LLM
Ads in WhatsApp Status are available via the Marketing API. Learn more about ads in WhatsApp Status.
Create a duplicate campaign based on an existing one.
The Marketing API has it is own rate limiting logic. If you are encountering errors mentioning a reached limit, see Rate Limiting.
Reading
This endpoint returns copies of a specific ad campaign.
Example
GET /v25.0/{campaign-id}/copies HTTP/1.1
Host: graph.facebook.com
Try it in Graph API Explorer
If you want to learn how to use the Graph API, read our Using Graph API guide
Parameters
| Parameter | Description |
|---|---|
date_presetenum{today, yesterday, this_month, last_month, this_quarter, maximum, data_maximum, last_3d, last_7d, last_14d, last_28d, last_30d, last_90d, last_week_mon_sun, last_week_sun_sat, last_quarter, last_year, this_week_mon_today, this_week_sun_today, this_year} |
Preset date range used to aggregate insights metrics
|
effective_statuslist<enum{ACTIVE, PAUSED, DELETED, PENDING_REVIEW, DISAPPROVED, PREAPPROVED, PENDING_BILLING_INFO, CAMPAIGN_PAUSED, ARCHIVED, ADSET_PAUSED, IN_PROCESS, WITH_ISSUES}> | Default value: Vec
Filter adsets by effective status
|
is_completedboolean |
Filter adsets by completed status
|
time_range{‘since’:YYYY-MM-DD,’until’:YYYY-MM-DD} |
Time range used to aggregate insights metrics
since datetime
A date in the format of "YYYY-MM-DD", which means from the beginning midnight of that day.
until datetime
A date in the format of "YYYY-MM-DD", which means to the beginning midnight of the following day.
Show child parameters |
Fields
Reading from this edge will return a JSON formatted result:
{
"data": [],
"paging": {},
"summary": {}
}
data
A list of Campaign nodes.
paging
For more details about pagination, see the Graph API guide.
summary
Aggregated information about the edge, such as counts. Specify the fields to fetch in the summary param (like summary=__type__).
| Field | Description |
|---|---|
insightsEdge<AdsInsights> |
Analytics summary for all objects
|
total_countunsigned int32 |
Total number of objects
default |
Error Codes
| Error Code | Description |
|---|---|
100 | Invalid parameter |
104 | Incorrect signature |
Creating
/{campaign_id}/copies
You can make a POST request to copies edge from the following paths:
When posting to this edge, a Campaign will be created.
Parameters
| Parameter | Description |
|---|---|
deep_copyboolean | Default value: false
Whether to copy all the child ads. Limits: the total number of children ads to copy should not exceed 3 for a synchronous call and 51 for an asynchronous call.
|
end_timedatetime |
For deep copy, the end time of the sets under the copied campaign, e.g. 2015-03-12 23:59:59-07:00 or 2015-03-12 23:59:59 PDT. UTC UNIX timestamp. When creating a set with a daily budget, specify end_time=0 to set the set to be ongoing without end date. If not set, the copied sets will inherit the end time from the original set
|
parameter_overridesCampaign spec |
parameter_overrides
|
rename_optionsJSON or object-like arrays |
Rename options
rename_strategy enum {DEEP_RENAME, ONLY_TOP_LEVEL_RENAME, NO_RENAME}Default value: ONLY_TOP_LEVEL_RENAMEDEEP_RENAME: will change this object's name and children's names in the copied object. ONLY_TOP_LEVEL_RENAME: will change the this object's name but won't change the children's name in the copied object. NO_RENAME: will change no name in the copied object
rename_prefix string
A prefix to copy names. Defaults to null if not provided.
rename_suffix string
A suffix to copy names. Defaults to null if not provided and appends a localized string of - Copy based on the ad account locale.
Show child parameters |
start_timedatetime |
For deep copy, the start time of the sets under the copied campaign, e.g. 2015-03-12 23:59:59-07:00 or 2015-03-12 23:59:59 PDT. UTC UNIX timestamp. If not set, the copied sets will inherit the start time from the original set
|
status_optionenum {ACTIVE, PAUSED, INHERITED_FROM_SOURCE} | Default value: PAUSEDACTIVE: the copied campaign will have active status. PAUSED: the copied campaign will have paused status. INHERITED_FROM_SOURCE: the copied campaign will have the parent status.
|
Return Type
This endpoint supports read-after-write and will read the node represented by copied_campaign_id in the return type.
Struct {
copied_campaign_id: numeric string,
ad_object_ids: List [ Struct {
ad_object_type: enum {
unique_adcreative,
ad,
ad_set,
campaign,
opportunities,
privacy_info_center,
topline,
ad_account,
product},
source_id: numeric string,
copied_id: numeric string,
}],
}
Error Codes
| Error Code | Description |
|---|---|
100 | Invalid parameter |
190 | Invalid OAuth 2.0 Access Token |
200 | Permissions error |
Updating
You can't perform this operation on this endpoint.
Deleting
You can't perform this operation on this endpoint.