---
title: "Copy a strategy"
method: POST
path: "/strategies/{strategy_id}/copy"
tags: ["Strategies"]
---

# Copy a strategy

`POST /strategies/{strategy_id}/copy`

## Request

- Base URL: `https://api.mediamath.com/api/v3.0`
- URL: `https://api.mediamath.com/api/v3.0/strategies/{strategy_id}/copy`
- Auth: OAuth 2
  - Authorization code: `https://auth.mediamath.com/authorize`
  - Token URL: `https://auth.mediamath.com/oauth/token` scopes: `offline_access`, `manage:services`
- TypeScript: <https://skmtc.dev/mediamath/apis/campaigns-api/docs/strategies/:strategy_id/copy/post.ts> (a function with typed inputs; its response is checked against the schema)

Copy a strategy

## Path parameters

- `strategy_id` integer, required

## Request body

- object
  - `status` boolean, required: Indicates the status.
  - `name` string, required: Name of the entity.
  - `campaign_id` integer: Optional destination campaign for the copy. When omitted, the copy stays in the source strategy's campaign. The destination campaign may belong to a different advertiser/agency within the same organization; copying to a different organization is not allowed.
  - `copy_strategy_group` boolean: Indicates if the SOURCE strategy's strategy group is carried onto the copy. Only valid when the campaign is unchanged, since a strategy group is parented to a campaign. Mutually exclusive with strategy_group_id.
  - `strategy_group_id` integer: Optional destination strategy group for the copy. The group must belong to the destination campaign. Use this (instead of copy_strategy_group) to attach the copy to a group when copying into a different campaign. Mutually exclusive with copy_strategy_group.
  - `duration` object
    - `start_date` string, date-time: Start date of the strategy.
    - `copy_use_campaign_start` boolean: Indicates if we copy the 'use_campaign_start' field.
    - `end_date` string, date-time: End date of the strategy.
    - `copy_use_campaign_end` boolean: Indicates if we copy the 'use_campaign_end' field.
  - `targeting` object
    - `copy_geofence` boolean: Indicates if copy geofencing is enabled.
    - `copy_contextual` boolean: Indicates if copy contextual targeting is enabled.
    - `copy_audience` boolean: Indicates if copy audience targeting is enabled.
    - `copy_technology` boolean: Indicates if copy technology targeting is enabled.
    - `copy_my_data` boolean: Indicates if copy "my_data" targeting is enabled.
    - `copy_location` boolean: Indicates if copy "location" targeting is enabled.
    - `copy_day_parts` boolean: Indicates if copy "day_parts" targeting is enabled.
    - `copy_postal_codes` boolean: Indicates if copy "postal_codes" targeting is enabled.
    - `copy_audio_video` boolean: Indicates if copy "audio_video" targeting is enabled.
    - `copy_ip_addresses` boolean: Indicates if copy 'ip_address" targeting is enabled.
    - `copy_fold_position` boolean: Indicates if copy 'fold_position' targeting is enabled.
  - `inventory` object
    - `copy_supply` boolean: Indicates if a supply is copied.
    - `copy_site_lists` boolean: Indicates if site lists are copied.
    - `copy_supply_controls` boolean: Indicates if supply controls are copied
  - `concepts` object
    - `copy_creative_groups` boolean: Indicates if creative groups are copied

## Response `200`

Strategy copy

- Strategy
  - `data` object
    - `inherited_mfa_avoidance` 'INHERIT' | 'ALLOW_ALL' | 'EXCLUDE_MFA': available if mfa_avoidance = INHERIT
    - `inherited_mfa_from` 'Organization' | 'Agency' | 'Advertiser' | 'Campaign' | 'Strategy': available if mfa_avoidance = INHERIT
    - `campaign_name` string
    - `campaign_start_date` string, date-time
    - `campaign_end_date` string, date-time
    - `campaign_zone_name` string
    - `campaign_service_type` string
    - `campaign_goal_type` string
    - `campaign_goal_value` number, float
    - `campaign_merit_pixel_id` integer, nullable
    - `viewability` object
      - `sample_rate` number, float
      - `type` string
      - `vendor_id` integer
    - `name` string
    - `description` string
    - `status` boolean
    - `archived` boolean
    - `is_programmatic_guaranteed` boolean
    - `media_type` 'DISPLAY' | 'VIDEO'
    - `use_optimization` boolean
    - `ads_txt_verified` 'ANY' | 'AUTHORIZED_ONLY' | 'AUTHORIZED_DIRECT_ONLY' | 'NONE', nullable
    - `type` 'REM' | 'GBO' | 'AUD'
    - `feature_compatibility` string, nullable
    - `device_graph_only` boolean
    - `mfa_avoidance` 'INHERIT' | 'ALLOW_ALL' | 'EXCLUDE_MFA'
    - `zone_name` string
    - `created_on` string, date-time
    - `updated_on` string, date-time
    - `duration` StrategyDuration: Duration of strategy must not exceed 36 months
      - `use_campaign_start` boolean
      - `use_campaign_end` boolean
      - `start_date` string, date-time, nullable
      - `end_date` string, date-time, nullable
    - `budget` StrategyBudget
      - `budget` number, float, nullable: Must be a valid float between 1 and 10000000 USD or its equivalent in other currency.
      - `currency_code` string
      - `margin_pct` number, float, nullable
    - `frequency` StrategyFrequency
      - `frequency_type` 'even' | 'asap' | 'no-limit' | 't1-optimized' | 'frequency_goal'
      - `frequency_interval` 'hour' | 'day' | 'week' | 'month' | 'not-applicable', nullable
      - `frequency_amount` integer, nullable
      - `frequency_optimization` boolean
    - `concepts` StrategyConcepts
      - `weighting` 'NONE' | 'BUDGET' | 'IMPRESSION'
      - `creative_groups` object[]
        - `concept_id` integer, required
        - `percent` number, float, required: Sum of all percents provided inside group must be equal to 100
    - `groups` string[], nullable
    - `strategy_group_id` integer, nullable: ID of the strategy group this strategy belongs to (one-to-one). Must reference a strategy_groups row whose campaign_id matches this strategy's campaign_id. Pass null to clear the assignment.
    - `entity_type` string
    - `version` integer
    - `goals` StrategyGoals
      - `goal_type` 'spend' | 'reach' | 'cpc' | 'cpe' | 'cpa' | 'roi' | 'ctr' | 'vcr' | 'viewability_rate' | 'vcpm'
      - `goal_value` number, float
      - `min_bid` number, float
      - `max_bid` number, float
      - `roi_target` number, double, nullable
      - `bid_min_devices` integer, nullable
      - `bid_aggressiveness` integer
      - `bid_price_is_media_only` boolean
      - `max_bid_wm` number, float, nullable
      - `use_bid_shading` boolean
      - `flat_rate_cpm` number, float, nullable: This field is only available to certain organizations. For organizations without access it is omitted from responses and cannot be set on create or update.
    - `pacing` StrategyPacing
      - `impression_pacing_type` 'even' | 'asap' | 'no-limit'
      - `impression_pacing_amount` integer, nullable
      - `impression_pacing_interval` 'hour' | 'day'
      - `pacing_type` 'even' | 'asap'
      - `pacing_amount` number, float
      - `pacing_interval` 'hour' | 'day'
      - `pacing_optimization_type` 'monetary' | 'impression'
      - `pacing_optimization_amount` number, float, nullable
      - `use_dba_strategy_pacing` 'always' | 'never' | 'custom'
      - `use_dba_strategy_pacing_after_date` string, date, nullable
    - `inventory` StrategyInventory
      - `supply_type` 'RTB' | 'RMX_API' | 'T1_RMX' | 'MKT' | 'BATCH'
      - `run_on_all_pmp` boolean
      - `run_on_all_exchanges` boolean: default value is false if campaign is programmatic guarantee and is true otherwise
      - `site_restriction_transparent_urls` boolean
      - `domain_restrictions` object
        - `include` DomainRestriction[]
          - `domain` string, required
          - `target_type` 'DOMAIN' | 'APP', required
        - `exclude` DomainRestriction[]
          - `domain` string, required
          - `target_type` 'DOMAIN' | 'APP', required
      - `site_lists` SiteList[]
        - `site_list_id` integer, required
        - `assigned` boolean, required
      - `campaign_site_lists` SiteList[]
        - `site_list_id` integer, required
        - `assigned` boolean, required
      - `deals` Deal[]
        - `deal_id` integer, required
      - `deal_groups` DealGroup[]
        - `deal_group_id` integer, required
      - `supply_sources` SupplySource[]
        - `supply_source_id` integer, required
    - `id` integer
    - `campaign_id` integer
    - `targeting` object
      - `fold_position` string[], nullable
      - `audience` object
        - `include` object[]
          - `operator` 'AND' | 'OR'
          - `segments` StrategyAudienceSegment[]
            - `audience_segment_id` integer, required
            - `user_cpm` number, float, nullable: user_cpm is stored in the currency of the campaign and will not fluctuate with daily exchange rates.
        - `exclude` object
          - `operator` 'AND' | 'OR'
          - `segments` StrategyAudienceSegment[]
            - `audience_segment_id` integer, required
            - `user_cpm` number, float, nullable: user_cpm is stored in the currency of the campaign and will not fluctuate with daily exchange rates.
      - `contextual` object
        - `include` object[]
          - `code` string
          - `operator` 'AND' | 'OR'
          - `segments` StrategyContextualSegment[]
            - `targeting_segment_id` integer, required
            - `user_cpm` number, float, nullable: user_cpm is stored in the currency of the campaign and will not fluctuate with daily exchange rates.
        - `exclude` object
          - `code` string
          - `operator` 'AND' | 'OR'
          - `segments` StrategyContextualSegment[], required
            - `targeting_segment_id` integer, required
            - `user_cpm` number, float, nullable: user_cpm is stored in the currency of the campaign and will not fluctuate with daily exchange rates.
      - `audience_groups` object
        - `include` StrategySegmentGroup[]
          - `operator` 'AND', required
          - `segment_groups` object[], required
            - `segment_group_id` integer
        - `exclude` object
      - `contextual_groups` object
        - `include` StrategySegmentGroup[]
          - `operator` 'AND', required
          - `segment_groups` object[], required
            - `segment_group_id` integer
        - `exclude` object
      - `geofence` object
        - `include` StrategyGeofence
          - `operator` 'AND' | 'OR'
          - `segments` object[]
            - `geofence_segment_id` integer
            - `geofence_segment_factual_id` string
            - `place_list_id` integer
        - `exclude` StrategyGeofence
          - `operator` 'AND' | 'OR'
          - `segments` object[]
            - `geofence_segment_id` integer
            - `geofence_segment_factual_id` string
            - `place_list_id` integer
      - `my_data` object
        - `include` StrategyMyData
          - `operator` 'AND' | 'OR'
          - `pixels` object[], required
            - `pixel_id` integer, required
        - `exclude` StrategyMyData
          - `operator` 'AND' | 'OR'
          - `pixels` object[], required
            - `pixel_id` integer, required
      - `location` object
        - `include` StrategyLocation[]
          - `operator` 'AND' | 'OR'
          - `target_value_id` integer, required
          - `code` 'DMAX' | 'REGN' | 'CITY' | 'COUNTRY', required
        - `exclude` StrategyLocation[]
          - `operator` 'AND' | 'OR'
          - `target_value_id` integer, required
          - `code` 'DMAX' | 'REGN' | 'CITY' | 'COUNTRY', required
      - `technology` object
        - `include` StrategyTechnology[]
          - `operator` 'AND' | 'OR'
          - `code` 'BSER' | 'CSPD' | 'DVCE' | 'ISPX' | 'OSXX' | 'INVT' | 'VPSZ' | 'VLIN' | 'VCON' | 'VAUD' | 'VSKP' | 'VPLC' | 'DVMD' | 'BRLG' | 'IPTA' | 'HYPL', required
          - `target_value_id` integer, required
        - `exclude` StrategyTechnology[]
          - `operator` 'AND' | 'OR'
          - `code` 'BSER' | 'CSPD' | 'DVCE' | 'ISPX' | 'OSXX' | 'INVT' | 'VPSZ' | 'VLIN' | 'VCON' | 'VAUD' | 'VSKP' | 'VPLC' | 'DVMD' | 'BRLG' | 'IPTA' | 'HYPL', required
          - `target_value_id` integer, required
      - `day_parts` DayPart[]
        - `user_time` boolean: Defaults to true. true evaluates the hours in the user's local time; false evaluates them in EST.
        - `start_hour` integer, required: Inclusive start hour, from 0 through 23. 10 means the window starts at 10:00.
        - `end_hour` integer, required: Inclusive end hour, from 0 through 23. 10 means the last hour included is 10:00-10:59, so the window ends at 10:59.
        - `days` string[], required: Days of the week as single-letter codes. M Monday, T Tuesday, W Wednesday, R Thursday, F Friday, S Saturday, U Sunday.
      - `language_codes` object[]
        - `code` string
        - `name` string
      - `ip_addresses` TargetingIpAddressesResponse
        - `restriction` 'INCLUDE' | 'EXCLUDE' | ''
        - `count` integer
      - `postal_codes` TargetingPostalCodesResponse
        - `restriction` string
        - `count` integer
      - `recency` TargetingRecencyElementResponse[]
        - `pixel_id` integer
        - `from_hour` integer
        - `to_hour` integer
  - `meta` SingleMetadata
    - `status` string, required

## Other responses

- `400`: Error response
- `401`: Error response
- `403`: Error response
- `404`: Error response

---

[API](https://skmtc.dev/mediamath/apis/campaigns-api.md) - [All operations](https://skmtc.dev/mediamath/apis/campaigns-api/llms.txt) - [OpenAPI document](https://skmtc.dev/mediamath/apis/campaigns-api/revisions/408743891def?raw)
