# Copy a Campaign

Copy a campaign

Endpoint: POST /campaigns/{campaign_id}/copy
Version: 3.0.1807
Security: Auth0

## Path parameters:

  - `campaign_id` (integer, required)
    Numeric ID of the campaign object

## Request fields (application/json):

  - `advertiser_id` (integer)

  - `name` (string, required)

  - `start_date` (string)

  - `end_date` (string)

  - `merit_pixels` (array)
    Merit pixels for multi-merit attribution (up to 10 per campaign).
If merit_pixel_id is updated then merit_pixels will be synchronized with it.
If merit_pixels is updated then merit_pixel_id will be synchronized with it.
Update both fields at the same time is not supported.

Validation rules:
- Each pixel_id must reference an event pixel that belongs to the campaign's advertiser.
- pixel_id values must be unique within the array.
- weight accepts values from 0.00 to 10.00 with at most 2 decimal places; at least one pixel must have a weight greater than 0.
- funnel_position values must be unique; if any pixel has a funnel position then all pixels must have one, with no gaps (1 to N).

  - `merit_pixels.pixel_id` (integer, required)

  - `merit_pixels.weight` (number)

  - `merit_pixels.funnel_position` (integer,null)

  - `status` (boolean, required)

  - `copy_assigned_site_lists` (boolean)
    If true copy everything under 'site lists'

  - `copy_vendor_contracts` (boolean)
    If true copy everything under 'vendor contracts'

  - `copy_brain_settings` (boolean)
    Used to be called 'remember_source'.  If true set the source_campaign_id to campaign id

  - `copy_audience_in_brain` (boolean)
    If true copy 'custom_brain_selections'

  - `copy_viewability` (boolean)
    If true then copy viewability fields

  - `budget` (object)

  - `budget.flights` (array)

  - `budget.flights.start_date` (string, required)
    Example: "2019-08-24T14:15:22Z"

  - `budget.flights.end_date` (string, required)
    Example: "2019-08-24T14:15:22Z"

  - `budget.flights.total_budget` (number, required)
    Example: 0.1

  - `budget.flights.total_impression_budget` (integer,null)
    Example: 100

  - `merit_pixel_id` (integer,null)
    Deprecated. Use merit_pixels instead.
If merit_pixel_id is updated then merit_pixels will be synchronized with it.
If merit_pixels is updated then merit_pixel_id will be synchronized with it.
Update both fields at the same time is not supported.

## Response 201 fields (application/json):

  - `data` (object)

  - `data.archived` (boolean)

  - `data.status` (boolean)

  - `data.name` (string)

  - `data.service_type` (string)
    Enum: "SELF", "MANAGED"

  - `data.io_name` (string)

  - `data.io_reference_num` (string)

  - `data.is_programmatic_guaranteed` (boolean)

  - `data.political` (boolean)

  - `data.source_campaign_id` (integer,null)
    Example: 7

  - `data.zone_name` (string)

  - `data.viewability` (object,null)

  - `data.viewability.vendor_id` (integer, required)
    Example: 34

  - `data.viewability.type` (string, required)
    Enum: "AUTO_TAG", "BYOV"

  - `data.viewability.sample_rate` (number, required)

  - `data.identity` (object)

  - `data.identity.device_graph_only` (boolean)

  - `data.identity.bid_min_devices` (integer)

  - `data.identity.connected_id_type` (string,null)
    Enum: "DETERMINISTIC_FIRST"

  - `data.ad_server` (object)

  - `data.ad_server.ad_server_id` (integer)
    Example: 19

  - `data.ad_server.ad_server_username` (string)

  - `data.ad_server.ad_server_password` (string)

  - `data.ad_server.use_default_ad_server` (boolean)

  - `data.ad_server.ad_server_fee` (number)

  - `data.pacing` (object)

  - `data.pacing.pacing_alert` (number)

  - `data.pacing.impression_cap_automatic` (boolean)

  - `data.pacing.impression_cap_amount` (integer,null)
    Example: 11

  - `data.pacing.impression_cap_type` (string)
    Enum: "even", "asap", "no-limit"

  - `data.pacing.spend_cap_type` (string)
    Enum: same as `data.pacing.impression_cap_type` (3 values)

  - `data.pacing.spend_cap_amount` (number,null)

  - `data.pacing.spend_cap_automatic` (boolean)

  - `data.pacing.brain_intraday_pacing` (boolean)

  - `data.pacing.spend_pace_ahead` (boolean)
    feature still in development

  - `data.pacing.impression_pace_ahead` (boolean)
    feature still in development

  - `data.attribution` (object)

  - `data.attribution.has_custom_attribution` (boolean)

  - `data.attribution.custom_attribution_source` (string,null)
    Enum: "3rd Party Attribution", "T1 MTA via Neustar"

  - `data.attribution.pc_window_minutes` (integer)
    Example: 5

  - `data.attribution.pv_window_minutes` (integer)
    Example: 6

  - `data.attribution.pv_pct` (number)

  - `data.attribution.merit_pixels` (array)
    Merit pixels for multi-merit attribution (up to 10 per campaign).
If merit_pixel_id is set on create or update then merit_pixels will be synchronized with it.
If merit_pixels is set on create or update then merit_pixel_id will be synchronized with it.
Set up (update) both fields at the same time is not supported.
Send empty array to remove all pixels. Send only pixel id for element to reset other fields to default.

Validation rules:
- Each pixel_id must reference an event pixel that belongs to the campaign's advertiser.
- pixel_id values must be unique within the array.
- weight accepts values from 0.00 to 10.00 with at most 2 decimal places; at least one pixel must have a weight greater than 0.
- funnel_position values must be unique; if any pixel has a funnel position then all pixels must have one, with no gaps (1 to N).

  - `data.attribution.merit_pixels.id` (integer)

  - `data.attribution.merit_pixels.pixel_id` (integer, required)

  - `data.attribution.merit_pixels.weight` (number)

  - `data.attribution.merit_pixels.funnel_position` (integer,null)

  - `data.attribution.conversion_type` (string)
    Enum: "every", "variable"

  - `data.attribution.conversion_variable_minutes` (integer)
    Deduplication window in minutes. Must be 1 or greater when conversion_type is variable. To attribute all merit events without a deduplication window, use conversion_type: every (in which case this value is ignored).
    Example: 1

  - `data.attribution.merit_pixel_id` (integer,null)
    Deprecated. Use merit_pixels instead.
If merit_pixel_id is set on create or update then merit_pixels will be synchronized with it.
If merit_pixels is set on create or update then merit_pixel_id will be synchronized with it.
Set up (update) both fields at the same time is not supported.
    Example: 17

  - `data.vendor_contracts` (array)

  - `data.vendor_contracts.vendor_id` (integer, required)
    Example: 23

  - `data.vendor_contracts.use_mm_contract` (boolean)

  - `data.vendor_contracts.price` (number,null)

  - `data.vendor_contracts.rate_card_type` (string,null)
    Enum: "CPM", "FIXED"

  - `data.mfa_avoidance` (string)
    Enum: "INHERIT", "ALLOW_ALL", "EXCLUDE_MFA"

  - `data.targeting_identity_level` (string)
    Enum: "INHERIT", "INDIVIDUAL", "HOUSEHOLD"

  - `data.id` (integer)

  - `data.entity_type` (string)

  - `data.version` (integer)

  - `data.advertiser_id` (integer)

  - `data.created_on` (string)

  - `data.updated_on` (string)

  - `data.locked_on` (string,null)

  - `data.v3_usage` (boolean)

  - `data.duration` (object)
    Duration of campaigns must not exceed 36 months

  - `data.duration.start_date` (string)

  - `data.duration.end_date` (string)

  - `data.duration.initial_start_date` (string)

  - `data.goals` (object)

  - `data.goals.goal_type` (string)
    Enum: "spend", "reach", "cpc", "cpe", "cpa", "roi", "ctr", "vcr", "viewability_rate", "vcpm"

  - `data.goals.goal_alert` (number)

  - `data.goals.goal_value` (number)

  - `data.goals.goal_category` (string,null)
    Enum: "audience", "engagement", "response"

  - `data.budget` (object)

  - `data.budget.currency_code` (string)
    Example: "USD"

  - `data.budget.margin_pct` (number)

  - `data.budget.dynamic_budget_allocation_type` (string)
    Enum: "SBA_AUTO_ALLOCATION", "SBA_RECOMMENDATIONS_ONLY", "OFF"

  - `data.budget.dynamic_budget_allocation_applied` (string)

  - `data.budget.dynamic_budget_allocation_available` (string)

  - `data.budget.flights` (array)

  - `data.budget.flights.id` (integer)
    Example: 77

  - `data.budget.flights.start_date` (string)

  - `data.budget.flights.end_date` (string)
    The latest end date of flight must be no more than 36 months after the earliest start date

  - `data.budget.flights.total_budget` (number)

  - `data.budget.flights.total_impression_budget` (integer,null)
    Example: 12345

  - `data.budget.flights.is_relevant` (boolean)

  - `data.budget.total_budget` (number,null)

  - `data.budget.total_impression_budget` (integer,null)
    Example: 18789

  - `data.frequency` (object)

  - `data.frequency.frequency_type` (string)
    Enum: "even", "asap", "no-limit", "t1-optimized", "frequency_goal"

  - `data.frequency.frequency_interval` (string,null)
    Enum: "hour", "day", "week", "month", "not-applicable"

  - `data.frequency.frequency_amount` (integer,null)
    Example: 10

  - `data.frequency.frequency_optimization` (boolean)

  - `data.frequency.use_mm_freq` (boolean)

  - `data.inventory` (object)

  - `data.inventory.ads_txt_verified` (string,null)
    Enum: "ANY", "AUTHORIZED_ONLY", "AUTHORIZED_DIRECT_ONLY", "NONE"

  - `data.inventory.minimize_multi_ads` (boolean)

  - `data.inventory.override_suspicious_traffic_filter` (boolean)

  - `data.inventory.suspicious_traffic_filter_level` (integer)

  - `data.inventory.dcs_data_is_campaign_level` (boolean)

  - `data.inventory.restrict_targeting_to_same_device_id` (boolean)

  - `data.inventory.effective_ads_txt_verified` (string)
    Enum: same as `data.inventory.ads_txt_verified` (4 values)

  - `data.inventory.restrict_targeting_to_deterministic_id` (boolean)

  - `data.site_lists` (array)

  - `data.site_lists.id` (integer)

  - `data.site_lists.name` (string)

  - `data.site_lists.version` (integer)

  - `data.site_lists.status` (boolean)

  - `data.site_lists.organization_id` (integer)

  - `data.site_lists.created_on` (string)

  - `data.site_lists.updated_on` (string)

  - `data.site_lists.restriction` (string)

  - `data.site_lists.filename` (string)

  - `data.site_lists.campaign_id` (integer)

  - `data.site_lists.assigned` (boolean)

  - `data.site_lists.sites_count` (integer)

  - `data.site_lists.sites_count_app` (integer)

  - `data.site_lists.sites_count_domain` (integer)

  - `data.site_lists.sites_count_primary_seller_id` (integer)

  - `data.custom_brain_selections` (array)

  - `data.custom_brain_selections.id` (integer)

  - `data.custom_brain_selections.version` (integer)

  - `data.custom_brain_selections.campaign_id` (integer)

  - `data.custom_brain_selections.selection_id` (integer)

  - `data.custom_brain_selections.selection_type` (string)

  - `data.custom_brain_selections.active` (boolean)

  - `data.custom_brain_selections.enable_mm_audiences_in_brain` (boolean)

  - `data.custom_brain_selections.is_retired` (boolean)

  - `data.custom_brain_selections.full_path` (string)

  - `data.custom_brain_selections.owner_name` (string)

  - `data.custom_brain_selections.selection_name` (string)

  - `data.custom_brain_selections.child_count` (integer)

  - `data.custom_brain_selections.parent_audience_segment_id` (integer)

  - `data.custom_brain_selections.retail_cpm` (number)

  - `data.custom_brain_selections.uniques` (integer)

  - `data.custom_brain_selections.wholesale_cpm` (number)

  - `data.strategies` (object)

  - `data.strategies.count` (integer)

  - `data.strategies.strategies_list` (array)

  - `data.strategies.distinct_strategy_goal_types` (array)
    Enum: same as `data.goals.goal_type` (10 values)

  - `data.strategy_groups` (object)

  - `data.strategy_groups.count` (integer)

  - `data.strategy_groups.strategy_groups_list` (array)

  - `data.inherited_mfa_avoidance` (string)
    available if mfa_avoidance = INHERIT
    Enum: same as `data.mfa_avoidance` (3 values)

  - `data.inherited_mfa_from` (string)
    available if mfa_avoidance = INHERIT
    Enum: "Organization", "Agency", "Advertiser", "Campaign"

  - `data.inherited_targeting_identity_level` (string)
    available if targeting_identity_level = INHERIT
    Enum: "INDIVIDUAL", "HOUSEHOLD"

  - `meta` (object)

  - `meta.status` (string, required)
    Example: "success"

## Response 400 fields (application/json):

  - `errors` (array, required)

  - `errors.code` (string)

  - `errors.field` (string)
    Optional when it is a schema error

  - `errors.message` (string)

  - `meta` (object, required)

  - `meta.status` (string, required)


