---
title: "Add campaign"
method: POST
path: "/3.0/campaigns"
tags: ["campaigns"]
---

# Add campaign

`POST /3.0/campaigns`

## Request

- Base URL: `https://api.mailchimp.com`
- URL: `https://api.mailchimp.com/3.0/campaigns`
- Auth: one of:
  - HTTP bearer
  - OAuth 2
    - Authorization code: `https://login.mailchimp.com/oauth2/authorize`
    - Token URL: `https://login.mailchimp.com/oauth2/token`
- TypeScript: <https://skmtc.dev/mailchimp/apis/mailchimp-api/docs/3.0/campaigns/post.ts> (a function with typed inputs; its response is checked against the schema)

Create a new Mailchimp campaign.

## Request body

- object: A summary of an individual campaign's settings and content.
  - `content_type` 'template' | 'multichannel': How the campaign's content is put together. The old drag and drop editor uses 'template' while the new editor uses 'multichannel'. Defaults to template.
  - `recipients` object: List settings for the campaign.
    - `list_id` string, required: The unique list id.
    - `segment_opts` object: An object representing all segmentation options. This object should contain a `saved_segment_id` to use an existing segment, or you can create a new segment by including both `match` and `conditions` options.
      - `conditions` union[]: Segment match conditions. There are multiple possible types, see the [condition types documentation](https://mailchimp.com/developer/marketing/docs/alternative-schemas/#segment-condition-schemas).
        - union
          - object: Segment by interaction with a specific campaign.
            - `condition_type` 'Aim'
            - `field` 'aim': Segment by interaction with a specific campaign.
            - `op` 'open' | 'click' | 'sent' | 'noopen' | 'noclick' | 'nosent': The status of the member with regard to their campaign interaction. One of the following: opened, clicked, was sent, didn't open, didn't click, or was not sent.
            - `value` string: Either the web id value for a specific campaign or 'any' to account for subscribers who have/have not interacted with any campaigns.
          - object: Segment by interaction with an Automation workflow.
            - `condition_type` 'Automation'
            - `field` 'automation', required: Segment by interaction with an Automation workflow.
            - `op` 'started' | 'completed' | 'not_started' | 'not_completed', required: The status of the member with regard to the automation workflow. One of the following: has started the workflow, has completed the workflow, has not started the workflow, or has not completed the workflow.
            - `value` string, required: The web id for the automation workflow to segment against.
          - object: Segment by poll activity.
            - `condition_type` 'CampaignPoll'
            - `field` 'poll', required: Segment by poll activity.
            - `op` 'member' | 'notmember', required: Members have/have not interacted with a specific poll in a Mailchimp email.
            - `value` number, required: The id for the poll.
          - object: Segment by interaction with a campaign via Conversations.
            - `condition_type` 'Conversation'
            - `field` 'conversation', required: Segment by interaction with a campaign via Conversations.
            - `op` 'member' | 'notmember', required: The status of a member's interaction with a conversation. One of the following: has replied or has not replied.
            - `value` string, required: The web id value for a specific campaign or 'any' to account for subscribers who have/have not interacted with any campaigns.
          - object: Segment by a specific date field.
            - `condition_type` 'Date'
            - `extra` string: When segmenting on 'date' or 'campaign', the date for the segment formatted as YYYY-MM-DD or the web id for the campaign.
            - `field` 'timestamp_opt' | 'info_changed' | 'ecomm_date', required: The type of date field to segment on: The opt-in time for a signup, the date the subscriber was last updated, or the date of their last ecomm purchase.
            - `op` 'greater' | 'less' | 'is' | 'not' | 'blank' | 'blank_not' | 'within' | 'notwithin', required: When the event took place: Before, after, is a specific date, is not a specific date, is blank, or is not blank.
            - `value` string, required: What type of data to segment on: a specific date, a specific campaign, or the last campaign sent.
          - object: Segment by use of a particular email client.
            - `condition_type` 'EmailClient'
            - `field` 'email_client', required: Segment by use of a particular email client.
            - `op` 'client_is' | 'client_not', required: The operation to determine whether we select clients that match the value, or clients that do not match the value.
            - `value` string, required: The name of the email client.
          - object: Segment by language.
            - `condition_type` 'Language'
            - `field` 'language', required: Segmenting based off of a subscriber's language.
            - `op` 'is' | 'not', required: Whether the member's language is or is not set to a specific language.
            - `value` string, required: A two-letter language identifier.
          - object: Segment by member rating.
            - `condition_type` 'MemberRating'
            - `field` 'rating', required: Segment by member rating.
            - `op` 'is' | 'not' | 'greater' | 'less', required: Members who have have a rating that is/not exactly a given number or members who have a rating greater/less than a given number.
            - `value` union, required
              - …
          - object: Segment by signup source.
            - `condition_type` 'SignupSource', required
            - `field` 'source', required
            - `op` 'source_is' | 'source_not', required: Whether the member's signup source was/was not a particular value.
            - `value` string: The signup source.
          - object: Segment by interaction with a SurveyMonkey survey.
            - `condition_type` 'SurveyMonkey'
            - `field` 'survey_monkey', required: Segment by interaction with a SurveyMonkey survey.
            - `op` 'started' | 'completed' | 'not_started' | 'not_completed', required: The status of the member with regard to the survey.One of the following: has started the survey, has completed the survey, has not started the survey, or has not completed the survey.
            - `value` string, required: The unique ID of the survey monkey survey.
          - object: Segment by VIP status.
            - `condition_type` 'VIP'
            - `field` 'gmonkey', required: Segment by VIP status.
            - `op` 'member' | 'notmember', required: Whether the member is or is not marked as VIP.
          - object: Segment by an interest group merge field.
            - `condition_type` 'Interests'
            - `field` string: Segmenting based on interest group information. This should start with 'interests-' followed by the grouping id. Ex. 'interests-123'.
            - `op` 'interestcontains' | 'interestcontainsall' | 'interestnotcontains': Whether the member is a part of one, all, or none of the groups.
            - `value` string[]: An array containing strings, each representing a group id.
          - object: Segment by purchases in specific items or categories.
            - `condition_type` 'EcommCategory'
            - `field` 'ecomm_cat' | 'ecomm_prod': Segment by purchases in specific items or categories.
            - `op` 'is' | 'not' | 'contains' | 'notcontain' | 'starts' | 'ends': A member who has purchased from a category/specific item that is/is not a specific name, where the category/item name contains/doesn't contain a specific phrase or string, or a category/item name that starts/ends with a string.
            - `value` string: The ecommerce category/item information.
          - object: Segment by average spent total, number of orders, total number of products purchased, or average number of products per order.
            - `condition_type` 'EcommNumber'
            - `field` 'ecomm_spent_avg' | 'ecomm_orders' | 'ecomm_prod_all' | 'ecomm_avg_ord', required: Segment by average spent total, number of orders, total number of products purchased, or average number of products per order.
            - `op` 'is' | 'not' | 'greater' | 'less', required: Members who have spent exactly, have not spent exactly, spent more, or spent less than the segment value.
            - `value` union, required
              - …
          - object: Segment by whether someone has purchased anything.
            - `condition_type` 'EcommPurchased'
            - `field` 'ecomm_purchased': Segment by whether someone has purchased anything.
            - `op` 'member' | 'notmember': Members who have have ('member') or have not ('notmember') purchased.
          - object: Segment by amount spent on a single order or across all orders.
            - `condition_type` 'EcommSpent'
            - `field` 'ecomm_spent_one' | 'ecomm_spent_all': Segment by amount spent on a single order or across all orders.
            - `op` 'greater' | 'less': Members who have spent 'more' or 'less' than then specified value.
            - `value` union
              - …
          - object: Segment by purchases from a specific store.
            - `condition_type` 'EcommStore'
            - `field` 'ecomm_store': Segment by purchases from a specific store.
            - `op` 'is' | 'not': Members who have or have not purchased from a specific store.
            - `value` string: The store id to segment against.
          - object: Segment by Goal activity.
            - `condition_type` 'GoalActivity'
            - `field` 'goal', required: Segment by Goal activity.
            - `op` 'is' | 'goal_not' | 'contains' | 'goal_notcontain' | 'starts' | 'ends', required: Whether the website URL is/not exactly, contains/doesn't contain, starts with/ends with a string.
            - `value` string, required: The URL to check Goal activity against.
          - object: Segment by most recent interaction with a website.
            - `condition_type` 'GoalTimestamp'
            - `field` 'goal_last_visited', required: Segment by most recent interaction with a website.
            - `op` 'greater' | 'less' | 'is', required: Whether the website activity happened after, before, or at a given timestamp.
            - `value` string, required: The date to check Goal activity against.
          - object: Segment by similar subscribers.
            - `condition_type` 'FuzzySegment'
            - `field` 'fuzzy_segment', required: Segment by similar subscribers.
            - `op` 'fuzzy_is' | 'fuzzy_not', required: Members who are/are not apart of a 'similar subscribers' segment.
            - `value` union, required
              - …
          - object: Segment by a given static segment.
            - `condition_type` 'StaticSegment'
            - `field` 'static_segment', required: Segment by a given static segment.
            - `op` 'static_is' | 'static_not', required: Members who are/are not apart of a static segment.
            - `value` union, required
              - …
          - object: Segment by a specific country or US state.
            - `condition_type` 'IPGeoCountryState'
            - `field` 'ipgeo', required: Segmenting subscribers who are within a specific location.
            - `op` 'ipgeocountry' | 'ipgeonotcountry' | 'ipgeostate' | 'ipgeonotstate', required: Segment members who are within a specific country or US state.
            - `value` string, required: The two-letter country code or US state abbreviation.
          - object: Segment by a specific geographic region.
            - `addr` string, required: The address of the target location.
            - `condition_type` 'IPGeoIn'
            - `field` 'ipgeo', required: Segmenting subscribers who are within a specific location.
            - `lat` string, required: The latitude of the target location.
            - `lng` string, required: The longitude of the target location.
            - `op` 'ipgeoin' | 'ipgeonotin', required: Segment members who are within a specific geographic region.
            - `value` integer, required: The radius of the target location.
          - object: Segment by a specific US ZIP code.
            - `condition_type` 'IPGeoInZip'
            - `extra` integer, required: The zip code to segment against.
            - `field` 'ipgeo', required: Segmenting subscribers who are within a specific location.
            - `op` 'ipgeoinzip', required: Segment members who are within a specific US zip code.
            - `value` integer, required: The radius of the target location.
          - object: Segment members whose location information is unknown.
            - `condition_type` 'IPGeoUnknown'
            - `field` 'ipgeo', required: Segmenting subscribers who are within a specific location.
            - `op` 'ipgeounknown', required: Segment members for which location information is unknown.
          - object: Segment by a specific US ZIP code.
            - `condition_type` 'IPGeoZip'
            - `field` 'ipgeo', required: Segmenting subscribers who are within a specific location.
            - `op` 'ipgeoiszip' | 'ipgeonotzip', required: Segment members who are/are not within a specific US zip code.
            - `value` integer, required: The 5-digit zip code.
          - object: Segment by age ranges in Social Profiles data.
            - `condition_type` 'SocialAge'
            - `field` 'social_age', required: Segment by age ranges in Social Profiles data.
            - `op` 'is' | 'not', required: Members who are/not the exact criteria listed.
            - `value` '18-24' | '25-34' | '35-54' | '55+', required: The age range to segment.
          - object: Segment by listed gender in Social Profiles data.
            - `condition_type` 'SocialGender'
            - `field` 'social_gender', required: Segment by listed gender in Social Profiles data.
            - `op` 'is' | 'not', required: Members who are/not the exact criteria listed.
            - `value` 'male' | 'female', required: The Social Profiles gender to segment.
          - object: Segment by influence rating in Social Profiles data.
            - `condition_type` 'SocialInfluence'
            - `field` 'social_influence', required: Segment by influence rating in Social Profiles data.
            - `op` 'is' | 'not' | 'greater' | 'less', required: Members who have a rating that is/not or greater/less than the rating provided.
            - `value` number, required: The Social Profiles influence rating to segment.
          - object: Segment by social network in Social Profiles data.
            - `condition_type` 'SocialNetworkMember'
            - `field` 'social_network', required: Segment by social network in Social Profiles data.
            - `op` 'member' | 'notmember', required: Members who are/not on a given social network.
            - `value` 'twitter' | 'facebook' | 'linkedin' | 'flickr' | 'foursquare' | 'lastfm' | 'myspace' | 'quora' | 'vimeo' | 'yelp' | 'youtube', required: The social network to segment against.
          - object: Segment by social network in Social Profiles data.
            - `condition_type` 'SocialNetworkFollow'
            - `field` 'social_network', required: Segment by social network in Social Profiles data.
            - `op` 'follow' | 'notfollow', required: Members who are/not following a linked account on a given social network.
            - `value` 'twitter_follow', required: The social network to segment against.
          - object: Segment by an address-type merge field.
            - `condition_type` 'AddressMerge'
            - `field` string, required: An address-type merge field to segment.
            - `op` 'contains' | 'notcontain' | 'blank' | 'blank_not', required: Whether the member's address merge field contains/does not contain a value or is/is not blank.
            - `value` string: The value to segment a text merge field with.
          - object: Segment by an address-type merge field within a given distance.
            - `condition_type` 'ZipMerge'
            - `extra` string, required: The city or the zip being used to segment against.
            - `field` string, required: An address or zip-type merge field to segment.
            - `op` 'geoin', required: Whether the member's address merge field is within a given distance from a city or zip.
            - `value` string, required: The distance from the city/zip.
          - object: Segment by a contact's birthday.
            - `condition_type` 'BirthdayMerge'
            - `field` string, required: A date merge field to segment.
            - `op` 'is' | 'not' | 'blank' | 'blank_not', required: Whether the member's birthday merge information is/is not a certain date or is/is not blank.
            - `value` string: A date to segment against (mm/dd).
          - object: Segment by a given date merge field.
            - `condition_type` 'DateMerge'
            - `field` string, required: A date merge field to segment.
            - `op` 'is' | 'not' | 'less' | 'blank' | 'blank_not' | 'greater', required: Whether the member's merge information is/is not, is greater/less than a value or is/is not blank.
            - `value` string: A date to segment against.
          - object: An individual segment condition
            - `condition_type` 'SelectMerge'
            - `field` string, required: A merge field to segment.
            - `op` 'is' | 'not' | 'blank' | 'blank_not' | 'notcontain' | 'contains', required: Whether the member's merge information is/is not a value or is/is not blank.
            - `value` string: The value to segment a text merge field with.
          - object: Segment by a given text or number merge field.
            - `condition_type` 'TextMerge'
            - `field` string, required: A text or number merge field to segment.
            - `op` 'is' | 'not' | 'contains' | 'notcontain' | 'starts' | 'ends' | 'greater' | 'less' | 'blank' | 'blank_not', required: Whether the member's merge information is/is not, contains/does not contain, starts/ends with, or is greater/less than a value
            - `value` string: The value to segment a text or number merge field with.
          - object: Segment by email address.
            - `condition_type` 'EmailAddress'
            - `field` 'merge0' | 'EMAIL', required: Segmenting based off of a subscriber's email address.
            - `op` 'is' | 'not' | 'contains' | 'notcontain' | 'starts' | 'ends' | 'greater' | 'less', required: Whether the email address is/not exactly, contains/doesn't contain, starts/ends with a string.
            - `value` string: The value to compare the email against.
          - object: Segment by predicted gender.
            - `condition_type` 'PredictedGender'
            - `field` 'predicted_gender', required: Segment by predicted gender.
            - `op` 'is' | 'not', required: Members who are/not the exact criteria listed.
            - `value` 'male' | 'female', required: The predicted gender to segment.
          - object: Segment by predicted age.
            - `condition_type` 'PredictedAge'
            - `field` 'predicted_age_range', required: Segment by predicted age.
            - `op` 'is', required: Members who are/not the exact criteria listed.
            - `value` '18-24' | '25-34' | '35-44' | '45-54' | '55-64' | '65+', required: The predicted age to segment.
          - object: Segment by when people subscribed.
            - `condition_type` 'NewSubscribers'
            - `field` 'timestamp_opt': Segment by when people subscribed.
            - `op` 'date_within': Whe the event took place, namely within a time frame.
            - `value` string: What type of data to segment on: a specific date, a specific campaign, or the last campaign sent.
      - `match` 'any' | 'all': Segment match type.
      - `saved_segment_id` integer: The id for an existing saved segment.
  - `rss_opts` object: [RSS](https://mailchimp.com/help/share-your-blog-posts-with-mailchimp/) options, specific to an RSS campaign.
    - `constrain_rss_img` boolean: Whether to add CSS to images in the RSS feed to constrain their width in campaigns.
    - `feed_url` string, uri, required: The URL for the RSS feed.
    - `frequency` 'daily' | 'weekly' | 'monthly', required: The frequency of the RSS Campaign.
    - `schedule` object: The schedule for sending the RSS Campaign.
      - `daily_send` object: The days of the week to send a daily RSS Campaign.
        - `friday` boolean: Sends the daily RSS Campaign on Fridays.
        - `monday` boolean: Sends the daily RSS Campaign on Mondays.
        - `saturday` boolean: Sends the daily RSS Campaign on Saturdays.
        - `sunday` boolean: Sends the daily RSS Campaign on Sundays.
        - `thursday` boolean: Sends the daily RSS Campaign on Thursdays.
        - `tuesday` boolean: Sends the daily RSS Campaign on Tuesdays.
        - `wednesday` boolean: Sends the daily RSS Campaign on Wednesdays.
      - `hour` integer: The hour to send the campaign in local time. Acceptable hours are 0-23. For example, '4' would be 4am in [your account's default time zone](https://mailchimp.com/help/set-account-details/).
      - `monthly_send_date` number: The day of the month to send a monthly RSS Campaign. Acceptable days are 0-31, where '0' is always the last day of a month. Months with fewer than the selected number of days will not have an RSS campaign sent out that day. For example, RSS Campaigns set to send on the 30th will not go out in February.
      - `weekly_send_day` 'sunday' | 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday': The day of the week to send a weekly RSS Campaign.
  - `settings` object: The settings for your campaign, including subject, from name, reply-to address, and more.
    - `authenticate` boolean: Whether Mailchimp [authenticated](https://mailchimp.com/help/about-email-authentication/) the campaign. Defaults to `true`.
    - `auto_fb_post` string[]: An array of [Facebook](https://mailchimp.com/help/connect-or-disconnect-the-facebook-integration/) page ids to auto-post to.
    - `auto_footer` boolean: Automatically append Mailchimp's [default footer](https://mailchimp.com/help/about-campaign-footers/) to the campaign.
    - `auto_tweet` boolean: Automatically tweet a link to the [campaign archive](https://mailchimp.com/help/about-email-campaign-archives-and-pages/) page when the campaign is sent.
    - `fb_comments` boolean: Allows Facebook comments on the campaign (also force-enables the Campaign Archive toolbar). Defaults to `true`.
    - `folder_id` string: If the campaign is listed in a folder, the id for that folder.
    - `from_name` string: The 'from' name on the campaign (not an email address).
    - `inline_css` boolean: Automatically inline the CSS included with the campaign content.
    - `preview_text` string: The preview text for the campaign.
    - `reply_to` string: The reply-to email address for the campaign. Note: while this field is not required for campaign creation, it is required for sending.
    - `subject_line` string: The subject line for the campaign.
    - `template_id` integer: The id of the template to use.
    - `title` string: The title of the campaign.
    - `to_name` string: The campaign's custom 'To' name. Typically the first name [audience field](https://mailchimp.com/help/getting-started-with-merge-tags/).
    - `use_conversation` boolean: Use Mailchimp Conversation feature to manage out-of-office replies.
  - `social_card` object: The preview for the campaign, rendered by social networks like Facebook and Twitter. [Learn more](https://mailchimp.com/help/enable-and-customize-social-cards/).
    - `description` string: A short summary of the campaign to display.
    - `image_url` string: The url for the header image for the card.
    - `title` string: The title for the card. Typically the subject line of the campaign.
  - `tracking` object: The tracking options for a campaign.
    - `capsule` object: Deprecated
      - `notes` boolean: Update contact notes for a campaign based on subscriber email addresses.
    - `clicktale` string: The custom slug for [ClickTale](https://mailchimp.com/help/additional-tracking-options-for-campaigns/) tracking (max of 50 bytes).
    - `ecomm360` boolean: Whether to enable e-commerce tracking.
    - `goal_tracking` boolean: Deprecated
    - `google_analytics` string: The custom slug for [Google Analytics](https://mailchimp.com/help/integrate-google-analytics-with-mailchimp/) tracking (max of 50 bytes).
    - `html_clicks` boolean: Whether to [track clicks](https://mailchimp.com/help/enable-and-view-click-tracking/) in the HTML version of the campaign. Defaults to `true`. Cannot be set to false for variate campaigns.
    - `opens` boolean: Whether to [track opens](https://mailchimp.com/help/about-open-tracking/). Defaults to `true`. Cannot be set to false for variate campaigns.
    - `salesforce` object: Deprecated
      - `campaign` boolean: Create a campaign in a connected Salesforce account.
      - `notes` boolean: Update contact notes for a campaign based on subscriber email addresses.
    - `text_clicks` boolean: Whether to [track clicks](https://mailchimp.com/help/enable-and-view-click-tracking/) in the plain-text version of the campaign. Defaults to `true`. Cannot be set to false for variate campaigns.
  - `type` 'regular' | 'plaintext' | 'absplit' | 'rss' | 'variate', required: There are four types of [campaigns](https://mailchimp.com/help/getting-started-with-campaigns/) you can create in Mailchimp. A/B Split campaigns have been deprecated and variate campaigns should be used instead.
  - `variate_settings` object: The settings specific to A/B test campaigns.
    - `from_names` string[]: The possible from names. The number of from_names provided must match the number of reply_to_addresses. If no from_names are provided, settings.from_name will be used.
    - `reply_to_addresses` string[]: The possible reply-to addresses. The number of reply_to_addresses provided must match the number of from_names. If no reply_to_addresses are provided, settings.reply_to will be used.
    - `send_times` union[]: The possible send times to test. The times provided should be in the format YYYY-MM-DD HH:MM:SS or ISO 8601 date-time format. If send_times are provided to test, the test_size will be set to 100% and winner_criteria will be ignored.
      - union
        - string, date-time
        - string
    - `subject_lines` string[]: The possible subject lines to test. If no subject lines are provided, settings.subject_line will be used.
    - `test_size` integer: The percentage of recipients to send the test combinations to, must be a value between 10 and 100.
    - `wait_time` integer: The number of minutes to wait before choosing the winning campaign. The value of wait_time must be greater than 0 and in whole hours, specified in minutes.
    - `winner_criteria` 'opens' | 'clicks' | 'manual' | 'total_revenue', required: The combination that performs the best. This may be determined automatically by click rate, open rate, or total revenue -- or you may choose manually based on the reporting data you find the most valuable. For Multivariate Campaigns testing send_time, winner_criteria is ignored. For Multivariate Campaigns with 'manual' as the winner_criteria, the winner must be chosen in the Mailchimp web application.

## Response `200`

- object: A summary of an individual campaign's settings and content.
  - `_links` object[]: A list of link types and descriptions for the API schema documents.
    - `href` string: This property contains a fully-qualified URL that can be called to retrieve the linked resource or perform the linked action.
    - `method` 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'HEAD': The HTTP method that should be used when accessing the URL defined in 'href'.
    - `rel` string: As with an HTML 'rel' attribute, this describes the type of link.
    - `schema` string: For HTTP methods that can receive bodies (POST and PUT), this is a URL representing the schema that the body should conform to.
    - `targetSchema` string: For GETs, this is a URL representing the schema that the response should conform to.
  - `ab_split_opts` object: [A/B Testing](https://mailchimp.com/help/about-ab-tests/) options for a campaign.
    - `from_name_a` string: For campaigns split on 'From Name', the name for Group A.
    - `from_name_b` string: For campaigns split on 'From Name', the name for Group B.
    - `pick_winner` 'opens' | 'clicks' | 'manual': How we should evaluate a winner. Based on 'opens', 'clicks', or 'manual'.
    - `reply_email_a` string: For campaigns split on 'From Name', the reply-to address for Group A.
    - `reply_email_b` string: For campaigns split on 'From Name', the reply-to address for Group B.
    - `send_time_a` string, date-time: The send time for Group A.
    - `send_time_b` string, date-time: The send time for Group B.
    - `send_time_winner` string: The send time for the winning version.
    - `split_size` integer: The size of the split groups. Campaigns split based on 'schedule' are forced to have a 50/50 split. Valid split integers are between 1-50.
    - `split_test` 'subject' | 'from_name' | 'schedule': The type of AB split to run.
    - `subject_a` string: For campaigns split on 'Subject Line', the subject line for Group A.
    - `subject_b` string: For campaigns split on 'Subject Line', the subject line for Group B.
    - `wait_time` integer: The amount of time to wait before picking a winner. This cannot be changed after a campaign is sent.
    - `wait_units` 'hours' | 'days': How unit of time for measuring the winner ('hours' or 'days'). This cannot be changed after a campaign is sent.
  - `archive_url` string: The link to the campaign's archive version.
  - `content_type` string: How the campaign's content is put together ('template', 'drag_and_drop', 'html', 'url').
  - `create_time` string, date-time: The date and time the campaign was created in ISO 8601 format.
  - `delivery_status` object: Updates on campaigns in the process of sending.
    - `can_cancel` boolean: Whether a campaign send can be canceled.
    - `emails_canceled` integer: The total number of emails canceled for this campaign.
    - `emails_sent` integer: The total number of emails confirmed sent for this campaign so far.
    - `enabled` boolean: Whether Campaign Delivery Status is enabled for this account and campaign.
    - `status` 'delivering' | 'delivered' | 'canceling' | 'canceled': The current state of a campaign delivery.
  - `emails_sent` integer: The total number of emails sent for this campaign.
  - `id` string: A string that uniquely identifies this campaign.
  - `long_archive_url` string: The original link to the campaign's archive version.
  - `needs_block_refresh` boolean: Determines if the campaign needs its blocks refreshed by opening the web-based campaign editor. Deprecated and will always return false.
  - `parent_campaign_id` string: If this campaign is the child of another campaign, this identifies the parent campaign. For Example, for RSS or Automation children.
  - `recipients` object: List settings for the campaign.
    - `list_id` string, required: The unique list id.
    - `list_name` string: The name of the list.
    - `recipient_count` integer: Count of the recipients on the associated list. Formatted as an integer.
    - `segment_opts` object: An object representing all segmentation options. This object should contain a `saved_segment_id` to use an existing segment, or you can create a new segment by including both `match` and `conditions` options.
      - `conditions` union[]: Segment match conditions. There are multiple possible types, see the [condition types documentation](https://mailchimp.com/developer/marketing/docs/alternative-schemas/#segment-condition-schemas).
        - union
          - object: Segment by interaction with a specific campaign.
            - `condition_type` 'Aim'
            - `field` 'aim': Segment by interaction with a specific campaign.
            - `op` 'open' | 'click' | 'sent' | 'noopen' | 'noclick' | 'nosent': The status of the member with regard to their campaign interaction. One of the following: opened, clicked, was sent, didn't open, didn't click, or was not sent.
            - `value` string: Either the web id value for a specific campaign or 'any' to account for subscribers who have/have not interacted with any campaigns.
          - object: Segment by interaction with an Automation workflow.
            - `condition_type` 'Automation'
            - `field` 'automation', required: Segment by interaction with an Automation workflow.
            - `op` 'started' | 'completed' | 'not_started' | 'not_completed', required: The status of the member with regard to the automation workflow. One of the following: has started the workflow, has completed the workflow, has not started the workflow, or has not completed the workflow.
            - `value` string, required: The web id for the automation workflow to segment against.
          - object: Segment by poll activity.
            - `condition_type` 'CampaignPoll'
            - `field` 'poll', required: Segment by poll activity.
            - `op` 'member' | 'notmember', required: Members have/have not interacted with a specific poll in a Mailchimp email.
            - `value` number, required: The id for the poll.
          - object: Segment by interaction with a campaign via Conversations.
            - `condition_type` 'Conversation'
            - `field` 'conversation', required: Segment by interaction with a campaign via Conversations.
            - `op` 'member' | 'notmember', required: The status of a member's interaction with a conversation. One of the following: has replied or has not replied.
            - `value` string, required: The web id value for a specific campaign or 'any' to account for subscribers who have/have not interacted with any campaigns.
          - object: Segment by a specific date field.
            - `condition_type` 'Date'
            - `extra` string: When segmenting on 'date' or 'campaign', the date for the segment formatted as YYYY-MM-DD or the web id for the campaign.
            - `field` 'timestamp_opt' | 'info_changed' | 'ecomm_date', required: The type of date field to segment on: The opt-in time for a signup, the date the subscriber was last updated, or the date of their last ecomm purchase.
            - `op` 'greater' | 'less' | 'is' | 'not' | 'blank' | 'blank_not' | 'within' | 'notwithin', required: When the event took place: Before, after, is a specific date, is not a specific date, is blank, or is not blank.
            - `value` string, required: What type of data to segment on: a specific date, a specific campaign, or the last campaign sent.
          - object: Segment by use of a particular email client.
            - `condition_type` 'EmailClient'
            - `field` 'email_client', required: Segment by use of a particular email client.
            - `op` 'client_is' | 'client_not', required: The operation to determine whether we select clients that match the value, or clients that do not match the value.
            - `value` string, required: The name of the email client.
          - object: Segment by language.
            - `condition_type` 'Language'
            - `field` 'language', required: Segmenting based off of a subscriber's language.
            - `op` 'is' | 'not', required: Whether the member's language is or is not set to a specific language.
            - `value` string, required: A two-letter language identifier.
          - object: Segment by member rating.
            - `condition_type` 'MemberRating'
            - `field` 'rating', required: Segment by member rating.
            - `op` 'is' | 'not' | 'greater' | 'less', required: Members who have have a rating that is/not exactly a given number or members who have a rating greater/less than a given number.
            - `value` union, required
              - …
          - object: Segment by signup source.
            - `condition_type` 'SignupSource', required
            - `field` 'source', required
            - `op` 'source_is' | 'source_not', required: Whether the member's signup source was/was not a particular value.
            - `value` string: The signup source.
          - object: Segment by interaction with a SurveyMonkey survey.
            - `condition_type` 'SurveyMonkey'
            - `field` 'survey_monkey', required: Segment by interaction with a SurveyMonkey survey.
            - `op` 'started' | 'completed' | 'not_started' | 'not_completed', required: The status of the member with regard to the survey.One of the following: has started the survey, has completed the survey, has not started the survey, or has not completed the survey.
            - `value` string, required: The unique ID of the survey monkey survey.
          - object: Segment by VIP status.
            - `condition_type` 'VIP'
            - `field` 'gmonkey', required: Segment by VIP status.
            - `op` 'member' | 'notmember', required: Whether the member is or is not marked as VIP.
          - object: Segment by an interest group merge field.
            - `condition_type` 'Interests'
            - `field` string: Segmenting based on interest group information. This should start with 'interests-' followed by the grouping id. Ex. 'interests-123'.
            - `op` 'interestcontains' | 'interestcontainsall' | 'interestnotcontains': Whether the member is a part of one, all, or none of the groups.
            - `value` string[]: An array containing strings, each representing a group id.
          - object: Segment by purchases in specific items or categories.
            - `condition_type` 'EcommCategory'
            - `field` 'ecomm_cat' | 'ecomm_prod': Segment by purchases in specific items or categories.
            - `op` 'is' | 'not' | 'contains' | 'notcontain' | 'starts' | 'ends': A member who has purchased from a category/specific item that is/is not a specific name, where the category/item name contains/doesn't contain a specific phrase or string, or a category/item name that starts/ends with a string.
            - `value` string: The ecommerce category/item information.
          - object: Segment by average spent total, number of orders, total number of products purchased, or average number of products per order.
            - `condition_type` 'EcommNumber'
            - `field` 'ecomm_spent_avg' | 'ecomm_orders' | 'ecomm_prod_all' | 'ecomm_avg_ord', required: Segment by average spent total, number of orders, total number of products purchased, or average number of products per order.
            - `op` 'is' | 'not' | 'greater' | 'less', required: Members who have spent exactly, have not spent exactly, spent more, or spent less than the segment value.
            - `value` union, required
              - …
          - object: Segment by whether someone has purchased anything.
            - `condition_type` 'EcommPurchased'
            - `field` 'ecomm_purchased': Segment by whether someone has purchased anything.
            - `op` 'member' | 'notmember': Members who have have ('member') or have not ('notmember') purchased.
          - object: Segment by amount spent on a single order or across all orders.
            - `condition_type` 'EcommSpent'
            - `field` 'ecomm_spent_one' | 'ecomm_spent_all': Segment by amount spent on a single order or across all orders.
            - `op` 'greater' | 'less': Members who have spent 'more' or 'less' than then specified value.
            - `value` union
              - …
          - object: Segment by purchases from a specific store.
            - `condition_type` 'EcommStore'
            - `field` 'ecomm_store': Segment by purchases from a specific store.
            - `op` 'is' | 'not': Members who have or have not purchased from a specific store.
            - `value` string: The store id to segment against.
          - object: Segment by Goal activity.
            - `condition_type` 'GoalActivity'
            - `field` 'goal', required: Segment by Goal activity.
            - `op` 'is' | 'goal_not' | 'contains' | 'goal_notcontain' | 'starts' | 'ends', required: Whether the website URL is/not exactly, contains/doesn't contain, starts with/ends with a string.
            - `value` string, required: The URL to check Goal activity against.
          - object: Segment by most recent interaction with a website.
            - `condition_type` 'GoalTimestamp'
            - `field` 'goal_last_visited', required: Segment by most recent interaction with a website.
            - `op` 'greater' | 'less' | 'is', required: Whether the website activity happened after, before, or at a given timestamp.
            - `value` string, required: The date to check Goal activity against.
          - object: Segment by similar subscribers.
            - `condition_type` 'FuzzySegment'
            - `field` 'fuzzy_segment', required: Segment by similar subscribers.
            - `op` 'fuzzy_is' | 'fuzzy_not', required: Members who are/are not apart of a 'similar subscribers' segment.
            - `value` union, required
              - …
          - object: Segment by a given static segment.
            - `condition_type` 'StaticSegment'
            - `field` 'static_segment', required: Segment by a given static segment.
            - `op` 'static_is' | 'static_not', required: Members who are/are not apart of a static segment.
            - `value` union, required
              - …
          - object: Segment by a specific country or US state.
            - `condition_type` 'IPGeoCountryState'
            - `field` 'ipgeo', required: Segmenting subscribers who are within a specific location.
            - `op` 'ipgeocountry' | 'ipgeonotcountry' | 'ipgeostate' | 'ipgeonotstate', required: Segment members who are within a specific country or US state.
            - `value` string, required: The two-letter country code or US state abbreviation.
          - object: Segment by a specific geographic region.
            - `addr` string, required: The address of the target location.
            - `condition_type` 'IPGeoIn'
            - `field` 'ipgeo', required: Segmenting subscribers who are within a specific location.
            - `lat` string, required: The latitude of the target location.
            - `lng` string, required: The longitude of the target location.
            - `op` 'ipgeoin' | 'ipgeonotin', required: Segment members who are within a specific geographic region.
            - `value` integer, required: The radius of the target location.
          - object: Segment by a specific US ZIP code.
            - `condition_type` 'IPGeoInZip'
            - `extra` integer, required: The zip code to segment against.
            - `field` 'ipgeo', required: Segmenting subscribers who are within a specific location.
            - `op` 'ipgeoinzip', required: Segment members who are within a specific US zip code.
            - `value` integer, required: The radius of the target location.
          - object: Segment members whose location information is unknown.
            - `condition_type` 'IPGeoUnknown'
            - `field` 'ipgeo', required: Segmenting subscribers who are within a specific location.
            - `op` 'ipgeounknown', required: Segment members for which location information is unknown.
          - object: Segment by a specific US ZIP code.
            - `condition_type` 'IPGeoZip'
            - `field` 'ipgeo', required: Segmenting subscribers who are within a specific location.
            - `op` 'ipgeoiszip' | 'ipgeonotzip', required: Segment members who are/are not within a specific US zip code.
            - `value` integer, required: The 5-digit zip code.
          - object: Segment by age ranges in Social Profiles data.
            - `condition_type` 'SocialAge'
            - `field` 'social_age', required: Segment by age ranges in Social Profiles data.
            - `op` 'is' | 'not', required: Members who are/not the exact criteria listed.
            - `value` '18-24' | '25-34' | '35-54' | '55+', required: The age range to segment.
          - object: Segment by listed gender in Social Profiles data.
            - `condition_type` 'SocialGender'
            - `field` 'social_gender', required: Segment by listed gender in Social Profiles data.
            - `op` 'is' | 'not', required: Members who are/not the exact criteria listed.
            - `value` 'male' | 'female', required: The Social Profiles gender to segment.
          - object: Segment by influence rating in Social Profiles data.
            - `condition_type` 'SocialInfluence'
            - `field` 'social_influence', required: Segment by influence rating in Social Profiles data.
            - `op` 'is' | 'not' | 'greater' | 'less', required: Members who have a rating that is/not or greater/less than the rating provided.
            - `value` number, required: The Social Profiles influence rating to segment.
          - object: Segment by social network in Social Profiles data.
            - `condition_type` 'SocialNetworkMember'
            - `field` 'social_network', required: Segment by social network in Social Profiles data.
            - `op` 'member' | 'notmember', required: Members who are/not on a given social network.
            - `value` 'twitter' | 'facebook' | 'linkedin' | 'flickr' | 'foursquare' | 'lastfm' | 'myspace' | 'quora' | 'vimeo' | 'yelp' | 'youtube', required: The social network to segment against.
          - object: Segment by social network in Social Profiles data.
            - `condition_type` 'SocialNetworkFollow'
            - `field` 'social_network', required: Segment by social network in Social Profiles data.
            - `op` 'follow' | 'notfollow', required: Members who are/not following a linked account on a given social network.
            - `value` 'twitter_follow', required: The social network to segment against.
          - object: Segment by an address-type merge field.
            - `condition_type` 'AddressMerge'
            - `field` string, required: An address-type merge field to segment.
            - `op` 'contains' | 'notcontain' | 'blank' | 'blank_not', required: Whether the member's address merge field contains/does not contain a value or is/is not blank.
            - `value` string: The value to segment a text merge field with.
          - object: Segment by an address-type merge field within a given distance.
            - `condition_type` 'ZipMerge'
            - `extra` string, required: The city or the zip being used to segment against.
            - `field` string, required: An address or zip-type merge field to segment.
            - `op` 'geoin', required: Whether the member's address merge field is within a given distance from a city or zip.
            - `value` string, required: The distance from the city/zip.
          - object: Segment by a contact's birthday.
            - `condition_type` 'BirthdayMerge'
            - `field` string, required: A date merge field to segment.
            - `op` 'is' | 'not' | 'blank' | 'blank_not', required: Whether the member's birthday merge information is/is not a certain date or is/is not blank.
            - `value` string: A date to segment against (mm/dd).
          - object: Segment by a given date merge field.
            - `condition_type` 'DateMerge'
            - `field` string, required: A date merge field to segment.
            - `op` 'is' | 'not' | 'less' | 'blank' | 'blank_not' | 'greater', required: Whether the member's merge information is/is not, is greater/less than a value or is/is not blank.
            - `value` string: A date to segment against.
          - object: An individual segment condition
            - `condition_type` 'SelectMerge'
            - `field` string, required: A merge field to segment.
            - `op` 'is' | 'not' | 'blank' | 'blank_not' | 'notcontain' | 'contains', required: Whether the member's merge information is/is not a value or is/is not blank.
            - `value` string: The value to segment a text merge field with.
          - object: Segment by a given text or number merge field.
            - `condition_type` 'TextMerge'
            - `field` string, required: A text or number merge field to segment.
            - `op` 'is' | 'not' | 'contains' | 'notcontain' | 'starts' | 'ends' | 'greater' | 'less' | 'blank' | 'blank_not', required: Whether the member's merge information is/is not, contains/does not contain, starts/ends with, or is greater/less than a value
            - `value` string: The value to segment a text or number merge field with.
          - object: Segment by email address.
            - `condition_type` 'EmailAddress'
            - `field` 'merge0' | 'EMAIL', required: Segmenting based off of a subscriber's email address.
            - `op` 'is' | 'not' | 'contains' | 'notcontain' | 'starts' | 'ends' | 'greater' | 'less', required: Whether the email address is/not exactly, contains/doesn't contain, starts/ends with a string.
            - `value` string: The value to compare the email against.
          - object: Segment by predicted gender.
            - `condition_type` 'PredictedGender'
            - `field` 'predicted_gender', required: Segment by predicted gender.
            - `op` 'is' | 'not', required: Members who are/not the exact criteria listed.
            - `value` 'male' | 'female', required: The predicted gender to segment.
          - object: Segment by predicted age.
            - `condition_type` 'PredictedAge'
            - `field` 'predicted_age_range', required: Segment by predicted age.
            - `op` 'is', required: Members who are/not the exact criteria listed.
            - `value` '18-24' | '25-34' | '35-44' | '45-54' | '55-64' | '65+', required: The predicted age to segment.
          - object: Segment by when people subscribed.
            - `condition_type` 'NewSubscribers'
            - `field` 'timestamp_opt': Segment by when people subscribed.
            - `op` 'date_within': Whe the event took place, namely within a time frame.
            - `value` string: What type of data to segment on: a specific date, a specific campaign, or the last campaign sent.
      - `match` 'any' | 'all': Segment match type.
      - `prebuilt_segment_id` string: The prebuilt segment id, if a prebuilt segment has been designated for this campaign.
      - `saved_segment_id` union: The id for an existing saved segment.
        - integer
        - string
    - `segment_text` string: A description of the [segment](https://mailchimp.com/help/save-and-manage-segments/) used for the campaign. Formatted as a string marked up with HTML.
  - `report_summary` object: For sent campaigns, a summary of opens and clicks.
    - `click_rate` number: The number of unique clicks divided by the total number of successful deliveries.
    - `clicks` integer: The total number of clicks for an campaign.
    - `ecommerce` object: E-Commerce stats for a campaign.
      - `total_orders` integer: The total orders for a campaign.
      - `total_revenue` number: The total revenue for a campaign. Calculated as the sum of all order totals minus shipping and tax totals.
      - `total_spent` number: The total spent for a campaign. Calculated as the sum of all order totals with no deductions.
    - `open_rate` number: The number of unique opens divided by the total number of successful deliveries.
    - `opens` integer: The total number of opens for a campaign.
    - `subscriber_clicks` integer: The number of unique clicks.
    - `unique_opens` integer: The number of unique opens.
  - `resendable` boolean: Determines if the campaign qualifies to be resent to non-openers.
  - `rss_opts` object: [RSS](https://mailchimp.com/help/share-your-blog-posts-with-mailchimp/) options for a campaign.
    - `constrain_rss_img` boolean: Whether to add CSS to images in the RSS feed to constrain their width in campaigns.
    - `feed_url` string, uri, required: The URL for the RSS feed.
    - `frequency` 'daily' | 'weekly' | 'monthly', required: The frequency of the RSS Campaign.
    - `last_sent` string, date-time: The date the campaign was last sent.
    - `schedule` object: The schedule for sending the RSS Campaign.
      - `daily_send` object: The days of the week to send a daily RSS Campaign.
        - `friday` boolean: Sends the daily RSS Campaign on Fridays.
        - `monday` boolean: Sends the daily RSS Campaign on Mondays.
        - `saturday` boolean: Sends the daily RSS Campaign on Saturdays.
        - `sunday` boolean: Sends the daily RSS Campaign on Sundays.
        - `thursday` boolean: Sends the daily RSS Campaign on Thursdays.
        - `tuesday` boolean: Sends the daily RSS Campaign on Tuesdays.
        - `wednesday` boolean: Sends the daily RSS Campaign on Wednesdays.
      - `hour` integer: The hour to send the campaign in local time. Acceptable hours are 0-23. For example, '4' would be 4am in [your account's default time zone](https://mailchimp.com/help/set-account-details/).
      - `monthly_send_date` number: The day of the month to send a monthly RSS Campaign. Acceptable days are 0-31, where '0' is always the last day of a month. Months with fewer than the selected number of days will not have an RSS campaign sent out that day. For example, RSS Campaigns set to send on the 30th will not go out in February.
      - `weekly_send_day` 'sunday' | 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday': The day of the week to send a weekly RSS Campaign.
  - `send_time` string, date-time: The date and time a campaign was sent in ISO 8601 format.
  - `settings` object: The settings for your campaign, including subject, from name, reply-to address, and more.
    - `authenticate` boolean: Whether Mailchimp [authenticated](https://mailchimp.com/help/about-email-authentication/) the campaign. Defaults to `true`.
    - `auto_fb_post` string[]: An array of [Facebook](https://mailchimp.com/help/connect-or-disconnect-the-facebook-integration/) page ids to auto-post to.
    - `auto_footer` boolean: Automatically append Mailchimp's [default footer](https://mailchimp.com/help/about-campaign-footers/) to the campaign.
    - `auto_tweet` boolean: Automatically tweet a link to the [campaign archive](https://mailchimp.com/help/about-email-campaign-archives-and-pages/) page when the campaign is sent.
    - `drag_and_drop` boolean: Whether the campaign uses the drag-and-drop editor.
    - `fb_comments` boolean: Allows Facebook comments on the campaign (also force-enables the Campaign Archive toolbar). Defaults to `true`.
    - `folder_id` string: If the campaign is listed in a folder, the id for that folder.
    - `from_name` string: The 'from' name on the campaign (not an email address).
    - `inline_css` boolean: Automatically inline the CSS included with the campaign content.
    - `preview_text` string: The preview text for the campaign.
    - `reply_to` string: The reply-to email address for the campaign.
    - `subject_line` string: The subject line for the campaign.
    - `template_id` integer: The id for the template used in this campaign.
    - `timewarp` boolean: Send this campaign using [Timewarp](https://mailchimp.com/help/use-timewarp/).
    - `title` string: The title of the campaign.
    - `to_name` string: The campaign's custom 'To' name. Typically the first name [audience field](https://mailchimp.com/help/getting-started-with-merge-tags/).
    - `use_conversation` boolean: Use Mailchimp Conversation feature to manage replies.
  - `social_card` object: The preview for the campaign, rendered by social networks like Facebook and Twitter. [Learn more](https://mailchimp.com/help/enable-and-customize-social-cards/).
    - `description` string: A short summary of the campaign to display.
    - `image_url` string: The url for the header image for the card.
    - `title` string: The title for the card. Typically the subject line of the campaign.
  - `status` 'save' | 'paused' | 'schedule' | 'sending' | 'sent' | 'canceled' | 'canceling' | 'archived': The current status of the campaign.
  - `tracking` object: The tracking options for a campaign.
    - `capsule` object: Deprecated
      - `notes` boolean: Update contact notes for a campaign based on subscriber email addresses.
    - `clicktale` string: The custom slug for [ClickTale](https://mailchimp.com/help/additional-tracking-options-for-campaigns/) tracking (max of 50 bytes).
    - `ecomm360` boolean: Whether to enable e-commerce tracking.
    - `goal_tracking` boolean: Deprecated
    - `google_analytics` string: The custom slug for [Google Analytics](https://mailchimp.com/help/integrate-google-analytics-with-mailchimp/) tracking (max of 50 bytes).
    - `html_clicks` boolean: Whether to [track clicks](https://mailchimp.com/help/enable-and-view-click-tracking/) in the HTML version of the campaign. Defaults to `true`. Cannot be set to false for variate campaigns.
    - `opens` boolean: Whether to [track opens](https://mailchimp.com/help/about-open-tracking/). Defaults to `true`. Cannot be set to false for variate campaigns.
    - `salesforce` object: Deprecated
      - `campaign` boolean: Create a campaign in a connected Salesforce account.
      - `notes` boolean: Update contact notes for a campaign based on subscriber email addresses.
    - `text_clicks` boolean: Whether to [track clicks](https://mailchimp.com/help/enable-and-view-click-tracking/) in the plain-text version of the campaign. Defaults to `true`. Cannot be set to false for variate campaigns.
  - `type` 'regular' | 'plaintext' | 'absplit' | 'rss' | 'variate', required: There are four types of [campaigns](https://mailchimp.com/help/getting-started-with-campaigns/) you can create in Mailchimp. A/B Split campaigns have been deprecated and variate campaigns should be used instead.
  - `variate_settings` object: The settings specific to A/B test campaigns.
    - `combinations` object[]: Combinations of possible variables used to build emails.
      - `content_description` integer: The index of `variate_settings.contents` used.
      - `from_name` integer: The index of `variate_settings.from_names` used.
      - `id` string: Unique ID for the combination.
      - `recipients` integer: The number of recipients for this combination.
      - `reply_to` integer: The index of `variate_settings.reply_to_addresses` used.
      - `send_time` integer: The index of `variate_settings.send_times` used.
      - `subject_line` integer: The index of `variate_settings.subject_lines` used.
    - `contents` string[]: Descriptions of possible email contents. To set campaign contents, make a PUT request to /campaigns/{campaign_id}/content with the field 'variate_contents'.
    - `from_names` string[]: The possible from names. The number of from_names provided must match the number of reply_to_addresses. If no from_names are provided, settings.from_name will be used.
    - `reply_to_addresses` string[]: The possible reply-to addresses. The number of reply_to_addresses provided must match the number of from_names. If no reply_to_addresses are provided, settings.reply_to will be used.
    - `send_times` string[]: The possible send times to test. The times provided should be in the format YYYY-MM-DD HH:MM:SS. If send_times are provided to test, the test_size will be set to 100% and winner_criteria will be ignored.
    - `subject_lines` string[]: The possible subject lines to test. If no subject lines are provided, settings.subject_line will be used.
    - `test_size` integer: The percentage of recipients to send the test combinations to, must be a value between 10 and 100.
    - `wait_time` integer: The number of minutes to wait before choosing the winning campaign. The value of wait_time must be greater than 0 and in whole hours, specified in minutes.
    - `winner_criteria` 'opens' | 'clicks' | 'manual' | 'total_revenue', required: The combination that performs the best. This may be determined automatically by click rate, open rate, or total revenue -- or you may choose manually based on the reporting data you find the most valuable. For Multivariate Campaigns testing send_time, winner_criteria is ignored. For Multivariate Campaigns with 'manual' as the winner_criteria, the winner must be chosen in the Mailchimp web application.
    - `winning_campaign_id` string: ID of the campaign that was sent to the remaining recipients based on the winning combination.
    - `winning_combination_id` string: ID for the winning combination.
  - `web_id` integer: The ID used in the Mailchimp web application. View this campaign in your Mailchimp account at `https://{dc}.admin.mailchimp.com/campaigns/show/?id={web_id}`.

## Other responses

- `default`: An error generated by the Mailchimp API.

---

[API](https://skmtc.dev/mailchimp/apis/mailchimp-api.md) - [All operations](https://skmtc.dev/mailchimp/apis/mailchimp-api/llms.txt) - [OpenAPI document](https://skmtc.dev/mailchimp/apis/mailchimp-api/revisions/53bf4b156855?raw)
