Mailchimp Campaigns API

The Campaigns API from Mailchimp — 18 operation(s) for campaigns.

Operations 22

GET /campaigns List campaigns #
POST /campaigns Add campaign #
GET /campaigns/{campaign_id} Get campaign info #
PATCH /campaigns/{campaign_id} Update campaign settings #
DELETE /campaigns/{campaign_id} Delete campaign #
POST /campaigns/{campaign_id}/actions/cancel-send Cancel campaign #
POST /campaigns/{campaign_id}/actions/replicate Replicate campaign #
POST /campaigns/{campaign_id}/actions/send Send campaign #
POST /campaigns/{campaign_id}/actions/schedule Schedule campaign #
POST /campaigns/{campaign_id}/actions/unschedule Unschedule campaign #
POST /campaigns/{campaign_id}/actions/test Send test email #
POST /campaigns/{campaign_id}/actions/pause Pause rss campaign #
POST /campaigns/{campaign_id}/actions/resume Resume rss campaign #
POST /campaigns/{campaign_id}/actions/create-resend Resend campaign #
GET /campaigns/{campaign_id}/content Get campaign content #
PUT /campaigns/{campaign_id}/content Set campaign content #
GET /campaigns/{campaign_id}/feedback List campaign feedback #
POST /campaigns/{campaign_id}/feedback Add campaign feedback #
GET /campaigns/{campaign_id}/feedback/{feedback_id} Get campaign feedback message #
PATCH /campaigns/{campaign_id}/feedback/{feedback_id} Update campaign feedback message #
DELETE /campaigns/{campaign_id}/feedback/{feedback_id} Delete campaign feedback message #
GET /campaigns/{campaign_id}/send-checklist Get campaign send checklist #

Documentation

Specifications

Schemas & Data

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/mailchimp-campaigns-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

mailchimp-campaigns-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 3.0.91
  title: Mailchimp Marketing Campaigns API
  contact:
    name: Mailchimp API Support
    email: apihelp@mailchimp.com
  x-permalink: https://github.com/mailchimp/mailchimp-client-lib-codegen/blob/main/spec/marketing.json
servers:
- url: https://server.api.mailchimp.com/3.0
security:
- basicAuth: []
tags:
- name: campaigns
paths:
  /campaigns:
    get:
      summary: List campaigns
      description: Get all campaigns in an account.
      operationId: getCampaigns
      parameters:
      - name: fields
        x-title: Fields
        in: query
        description: A comma-separated list of fields to return. Reference parameters of sub-objects with dot notation.
        required: false
        style: form
        explode: false
        schema:
          type: array
          items:
            type: string
      - name: exclude_fields
        x-title: Exclude Fields
        in: query
        description: A comma-separated list of fields to exclude. Reference parameters of sub-objects with dot notation.
        required: false
        style: form
        explode: false
        schema:
          type: array
          items:
            type: string
      - name: count
        x-title: Count
        in: query
        description: The number of records to return. Default value is 10. Maximum value is 1000
        required: false
        schema:
          type: integer
          default: 10
          maximum: 1000
      - name: offset
        x-title: Offset
        in: query
        description: Used for [pagination](https://mailchimp.com/developer/marketing/docs/methods-parameters/#pagination), this is the number of records from a collection to skip. Default value is 0.
        required: false
        schema:
          type: integer
          default: 0
      - name: type
        x-title: Campaign Type
        in: query
        description: The campaign type.
        required: false
        schema:
          type: string
          enum:
          - regular
          - plaintext
          - absplit
          - rss
          - variate
      - name: status
        x-title: Status
        in: query
        description: The status of the campaign.
        required: false
        schema:
          type: string
          enum:
          - save
          - paused
          - schedule
          - sending
          - sent
      - name: before_send_time
        x-title: Before Send Time
        in: query
        description: 'Restrict the response to campaigns sent before the set time. Uses ISO 8601 time format: 2015-10-21T15:41:36+00:00.'
        required: false
        schema:
          type: string
          format: date-time
      - name: since_send_time
        x-title: Since Send Time
        in: query
        description: 'Restrict the response to campaigns sent after the set time. Uses ISO 8601 time format: 2015-10-21T15:41:36+00:00.'
        required: false
        schema:
          type: string
          format: date-time
      - name: before_create_time
        x-title: Before Create Time
        in: query
        description: 'Restrict the response to campaigns created before the set time. Uses ISO 8601 time format: 2015-10-21T15:41:36+00:00.'
        required: false
        schema:
          type: string
          format: date-time
      - name: since_create_time
        x-title: Since Create Time
        in: query
        description: 'Restrict the response to campaigns created after the set time. Uses ISO 8601 time format: 2015-10-21T15:41:36+00:00.'
        required: false
        schema:
          type: string
          format: date-time
      - name: list_id
        x-title: List ID
        in: query
        description: The unique id for the list.
        required: false
        schema:
          type: string
      - name: folder_id
        x-title: Folder ID
        in: query
        description: The unique folder id.
        required: false
        schema:
          type: string
      - name: member_id
        x-title: Member ID
        in: query
        description: Retrieve campaigns sent to a particular list member. Member ID is The MD5 hash of the lowercase version of the list member’s email address.
        required: false
        schema:
          type: string
      - name: sort_field
        x-title: Sort By Field
        description: Returns files sorted by the specified field.
        in: query
        required: false
        schema:
          type: string
          enum:
          - create_time
          - send_time
      - name: sort_dir
        x-title: Sort Direction
        description: Determines the order direction for sorted results.
        in: query
        required: false
        schema:
          type: string
          enum:
          - ASC
          - DESC
      - name: include_resend_shortcut_eligibility
        x-title: Include Resend Shortcut Eligibility
        in: query
        description: Return the `resend_shortcut_eligibility` field in the response, which tells you if the campaign is eligible for the various Campaign Resend Shortcuts offered.
        required: false
        schema:
          type: boolean
      - name: include_resend_shortcut_usage
        x-title: Include Resend Shortcut Usage
        in: query
        description: Return the `resend_shortcut_usage` field in the response.  This includes information about campaigns related by a shortcut.
        required: false
        schema:
          type: boolean
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                description: An array of campaigns.
                properties:
                  campaigns:
                    type: array
                    items:
                      type: object
                      title: Campaign
                      description: A summary of an individual campaign's settings and content.
                      properties:
                        id:
                          type: string
                          title: Campaign ID
                          description: A string that uniquely identifies this campaign.
                          readOnly: true
                        web_id:
                          type: integer
                          title: Campaign Web ID
                          description: 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}`.
                          readOnly: true
                        parent_campaign_id:
                          type: string
                          title: Parent Campaign ID
                          description: If this campaign is the child of another campaign, this identifies the parent campaign. For Example, for RSS or Automation children.
                          readOnly: true
                        type:
                          type: string
                          title: Campaign Type
                          description: 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.
                          enum:
                          - regular
                          - plaintext
                          - absplit
                          - rss
                          - variate
                        create_time:
                          type: string
                          format: date-time
                          title: Create Time
                          description: The date and time the campaign was created in ISO 8601 format.
                          readOnly: true
                        archive_url:
                          type: string
                          title: Archive URL
                          description: The link to the campaign's archive version in ISO 8601 format.
                          readOnly: true
                        long_archive_url:
                          type: string
                          title: Long Archive URL
                          description: The original link to the campaign's archive version.
                          readOnly: true
                        status:
                          type: string
                          title: Campaign Status
                          description: The current status of the campaign.
                          enum:
                          - save
                          - paused
                          - schedule
                          - sending
                          - sent
                          - canceled
                          - canceling
                          - archived
                          readOnly: true
                        emails_sent:
                          type: integer
                          title: Emails Sent
                          description: The total number of emails sent for this campaign.
                          readOnly: true
                        send_time:
                          type: string
                          format: date-time
                          title: Send Time
                          description: The date and time a campaign was sent.
                          readOnly: true
                        content_type:
                          type: string
                          title: Content Type
                          description: How the campaign's content is put together.
                          enum:
                          - template
                          - html
                          - url
                          - multichannel
                        needs_block_refresh:
                          type: boolean
                          title: Needs Block Refresh
                          description: Determines if the campaign needs its blocks refreshed by opening the web-based campaign editor. Deprecated and will always return false.
                          readOnly: true
                        resendable:
                          type: boolean
                          title: Resendable
                          description: Determines if the campaign qualifies to be resent to non-openers.
                          readOnly: true
                        recipients:
                          type: object
                          title: List
                          description: List settings for the campaign.
                          properties:
                            list_id:
                              type: string
                              title: List ID
                              description: The unique list id.
                            list_is_active:
                              type: boolean
                              title: List Status
                              description: The status of the list used, namely if it's deleted or disabled.
                              readOnly: true
                            list_name:
                              type: string
                              title: List Name
                              description: The name of the list.
                              readOnly: true
                            segment_text:
                              type: string
                              title: Segment Text
                              description: A description of the [segment](https://mailchimp.com/help/create-and-send-to-a-segment/) used for the campaign. Formatted as a string marked up with HTML.
                              readOnly: true
                            recipient_count:
                              type: integer
                              title: Recipient Count
                              description: Count of the recipients on the associated list. Formatted as an integer.
                              readOnly: true
                            segment_opts:
                              type: object
                              title: Segment Options
                              description: 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.
                              properties:
                                saved_segment_id:
                                  type: integer
                                  title: Saved Segment ID
                                  description: The id for an existing saved segment.
                                prebuilt_segment_id:
                                  type: string
                                  title: Prebuilt Segment Id
                                  description: The prebuilt segment id, if a prebuilt segment has been designated for this campaign.
                                  example: subscribers-female
                                match:
                                  type: string
                                  title: Match Type
                                  description: Segment match type.
                                  enum:
                                  - any
                                  - all
                                conditions:
                                  type: array
                                  title: Segment Type
                                  description: Segment match conditions. There are multiple possible types, see the [condition types documentation](https://mailchimp.com/developer/marketing/docs/alternative-schemas/#segment-condition-schemas).
                                  items:
                                    x-discriminator:
                                      type: string
                                      propertyName: condition_type
                                    x-oneOf:
                                    - type: object
                                      title: Aim Segment
                                      description: Segment by interaction with a specific campaign.
                                      properties:
                                        condition_type:
                                          type: string
                                          x-value: Aim
                                          enum:
                                          - Aim
                                        field:
                                          type: string
                                          enum:
                                          - aim
                                          title: Segment Field
                                          description: Segment by interaction with a specific campaign.
                                          example: aim
                                        op:
                                          type: string
                                          enum:
                                          - open
                                          - click
                                          - sent
                                          - noopen
                                          - noclick
                                          - nosent
                                          title: Segment Operator
                                          description: '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.'
                                          example: open
                                        value:
                                          type: string
                                          title: Segment Data
                                          description: Either the web id value for a specific campaign or 'any' to account for subscribers who have/have not interacted with any campaigns.
                                          example: any
                                    - type: object
                                      title: Automation Segment
                                      description: Segment by interaction with an Automation workflow.
                                      required:
                                      - field
                                      - op
                                      - value
                                      properties:
                                        condition_type:
                                          type: string
                                          x-value: Automation
                                          enum:
                                          - Automation
                                        field:
                                          type: string
                                          enum:
                                          - automation
                                          title: Segment Field
                                          description: Segment by interaction with an Automation workflow.
                                          example: automation
                                        op:
                                          type: string
                                          enum:
                                          - started
                                          - completed
                                          - not_started
                                          - not_completed
                                          title: Segment Operator
                                          description: '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.'
                                          example: started
                                        value:
                                          type: string
                                          title: Segment Data
                                          description: The web id for the automation workflow to segment against.
                                          example: '2135217'
                                    - type: object
                                      title: Poll Activity Segment
                                      description: Segment by poll activity.
                                      required:
                                      - field
                                      - op
                                      - value
                                      properties:
                                        condition_type:
                                          type: string
                                          x-value: CampaignPoll
                                          enum:
                                          - CampaignPoll
                                        field:
                                          type: string
                                          enum:
                                          - poll
                                          title: Segment Field
                                          description: Segment by poll activity.
                                          example: poll
                                        op:
                                          type: string
                                          enum:
                                          - member
                                          - notmember
                                          title: Segment Operator
                                          description: Members have/have not interacted with a specific poll in a Mailchimp email.
                                          example: member
                                        value:
                                          type: number
                                          title: Segment Operator
                                          description: The id for the poll.
                                          example: 409
                                    - type: object
                                      title: Conversation Segment
                                      description: Segment by interaction with a campaign via Conversations.
                                      required:
                                      - field
                                      - op
                                      - value
                                      properties:
                                        condition_type:
                                          type: string
                                          x-value: Conversation
                                          enum:
                                          - Conversation
                                        field:
                                          type: string
                                          enum:
                                          - conversation
                                          title: Segment Field
                                          description: Segment by interaction with a campaign via Conversations.
                                          example: conversation
                                        op:
                                          type: string
                                          enum:
                                          - member
                                          - notmember
                                          title: Segment Operator
                                          description: 'The status of a member''s interaction with a conversation. One of the following: has replied or has not replied.'
                                          example: member
                                        value:
                                          type: string
                                          title: Segment Data
                                          description: The web id value for a specific campaign or 'any' to account for subscribers who have/have not interacted with any campaigns.
                                          example: any
                                    - type: object
                                      title: Date Segment
                                      description: Segment by a specific date field.
                                      required:
                                      - field
                                      - op
                                      - value
                                      properties:
                                        condition_type:
                                          type: string
                                          x-value: Date
                                          enum:
                                          - Date
                                        field:
                                          type: string
                                          enum:
                                          - timestamp_opt
                                          - info_changed
                                          - ecomm_date
                                          title: Segment Field
                                          description: '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.'
                                          example: timestamp_opt
                                        op:
                                          type: string
                                          enum:
                                          - greater
                                          - less
                                          - is
                                          - not
                                          - blank
                                          - blank_not
                                          - within
                                          - notwithin
                                          title: Segment Operator
                                          description: 'When the event took place:  Before, after, is a specific date, is not a specific date, is blank, or is not blank.'
                                          example: greater
                                        value:
                                          type: string
                                          title: Segment Data
                                          description: 'What type of data to segment on: a specific date, a specific campaign, or the last campaign sent.'
                                          example: date
                                        extra:
                                          type: string
                                          title: Segment Extra Value
                                          description: When segmenting on 'date' or 'campaign', the date for the segment formatted as YYYY-MM-DD or the web id for the campaign.
                                          example: '2015-01-30'
                                    - type: object
                                      title: Email Client Segment
                                      description: Segment by use of a particular email client.
                                      required:
                                      - field
                                      - op
                                      - value
                                      properties:
                                        condition_type:
                                          type: string
                                          x-value: EmailClient
                                          enum:
                                          - EmailClient
                                        field:
                                          type: string
                                          enum:
                                          - email_client
                                          title: Segment Field
                                          description: Segment by use of a particular email client.
                                          example: email_client
                                        op:
                                          type: string
                                          enum:
                                          - client_is
                                          - client_not
                                          title: Segment Operator
                                          description: The operation to determine whether we select clients that match the value, or clients that do not match the value.
                                          example: client_is
                                        value:
                                          type: string
                                          title: Segment Data
                                          description: The name of the email client.
                                          example: Gmail
                                    - type: object
                                      title: Language Segment
                                      description: Segment by language.
                                      required:
                                      - field
                                      - op
                                      - value
                                      properties:
                                        condition_type:
                                          type: string
                                          x-value: Language
                                          enum:
                                          - Language
                                        field:
                                          type: string
                                          enum:
                                          - language
                                          title: Segment Field
                                          description: Segmenting based off of a subscriber's language.
                                          example: language
                                        op:
                                          type: string
                                          enum:
                                          - is
                                          - not
                                          title: Segment Operator
                                          description: Whether the member's language is or is not set to a specific language.
                                          example: is
                                        value:
                                          type: string
                                          title: Segment Data
                                          description: A two-letter language identifier.
                                          example: en
                                    - type: object
                                      title: Member Rating Segment
                                      description: Segment by member rating.
                                      required:
                                      - field
                                      - op
                                      - value
                                      properties:
                                        condition_type:
                                          type: string
                                          x-value: MemberRating
                                          enum:
                                          - MemberRating
                                        field:
                                          type: string
                                          enum:
                                          - rating
                                          title: Segment Field
                                          description: Segment by member rating.
                                          example: rating
                                        op:
                                          type: string
                                          enum:
                                          - is
                                          - not
                                          - greater
                                          - less
                                          title: Segment Operator
                                          description: 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.
                                          example: greater
                                        value:
                                          type: number
                                          title: Segment Operator
                                          description: The star rating number to segment against.
                                          example: 4
                                    - type: object
                                      title: Signup Source Segment
                                      description: Segment by signup source.
                                      required:
                                      - field
                                      - condition_type
                                      - op
                                      properties:
                                        condition_type:
                                          type: string
                                          enum:
                                          - SignupSource
                                          x-value: SignupSource
                                          title: Type
                                        field:
                                          type: string
                                          enum:
                                          - source
                                          title: Segment Field
                                          example: source
                                        op:
                                          type: string
                                          en

# --- truncated at 32 KB (1846 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/mailchimp/refs/heads/main/openapi/mailchimp-campaigns-api-openapi.yml