# Create a Strategy

Create a strategy. 
If your use case requires more than 100,000 IPs or postal codes, please contact your MediaMath representative to discuss custom solutions or alternative approaches.

Endpoint: POST /strategies
Version: 3.0.1807
Security: Auth0

## Query parameters:

  - `extended` (boolean)
    Get extended properties in response

## Request fields (application/json):

  - `campaign_id` (integer, required)
    Example: 45

  - `goals` (object, required)

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

  - `goals.goal_value` (number)

  - `goals.min_bid` (number)

  - `goals.max_bid` (number)

  - `goals.roi_target` (number)

  - `goals.bid_min_devices` (integer)
    Example: 1

  - `goals.bid_aggressiveness` (integer)

  - `goals.bid_price_is_media_only` (boolean)

  - `goals.max_bid_wm` (number)

  - `goals.use_bid_shading` (boolean)

  - `goals.flat_rate_cpm` (number)
    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.

  - `inventory` (object)

  - `inventory.supply_type` (string)
    Enum: "RTB", "RMX_API", "T1_RMX", "MKT", "BATCH"

  - `inventory.run_on_all_pmp` (boolean, required)

  - `inventory.run_on_all_exchanges` (boolean, required)
    default value is false if campaign is programmatic guarantee and is true otherwise

  - `inventory.site_restriction_transparent_urls` (boolean)

  - `inventory.domain_restrictions` (object)

  - `inventory.domain_restrictions.include` (array)

  - `inventory.domain_restrictions.include.domain` (string, required)
    Example: www.mediamath.com

  - `inventory.domain_restrictions.include.target_type` (string, required)
    Enum: "DOMAIN", "APP"

  - `inventory.domain_restrictions.exclude` (array)

  - `inventory.site_lists` (array)

  - `inventory.site_lists.site_list_id` (integer, required)
    Example: 32

  - `inventory.site_lists.assigned` (boolean, required)

  - `inventory.deals` (array)

  - `inventory.deals.deal_id` (integer, required)
    Example: 8

  - `inventory.deal_groups` (array)

  - `inventory.deal_groups.deal_group_id` (integer, required)
    Example: 9

  - `inventory.supply_sources` (array)

  - `inventory.supply_sources.supply_source_id` (integer, required)
    Example: 54

  - `pacing` (object, required)

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

  - `pacing.impression_pacing_amount` (integer)
    Example: 23

  - `pacing.impression_pacing_interval` (string)
    Enum: "hour", "day"

  - `pacing.pacing_type` (string)
    Enum: "even", "asap"

  - `pacing.pacing_amount` (number, required)

  - `pacing.pacing_interval` (string)
    Enum: "hour", "day"

  - `pacing.pacing_optimization_type` (string)
    Enum: "monetary", "impression"

  - `pacing.pacing_optimization_amount` (number)

  - `pacing.use_dba_strategy_pacing` (string)
    Enum: "always", "never", "custom"

  - `pacing.use_dba_strategy_pacing_after_date` (string)

## Response 201 fields (application/json):

  - `data` (object)

  - `data.inherited_mfa_avoidance` (string)
    available if mfa_avoidance = INHERIT
    Enum: "INHERIT", "ALLOW_ALL", "EXCLUDE_MFA"

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

  - `data.campaign_name` (string)

  - `data.campaign_start_date` (string)

  - `data.campaign_end_date` (string)

  - `data.campaign_zone_name` (string)

  - `data.campaign_service_type` (string)

  - `data.campaign_goal_type` (string)

  - `data.campaign_goal_value` (number)

  - `data.campaign_merit_pixel_id` (integer)

  - `data.viewability` (object)

  - `data.viewability.sample_rate` (number)

  - `data.viewability.type` (string)
    Example: AUTO_TAG

  - `data.viewability.vendor_id` (integer)

  - `meta` (object)

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

## Response 400 fields (application/json):

  - `errors` (array, required)

  - `errors.code` (string)

  - `errors.sub_code` (string)
    Optional identifier that refines the generic `code` category (e.g. `html5-noscript-tag`). Present on HTML5 upload/preview validation errors; absent otherwise.

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

  - `errors.message` (string)

  - `meta` (object, required)

  - `meta.status` (string, required)

## Response 401 fields (application/json):

  - `errors` (array, required)

  - `errors.code` (string)

  - `errors.sub_code` (string)
    Optional identifier that refines the generic `code` category (e.g. `html5-noscript-tag`). Present on HTML5 upload/preview validation errors; absent otherwise.

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

  - `errors.message` (string)

  - `meta` (object, required)

  - `meta.status` (string, required)

## Response 403 fields (application/json):

  - `errors` (array, required)

  - `errors.code` (string)

  - `errors.sub_code` (string)
    Optional identifier that refines the generic `code` category (e.g. `html5-noscript-tag`). Present on HTML5 upload/preview validation errors; absent otherwise.

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

  - `errors.message` (string)

  - `meta` (object, required)

  - `meta.status` (string, required)

