Constant Contact Email Campaigns API

Use email campaign endpoints and methods to get, create, and update email campaigns.

Operations 11

GET /emails GET a Collection of Email Campaigns #
POST /emails POST (Create) a New Email Campaign #
GET /emails/{campaign_id} GET Details About a Single Email Campaign #
DELETE /emails/{campaign_id} DELETE an Email Campaign #
PATCH /emails/{campaign_id} PATCH (Update) an Email Campaign Name #
GET /emails/campaign_id_xrefs GET a Collection of V2 and V3 API Email Campaign Identifiers #
GET /emails/activities/{campaign_activity_id} GET a Single Email Campaign Activity #
PUT /emails/activities/{campaign_activity_id} PUT (Update) An Email Campaign Activity #
GET /emails/activities/{campaign_activity_id}/non_opener_resends GET Details for a Resend to Non-openers Campaign Activity #
POST /emails/activities/{campaign_activity_id}/non_opener_resends POST a Resend to Non-openers Campaign Activity #
DELETE /emails/activities/{campaign_activity_id}/non_opener_resends/{resend_request_id} DELETE a Resend to Non Openers Activity #

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/constant-contact-email-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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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

OpenAPI Specification

constant-contact-email-campaigns-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: The Constant Contact, Inc. V3 public API, for building integrations with Constant Contact, the leading small-business email marketing platform.
  version: 3.0.178
  title: AppConnect V3 Email Campaigns API
  contact:
    name: webservices@constantcontact.com
  license:
    name: Private
    url: https://www.constantcontact.com/legal/terms-of-use
servers:
- url: https://api.cc.email/v3
tags:
- name: Email Campaigns
  description: Use email campaign endpoints and methods to get, create, and update email campaigns.
paths:
  /emails:
    get:
      tags:
      - Email Campaigns
      summary: GET a Collection of Email Campaigns
      description: 'Use this method to list and get details about your email campaigns. By default, this method returns all email campaigns for the user account including deleted email campaigns. To get email campaigns within a date-range, use the `after_date` and `before_date` query parameters.


        This endpoint does not return campaign activity details for each email campaign in the collection. To get email campaign activity details for a single email campaign, use the GET `/emails/{campaign_id}` endpoint."

        <div class="Msg"><p class="note-text">This method does not currently support filtering results using the email campaign creation date.</p></div>

        '
      operationId: retrieveEmailCampaignsUsingGET
      parameters:
      - name: limit
        in: query
        description: Specifies the number of campaigns to display on each page of output that is returned (from return 1 - 500). The default returns 50 campaigns per page.
        required: false
        schema:
          type: integer
          format: int32
          default: 50
      - name: before_date
        in: query
        description: Use to return email campaigns with `updated_at` timestamps that are before a specific date and time (in ISO-8601 format). Use with the `after_date` query parameter to get email campaigns sent within a specific date range.
        required: false
        x-example: '2021-01-10T11:42:57.000Z'
        schema:
          type: string
          format: date-time
      - name: after_date
        in: query
        description: Use to return email campaigns with last `updated_at` timestamps that are after a specific date and time (in ISO-8601 format). Use with the `before_date` query parameter to get email campaigns sent within a specific date range.
        required: false
        x-example: '2021-03-10T11:42:57.000Z'
        schema:
          type: string
          format: date-time
      responses:
        '200':
          description: Request successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedEmailCampaignResponse'
        '400':
          description: Bad request. Either the JSON was malformed or there was a data validation error.
        '401':
          description: The Access Token used is invalid.
        '403':
          description: Forbidden request. You lack the necessary scopes, you lack the necessary user privileges, or the application is deactivated.
        '404':
          description: The requested resource was not found.
        '429':
          description: Too many requests. You exceeded the request rate limit.
        '500':
          description: There was a problem with our internal service.
      security:
      - oauth2_implicit:
        - campaign_data
      - oauth2_access_code:
        - campaign_data
      x-authorization-privileges:
      - campaign:read
      x-sdk-methodName: getAllEmailCampaigns
    post:
      tags:
      - Email Campaigns
      summary: POST (Create) a New Email Campaign
      description: 'Use this method to create a new email campaign. The API supports custom HTML campaigns (format type 5). Custom HTML must include a tracking image (`[[trackingImage]]`) in the email body in order for Constant Contact to report on the email performance.

        The request body must contain the `name` property and the `email_campaign_activities` array. The `name` must be unique. The `email_campaign_activities` array contains the main content of your email campaign and must include `format_type`, `from_name`, `from_email`, `reply_to_email`, `subject`, and `html_content` properties. The `from_email` address you use must use a verified email address for your account.

        '
      operationId: createEmailCampaignUsingPOST
      responses:
        '200':
          description: 'Request successful. NOTE: If you created an email campaign using a legacy (V7) format, Constant Contact successfully converted it to the newer custom code format.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmailCampaign'
        '400':
          description: Bad request. Either the JSON was malformed or there was a data validation error.
        '401':
          description: The Access Token used is invalid.
        '403':
          description: Forbidden request. You lack the necessary scopes, you lack the necessary user privileges, or the application is deactivated.
        '409':
          description: Conflict. The resource you are creating or updating conflicts with an existing resource.
        '415':
          description: Unsupported Media Type.
        '429':
          description: Too many requests. You exceeded the request rate limit.
        '500':
          description: There was a problem with our internal service.
      security:
      - oauth2_implicit:
        - campaign_data
      - oauth2_access_code:
        - campaign_data
      x-authorization-privileges:
      - campaign:write
      x-sdk-methodName: createEmailCampaign
      x-ctctmcp-tool-desc: 'Use this tool to create a new email campaign. You must include a tracking image (`[[trackingImage]]`) in the email body in order for Constant Contact to report on the email performance. The request body must contain the `name` property and the `email_campaign_activities` array. The `name` must be unique. The `email_campaign_activities` array contains the main content of your email campaign and must include `format_type`, `from_name`, `from_email`, `reply_to_email`, `subject`, and `html_content` properties. The `from_email` address you use must use a verified email address for the account.

        Quality requirement for default output: when the user asks to create an email campaign and does not explicitly request a plain or minimal draft, default to a polished, production-ready HTML marketing email, not a schema-valid stub. Treat any included HTML example as the minimum visual quality bar, not just a valid payload sample.

        Strong preference: generate professionally styled HTML with substantial inline CSS and a clear design system. Prefer: a background color and constrained content container, strong heading hierarchy and readable body typography, intentional spacing and section padding, card or panel structure where appropriate, styled CTA buttons and links, polished image treatment, responsive-friendly table or hybrid email-safe layout patterns, and a coherent visual layout that looks intentionally designed.

        Avoid as the default: barebones bodies with only one or two inline styles, placeholder-looking copy, or a simple heading-plus-paragraph structure when richer HTML is feasible from the information already available.

        User-discovery requirement: before creating the campaign, strongly prefer gathering enough context to make the email effective. Ask about the users business goal/campaign objective, audience, brand style, and desired call to action when that information is missing and asking is practical. Frame this as improving performance and relevance, not as a blocker. Examples: What is the business goal of this email? Who is the audience? What action do you want readers to take? Do you want it to feel promotional, editorial, or transactional? Are there brand colors, logo, product images, or offers to include? It is very important to personalize the email. If a business website is provided, use it to infer brand style, tone, colors, and destination links. If a logo or image is provided, incorporate it into the email. If neither is provided, clearly label the output as a best-effort draft. If the user has not supplied this context and immediate creation is still necessary, create the best possible polished draft using reasonable assumptions, but optimize for a credible business-ready layout rather than a minimal example.

        Behavioral rule: The assistant should assume the user wants a visually designed email that supports a real business objective. Visual polish does not satisfy this requirement on its own. Unless the user explicitly requests a placeholder, starter draft, mockup, or “just make something,” the assistant must collect the minimum campaign brief — goal, audience, CTA — before creating the campaign. If any of these are missing, ask first. Do not use generic filler strategy or copy as a substitute for the brief.

        Tool Requirement: After creating an email campaign, always use the html preview tool get_campaign_html_preview inspect the rendered result.

        '
      x-ctctmcp-allow: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmailCampaignComplete'
        description: A JSON request body that contains the email content.
        required: true
  /emails/{campaign_id}:
    get:
      tags:
      - Email Campaigns
      summary: GET Details About a Single Email Campaign
      description: Use this method to get details about a single email campaign and campaign related activities. Details include the email campaign name, current status, create date, last update date, and a list of campaign activities; including the `campaign_activity_id` and `role`.
      operationId: retrieveEmailCampaignUsingGET
      parameters:
      - name: campaign_id
        in: path
        description: The ID (UUID format) that uniquely identifies this email campaign.
        required: true
        x-example: 91569d46-00e4-4a4d-9a4c-d17d98740d04
        schema:
          type: string
      responses:
        '200':
          description: Request successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmailCampaign'
        '400':
          description: Bad request. Either the JSON was malformed or there was a data validation error.
        '401':
          description: The Access Token used is invalid.
        '403':
          description: Forbidden request. You lack the necessary scopes, you lack the necessary user privileges, or the application is deactivated.
        '404':
          description: The requested resource was not found.
        '429':
          description: Too many requests. You exceeded the request rate limit.
        '500':
          description: There was a problem with our internal service.
      security:
      - oauth2_implicit:
        - campaign_data
      - oauth2_access_code:
        - campaign_data
      x-authorization-privileges:
      - campaign:read
      x-sdk-methodName: getEmailCampaignById
    delete:
      tags:
      - Email Campaigns
      summary: DELETE an Email Campaign
      description: 'Use this method to delete an email campaign and the email campaign activities associated with the email campaign. You cannot delete an email campaign when it has a `Scheduled` status.


        Constant Contact users can restore deleted email campaigns using the UI.

        '
      operationId: removeEmailCampaignUsingDELETE
      parameters:
      - name: campaign_id
        in: path
        description: The unique ID for the email campaign you are deleting.
        required: true
        x-example: 91569d46-00e4-4a4d-9a4c-d17d98740d04
        schema:
          type: string
      responses:
        '204':
          description: Email campaign successfully deleted. No response body returned.
        '400':
          description: Bad request. Either the JSON was malformed or there was a data validation error.
        '401':
          description: The Access Token used is invalid.
        '403':
          description: Forbidden request. You lack the necessary scopes, you lack the necessary user privileges, or the application is deactivated.
        '404':
          description: The requested resource was not found.
        '429':
          description: Too many requests. You exceeded the request rate limit.
        '500':
          description: There was a problem with our internal service.
      security:
      - oauth2_implicit:
        - campaign_data
      - oauth2_access_code:
        - campaign_data
      x-authorization-privileges:
      - campaign:delete
      x-sdk-methodName: deleteEmailCampaign
    patch:
      tags:
      - Email Campaigns
      summary: PATCH (Update) an Email Campaign Name
      description: Use this method to rename an email campaign. The name is not visible to contacts. The name must be unique and cannot exceed 80 characters. You cannot rename email campaigns that have a `Removed` status.
      operationId: renameEmailCampaignUsingPATCH
      parameters:
      - name: campaign_id
        in: path
        description: The unique identifier for an email campaign.
        required: true
        x-example: 91569d46-00e4-4a4d-9a4c-d17d98740d04
        schema:
          type: string
      responses:
        '200':
          description: Request successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmailCampaign'
        '400':
          description: Bad request. Either the JSON was malformed or there was a data validation error.
        '401':
          description: The Access Token used is invalid.
        '403':
          description: Forbidden request. You lack the necessary scopes, you lack the necessary user privileges, or the application is deactivated.
        '404':
          description: The requested resource was not found.
        '409':
          description: Conflict. The resource you are creating or updating conflicts with an existing resource.
        '415':
          description: Unsupported Media Type.
        '429':
          description: Too many requests. You exceeded the request rate limit.
        '500':
          description: There was a problem with our internal service.
      security:
      - oauth2_implicit:
        - campaign_data
      - oauth2_access_code:
        - campaign_data
      x-authorization-privileges:
      - campaign:write
      x-ctctmcp-allow: true
      x-sdk-methodName: patchEmailCampaignName
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmailCampaignName'
        description: A JSON payload that contains the new email campaign name.
        required: true
  /emails/campaign_id_xrefs:
    get:
      tags:
      - Email Campaigns
      summary: GET a Collection of V2 and V3 API Email Campaign Identifiers
      description: '<div class="Msg Msg--warning"><p class="note-text">Use this endpoint to migrate your locally stored V2 email campaign data to the new V3 format. Developers are expected to use this endpoint sparingly. This endpoint is NOT intended for regular or repeated use. Constant Contact will eventually deprecate and remove this endpoint.</p></div>


        Use this method to migrate your local V2 API email data to the V3 API format. For each value that you provide in the `v2_email_campaign_ids` query parameter, this method returns the corresponding V3 `campaign_id` and V3 `campaign_activity_id` UUID value. For more information on the changes to the email campaign resource model, see [V3 Email Campaign Resource Changes](/api_guide/v3_v2_email_campaign_deltas.html) in the API guide.

        '
      operationId: retrieveXrefMappingsUsingGET
      parameters:
      - name: v2_email_campaign_ids
        in: query
        description: Comma separated list of V2 API `campaignId` values. You can enter up to 50 V2 `campaignId` values in each request.
        required: true
        x-example: 1100567546598,1604567396117,12002485195578
        schema:
          type: string
          format: csv
          maxItems: 50
      responses:
        '200':
          description: Request successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CrossReferenceResponse'
        '400':
          description: Bad request. Either the JSON was malformed or there was a data validation error.
        '401':
          description: The Access Token used is invalid.
        '403':
          description: Forbidden request. You lack the necessary scopes, you lack the necessary user privileges, or the application is deactivated.
        '404':
          description: The requested resource was not found.
        '429':
          description: Too many requests. You exceeded the request rate limit.
        '500':
          description: There was a problem with our internal service.
      security:
      - oauth2_implicit:
        - campaign_data
      - oauth2_access_code:
        - campaign_data
      x-authorization-privileges:
      - campaign:read
      x-sdk-methodName: getEmailCampaignXrefs
  /emails/activities/{campaign_activity_id}:
    get:
      tags:
      - Email Campaigns
      summary: GET a Single Email Campaign Activity
      description: 'Use this method to return a specific email campaign activity. Each email campaign activity contains the email content, metadata, and styling information of an email. Email campaign activities can also contain either contact lists or segments. Constant Contact uses this information to determine who to send the email campaign activity to when you schedule it. You cannot get email campaign activities that have a `REMOVED` status.

        '
      operationId: retrieveEmailCampaignActivityUsingGET
      parameters:
      - name: campaign_activity_id
        in: path
        description: The unique ID for an email campaign activity.
        required: true
        x-example: 91569d46-00e4-4a4d-9a4c-d17d98740d04
        schema:
          type: string
      - name: include
        in: query
        description: Use the `include` query parameter to enter a comma separated list of additional email campaign activity properties for the V3 API to return. Valid values are `physical_address_in_footer`, `permalink_url`, `html_content`, and `document_properties`.
        required: false
        schema:
          type: string
          format: csv
          enum:
          - physical_address_in_footer
          - permalink_url
          - html_content
          - document_properties
      responses:
        '200':
          description: Request successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmailCampaignActivity'
        '400':
          description: Bad request. Either the JSON was malformed or there was a data validation error.
        '401':
          description: The Access Token used is invalid.
        '403':
          description: Forbidden request. You lack the necessary scopes, you lack the necessary user privileges, or the application is deactivated.
        '404':
          description: The requested resource was not found.
        '429':
          description: Too many requests. You exceeded the request rate limit.
        '500':
          description: There was a problem with our internal service.
      security:
      - oauth2_implicit:
        - campaign_data
      - oauth2_access_code:
        - campaign_data
      x-authorization-privileges:
      - campaign:read
      x-sdk-methodName: getEmailCampaignActivity
    put:
      tags:
      - Email Campaigns
      summary: PUT (Update) An Email Campaign Activity
      description: 'Use this method to update an email campaign activity by including the complete email campaign activity with your changes in the request body. The request body requires the `from_name`, `from_email`, `reply_to_email`, and `subject` properties.


        You can only update email campaign activities that have the `primary_email` role and that are in `DRAFT` or `Done` status.

        When you use a PUT method to update a resource, the V3 API overwrites any properties that are missing in the request body. However, the V3 API does not overwrite subresources that you omit in the request body or missing properties in subresources. This method considers `physical_address_in_footer`, `document_properties`, `html_content`, and `permalink_url` subresources of the email campaign activity.

        '
      operationId: updateEmailCampaignActivityUsingPUT
      parameters:
      - name: campaign_activity_id
        in: path
        description: The unique ID for the email campaign activity you are updating.
        required: true
        x-example: 91569d46-00e4-4a4d-9a4c-d17d98740d04
        schema:
          type: string
      responses:
        '200':
          description: Email campaign activity successfully updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmailCampaignActivity'
        '400':
          description: Bad request. Either the JSON was malformed or there was a data validation error.
        '401':
          description: The Access Token used is invalid.
        '403':
          description: Forbidden request. You lack the necessary scopes, you lack the necessary user privileges, or the application is deactivated.
        '404':
          description: The requested resource was not found.
        '415':
          description: Unsupported Media Type.
        '429':
          description: Too many requests. You exceeded the request rate limit.
        '500':
          description: There was a problem with our internal service.
      security:
      - oauth2_implicit:
        - campaign_data
      - oauth2_access_code:
        - campaign_data
      x-authorization-privileges:
      - campaign:write
      x-sdk-methodName: updateEmailCampaignActivity
      x-ctctmcp-allow: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmailCampaignActivity'
        description: A request body payload that contains the complete email campaign activity with your changes.
        required: true
  /emails/activities/{campaign_activity_id}/non_opener_resends:
    get:
      tags:
      - Email Campaigns
      summary: GET Details for a Resend to Non-openers Campaign Activity
      description: Get details about a resend to non-openers campaign activity. If resend activity does not exist for the specified `campaign_activity_id`, an empty list is returned in the results. You can only create one resend activity per email campaign.
      operationId: retrieveResendToNonOpenersUsingGET
      parameters:
      - name: campaign_activity_id
        in: path
        description: The unique ID for the primary email campaign activity.
        required: true
        x-example: 91569d46-00e4-4a4d-9a4c-d17d98740d04
        schema:
          type: string
      responses:
        '200':
          description: Request successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResendToNonOpeners'
        '400':
          description: Bad request. Either the JSON was malformed or there was a data validation error.
        '401':
          description: The Access Token used is invalid.
        '403':
          description: Forbidden request. You lack the necessary scopes, you lack the necessary user privileges, or the application is deactivated.
        '404':
          description: The requested resource was not found.
        '429':
          description: Too many requests. You exceeded the request rate limit.
        '500':
          description: There was a problem with our internal service.
      security:
      - oauth2_implicit:
        - campaign_data
      - oauth2_access_code:
        - campaign_data
      x-authorization-privileges:
      - campaign:read
      x-sdk-methodName: getResendEmailCampaign
    post:
      tags:
      - Email Campaigns
      summary: POST a Resend to Non-openers Campaign Activity
      description: "Use this POST method to resend a primary campaign activity to contacts that did not open a campaign activity that has a current `status` of `Draft`, `Scheduled`, or `Done`. You can only create one resend activity per email campaign.\n \n After an email campaign activity is sent to contacts, Constant Contact waits the specified number of `delay_days` or `delay_minutes` (properties are mutually exclusive) before resending to non-openers. If you set both `delay_days` or `delay_minutes`, `delay_minutes` is ignored in the request. You can resend to non-openers a minimum of twelve hours (720 minutes) and a maximum of up to 10 days (or 10 x 1440 minutes) after the initial send date.\n \n "
      operationId: createResendToNonOpenersUsingPOST
      parameters:
      - name: campaign_activity_id
        in: path
        description: The unique ID for the primary email campaign activity.
        required: true
        x-example: 91569d46-00e4-4a4d-9a4c-d17d98740d04
        schema:
          type: string
      responses:
        '201':
          description: Request successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResendToNonOpenersObject'
        '400':
          description: Bad request. Either the JSON was malformed or there was a data validation error.
        '401':
          description: The Access Token used is invalid.
        '403':
          description: Forbidden request. You lack the necessary scopes, you lack the necessary user privileges, or the application is deactivated.
        '404':
          description: The requested resource was not found.
        '409':
          description: Conflict. The resource you are creating or updating conflicts with an existing resource.
        '429':
          description: Too many requests. You exceeded the request rate limit.
        '500':
          description: There was a problem with our internal service.
      security:
      - oauth2_implicit:
        - campaign_data
      - oauth2_access_code:
        - campaign_data
      x-authorization-privileges:
      - campaign:send
      x-sdk-methodName: createResendEmailCampaign
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResendToNonOpenersInput'
        description: A JSON request body that specifies when to resend the campaign activity to non-openers.
        required: true
  /emails/activities/{campaign_activity_id}/non_opener_resends/{resend_request_id}:
    delete:
      tags:
      - Email Campaigns
      summary: DELETE a Resend to Non Openers Activity
      description: Use this `DELETE` method to delete (unschedule) a resend to non openers activity.
      operationId: deleteResendToNonOpenersUsingDELETE
      parameters:
      - name: campaign_activity_id
        in: path
        description: The unique ID for the primary email campaign activity.
        required: true
        x-example: 91569d46-00e4-4a4d-9a4c-d17d98740d04
        schema:
          type: string
      - name: resend_request_id
        in: path
        description: 'The unique ID associated with the resend for the email campaign activity (for example: `389093`). If the email campaign activity is currently in draft status, specify `DRAFT` as the ID.'
        required: true
        x-example: '389093'
        schema:
          type: string
      responses:
        '204':
          description: Request successful.
        '400':
          description: Bad request. Either the JSON was malformed or there was a data validation error.
        '401':
          description: The Access Token used is invalid.
        '403':
          description: Forbidden request. You lack the necessary scopes, you lack the necessary user privileges, or the application is deactivated.
        '404':
          description: The requested resource was not found.
        '409':
          description: Conflict. The resource you are creating or updating conflicts with an existing resource.
        '429':
          description: Too many requests. You exceeded the request rate limit.
        '500':
          description: There was a problem with our internal service.
      security:
      - oauth2_implicit:
        - campaign_data
      - oauth2_access_code:
        - campaign_data
      x-authorization-privileges:
      - campaign:send
      x-sdk-methodName: deleteResendEmailCampaign
components:
  schemas:
    EmailCampaign:
      type: object
      properties:
        campaign_activities:
          type: array
          description: Lists the role and unique activity ID of each campaign activity that is associated with an Email Campaign.
          items:
            $ref: '#/components/schemas/ActivityReference'
        campaign_id:
          type: string
          example: 8987dc1a-48ef-433a-b836-7ca4f9aa3481
          description: The unique ID used to identify the email campaign (UUID format).
        created_at:
          type: string
          format: date-time
          example: '2018-02-06T22:09:15.000Z'
          description: The system generated date and time that this email campaign was created. This string is readonly and is in ISO-8601 format.
          readOnly: true
        current_status:
          type: string
          example: Draft
          description: "The current status of the email campaign. Valid values are: <ul>\n  <li>Draft — An email campaign that you have created but have not sent to contacts.</li>\n  <li>Scheduled — An email campaign that you have scheduled for Constant Contact to send to contacts.</li>\n  <li>Executing — An email campaign that Constant Contact is currently sending to contacts. Email campaign activities are only in this status briefly.</li>\n  <li>Done — An email campaign that you successfully sent to contacts.</li>\n  <li>Error — An email campaign activity that encountered an error.</li>\n  <li>Removed — An email campaign that a user deleted. Users can view and restore deleted emails through the UI.</li>\n</ul>\n"
        name:
          type: string
          example: December Newsletter for Dog Lovers
          description: The descriptive name the user provides to identify this campaign. Campaign names must be unique for each account ID.
          maxLength: 80
        type:
          type: string
          example: NEWSLETTER
          description: Identifies the type of campaign that you select when creating the campaign. Newsletter and Custom Code email campaigns are the primary types.
        type_code:
          type: integer
          example: 10
          description: "The code used to identify the email campaign `type`. <ul>\n  <li> 1  (Default) </li>\n  <li> 2  (Bulk Email) </li>\n  <li> 10 (Newsletter) </li>\n  <li> 11 (Announcement) </li>\n  <li> 12 (Product/Service News) </li>\n  <li> 14 (Business Letter) </li>\n  <li> 15 (Card) </li>\n  <li> 16 (Press release)</li>\n  <li> 17 (Flyer) </li>\n  <li> 18 (Feedback Request) </li>\n  <li> 19 (Ratings and Reviews) </li>\n  <li> 20 (Event Announcement) </li>\n  <li> 21 (Simple Coupon) </li>\n  <li> 22 (Sale Promotion) </li>\n  <li> 23 (Product Promotion) </li>\n  <li> 24 (Membership Drive) </li>\n  <li> 25 (Fundraiser) </li>\n  <li> 26 (Custom Code Email)</li>\n  <li> 57 (A/B Test)</li>\n</ul>\n"
        updated_at:
          type: string
          format: date-time
          example: '2018-06-27T10:28:09.000Z'
          description: The system generated date and time showing when the campaign was last updated. This string is read only and is in ISO-8601 format.
          readOnly: true
    CrossReference:
      type: object
      properties:
        v2_email_campaign_id:
          type: string
          example: '1100567546598'
          description: Identifies an email campaign in the V2 API.
        campaign_id:
          type: string
          format: uuid
          example: e4cf53f0-e37f-11e8-9f32-f2801f1b9fd1
          description: <p>Identifies a campaign in the V3 API. In the V3 API, each campaign contains one or more activities. For more information, see <a href="/api_guide/v3

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