Constant Contact Email Reporting API

Use the email reporting endpoints and methods to get reporting data for email campaigns you sent to contacts.

Operations 12

GET /reports/email_reports/{campaign_activity_id}/links GET an Email Links Report #
GET /reports/email_reports/{campaign_activity_id}/tracking/sends GET an Email Sends Report #
GET /reports/email_reports/{campaign_activity_id}/tracking/opens GET an Email Opens Report #
GET /reports/email_reports/{campaign_activity_id}/tracking/unique_opens GET an Email Unique Opens Report #
GET /reports/email_reports/{campaign_activity_id}/tracking/didnotopens GET an Email Did Not Opens Report #
GET /reports/email_reports/{campaign_activity_id}/tracking/clicks GET an Email Clicks Report #
GET /reports/email_reports/{campaign_activity_id}/tracking/forwards GET an Email Forwards Report #
GET /reports/email_reports/{campaign_activity_id}/tracking/optouts GET an Email Opt-outs Report #
GET /reports/email_reports/{campaign_activity_id}/tracking/bounces GET an Email Bounces Report #
GET /reports/summary_reports/email_campaign_summaries GET an Email Campaigns Summary Report #
GET /reports/stats/email_campaigns/{campaign_ids} GET an Email Campaign Stats Report #
GET /reports/stats/email_campaign_activities/{campaign_activity_ids} GET an Email Campaign Activity Stats Report #

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-reporting-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-reporting-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 Reporting 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 Reporting
  description: Use the email reporting endpoints and methods to get reporting data for email campaigns you sent to contacts.
paths:
  /reports/email_reports/{campaign_activity_id}/links:
    get:
      tags:
      - Email Reporting
      summary: GET an Email Links Report
      description: 'Use this method to return link details, including the number of unique contacts that clicked each link in an email campaign activity, and the type of action associated with clicking each link. To include link details for links that were not clicked, set the `no_clicks` query parameter to `true`.


        You can return reporting data for `primary_email` and `resend` role email campaign activities. For more use case information, see [Get an Email Links Report](/api_guide/email_links_report.html) in the API guide.'
      operationId: getCampaignActivityLinkStats
      parameters:
      - name: campaign_activity_id
        in: path
        description: The unique ID for an email campaign activity.
        required: true
        x-example: 8892baf9-970a-4de6-8400-fa4ec461987c
        schema:
          type: string
          format: uuid
      - name: no_clicks
        in: query
        description: Set this query parameter to `true` to  return details for links that were not clicked in the response results.
        required: false
        x-example: 'true'
        schema:
          type: boolean
          default: false
      responses:
        '200':
          description: Request was successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmailLinks'
        '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.
        '500':
          description: There was a problem with our internal service.
      security:
      - oauth2_implicit:
        - campaign_data
      - oauth2_access_code:
        - campaign_data
      x-authorization-privileges:
      - ui:campaign:metrics
      x-sdk-methodName: getCampaignActivityLinkReport
  /reports/email_reports/{campaign_activity_id}/tracking/sends:
    get:
      tags:
      - Email Reporting
      summary: GET an Email Sends Report
      description: Use this method to get each contact that was sent a specific email campaign activity. This sends report includes general contact data such as the date and time that the email campaign activity was sent to a contact's email address, the contact's first and last name, and unique ID. This report lists the most recent activity first. For more use case information, see [Get an Sends report for an Email Campaign Activity](/api_guide/email_summary_sends_report.html) in the API guide.
      operationId: getSends
      parameters:
      - name: campaign_activity_id
        in: path
        description: The unique ID for an email campaign activity to use for this report.
        required: true
        x-example: 8892baf9-970a-4de6-8400-fa4ec461987c
        schema:
          type: string
          format: uuid
      - name: limit
        in: query
        description: The number of tracking activities to return on a page.
        required: false
        schema:
          type: string
          default: '500'
          maximum: 500
          minimum: 1
      responses:
        '200':
          description: Request was successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SendsTrackingActivitiesPage'
        '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.
        '500':
          description: There was a problem with our internal service.
      security:
      - oauth2_implicit:
        - campaign_data
      - oauth2_access_code:
        - campaign_data
      x-authorization-privileges:
      - ui:campaign:metrics
      x-sdk-methodName: getEmailSendsReport
  /reports/email_reports/{campaign_activity_id}/tracking/opens:
    get:
      tags:
      - Email Reporting
      summary: GET an Email Opens Report
      description: Use this method to get each time a contact opened a specific email campaign activity. This report includes general contact information such as the contact's email address and unique ID, the date and time they opened the email campaign activity, and the type of device they used to open it. This report lists the most recent activity first. For more use case information, see [Get an Opens report for an Email Campaign Activity](/api_guide/email_summary_opens_report.html) in the API guide.
      operationId: getOpens
      parameters:
      - name: campaign_activity_id
        in: path
        description: The unique ID for an email campaign activity to use for this report.
        required: true
        x-example: 8892baf9-970a-4de6-8400-fa4ec461987c
        schema:
          type: string
          format: uuid
      - name: limit
        in: query
        description: The number of tracking activities to return on a page.
        required: false
        schema:
          type: string
          default: '500'
          maximum: 500
          minimum: 1
      responses:
        '200':
          description: Request was successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpensTrackingActivitiesPage'
        '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.
        '500':
          description: There was a problem with our internal service.
      security:
      - oauth2_implicit:
        - campaign_data
      - oauth2_access_code:
        - campaign_data
      x-authorization-privileges:
      - ui:campaign:metrics
      x-sdk-methodName: getEmailOpensReport
  /reports/email_reports/{campaign_activity_id}/tracking/unique_opens:
    get:
      tags:
      - Email Reporting
      summary: GET an Email Unique Opens Report
      description: Use this method to get a unique opens report that provides details about the last time that each contact opened the specified email campaign activity. This report includes general contact information such as the contact's email address and unique ID, the date and time they opened the email campaign activity, and the type of device they used to open it. This report lists the most recent activity first. For more use case information, see [Get an Unique Opens Report for an Email Campaign Activity](/api_guide/email_summary_unique_opens_report.html) in the API guide.
      operationId: getUniqueOpens
      parameters:
      - name: campaign_activity_id
        in: path
        description: The ID that uniquely identifies the email campaign activity to use for this report.
        required: true
        x-example: 8892baf9-970a-4de6-8400-fa4ec461987c
        schema:
          type: string
          format: uuid
      - name: limit
        in: query
        description: The number of tracking activities to return on a page.
        required: false
        schema:
          type: string
          default: '500'
          maximum: 500
          minimum: 1
      responses:
        '200':
          description: Request was successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpensTrackingActivitiesPage'
        '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.
        '500':
          description: There was a problem with our internal service.
      security:
      - oauth2_implicit:
        - campaign_data
      - oauth2_access_code:
        - campaign_data
      x-authorization-privileges:
      - ui:campaign:metrics
      x-sdk-methodName: getUniqueOpensReport
  /reports/email_reports/{campaign_activity_id}/tracking/didnotopens:
    get:
      tags:
      - Email Reporting
      summary: GET an Email Did Not Opens Report
      description: Use this method to get a report listing each contact that was sent, but did not open the specified email campaign activity. This report lists contact information such as the contact's email address and unique ID, and the date and time that the email campaign activity was sent. This report lists the most recent activity first. For more use case information, see [Get a Did Not Opens Report for an Email Campaign Activity](/api_guide/email_summary_non_opens_report.html) in the API guide.
      operationId: getDidNotOpens
      parameters:
      - name: campaign_activity_id
        in: path
        description: The ID that uniquely identifies the email campaign activity to use for this report.
        required: true
        x-example: 8892baf9-970a-4de6-8400-fa4ec461987c
        schema:
          type: string
          format: uuid
      - name: limit
        in: query
        description: The number of tracking activities to return on a page.
        required: false
        schema:
          type: string
          default: '500'
          maximum: 500
          minimum: 1
      responses:
        '200':
          description: Request was successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DidNotOpensTrackingActivitiesPage'
        '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.
        '500':
          description: There was a problem with our internal service.
      security:
      - oauth2_implicit:
        - campaign_data
      - oauth2_access_code:
        - campaign_data
      x-authorization-privileges:
      - ui:campaign:metrics
      x-sdk-methodName: getDidNotOpensReport
  /reports/email_reports/{campaign_activity_id}/tracking/clicks:
    get:
      tags:
      - Email Reporting
      summary: GET an Email Clicks Report
      description: Use this method to get each time a contact clicked a link, the click date and time, and the device type they used. Use the `url_id` query parameter to get a clicks report for a specific link URL. Clicks report data is sorted with most recent activity listed first.
      operationId: getClicks
      parameters:
      - name: campaign_activity_id
        in: path
        description: The ID that uniquely identifies the email campaign activity to use for this report.
        required: true
        x-example: c8cdf384-15ca-4dcc-9b6f-4c91121fdc23
        schema:
          type: string
          format: uuid
      - name: url_id
        in: query
        description: The ID that uniquely identifies a single link URL for which you want to get a clicks report.
        required: false
        x-example: '49920742166'
        schema:
          type: integer
          format: int64
      - name: limit
        in: query
        description: The number of tracking activities to return on a page.
        required: false
        schema:
          type: string
          default: '500'
          maximum: 500
          minimum: 1
      responses:
        '200':
          description: Request was successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClicksTrackingActivitiesPage'
        '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.
        '500':
          description: There was a problem with our internal service.
      security:
      - oauth2_implicit:
        - campaign_data
      - oauth2_access_code:
        - campaign_data
      x-authorization-privileges:
      - ui:campaign:metrics
      x-sdk-methodName: getClicksReport
  /reports/email_reports/{campaign_activity_id}/tracking/forwards:
    get:
      tags:
      - Email Reporting
      summary: GET an Email Forwards Report
      description: Use this method to get a report listing each time a contact forwarded the email campaign activity using the forwarding link in the email footer. The report includes general contact information, such as the contact's email address and unique ID, and the date and time that the email campaign activity was forwarded. Forwards report data is sorted with the most recent activity listed first. For more use case information, see [Get an Email Forwards Report](/api_guide/email_summary_forwards_report.html) in the API guide.
      operationId: getForwards
      parameters:
      - name: campaign_activity_id
        in: path
        description: The ID that uniquely identifies the email campaign activity to use for this report.
        required: true
        schema:
          type: string
          format: uuid
      - name: limit
        in: query
        description: The number of tracking activities to return on a page.
        required: false
        schema:
          type: string
          default: '500'
          maximum: 500
          minimum: 1
      responses:
        '200':
          description: Request was successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForwardsTrackingActivitiesPage'
        '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.
        '500':
          description: There was a problem with our internal service.
      security:
      - oauth2_implicit:
        - campaign_data
      - oauth2_access_code:
        - campaign_data
      x-authorization-privileges:
      - ui:campaign:metrics
      x-sdk-methodName: getForwardsReport
  /reports/email_reports/{campaign_activity_id}/tracking/optouts:
    get:
      tags:
      - Email Reporting
      summary: GET an Email Opt-outs Report
      description: Use this method to get a report listing each contact that clicked the unsubscribe link in the email campaign activity to opt-out from receiving emails sent from your Constant Contact account. This report includes contact information, such as the contact's email address, unique ID, and the opt-out date and time. Opt-out report data is sorted with the most recent activity listed first. For more use case information, see [Get an Email Opt-outs Report](/api_guide/email_summary_optouts_report.html) in the API guide.
      operationId: getOptouts
      parameters:
      - name: campaign_activity_id
        in: path
        description: The ID that uniquely identifies the email campaign activity to use for this report.
        required: true
        schema:
          type: string
          format: uuid
      - name: limit
        in: query
        description: The number of tracking activities to return on a page.
        required: false
        schema:
          type: string
          default: '500'
          maximum: 500
          minimum: 1
      responses:
        '200':
          description: Request was successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OptoutsTrackingActivitiesPage'
        '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.
        '500':
          description: There was a problem with our internal service.
      security:
      - oauth2_implicit:
        - campaign_data
      - oauth2_access_code:
        - campaign_data
      x-authorization-privileges:
      - ui:campaign:metrics
      x-sdk-methodName: getOptoutsReport
  /reports/email_reports/{campaign_activity_id}/tracking/bounces:
    get:
      tags:
      - Email Reporting
      summary: GET an Email Bounces Report
      description: 'Use this method to get a report listing contact bounce data for the specified email campaign activity. This report lists the most recent bounce data first and includes contact information, such as the contact''s email address, unique ID, and the email bounce date and time.

        Use the <code>bounce_code</code> query parameter to limit the type of bounce data to return.


        For more use case information, see [Get a Bounces Report for an Email Campaign Activity](/api_guide/email_summary_bounces_report.html) in the API guide.'
      operationId: getBounces
      parameters:
      - name: campaign_activity_id
        in: path
        description: The ID that uniquely identifies the email campaign activity to use for this report.
        required: true
        schema:
          type: string
          format: uuid
      - name: bounce_code
        in: query
        description: To return results for a specific bounce code, select the `bounce_code` from the drop-down list. To return results for multiple codes, repeat the bounce code parameter for each. For example, to return results for bounce codes `B` and `D` use `bounce_code=B&bounce_code=D`.
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
            enum:
            - B
            - D
            - F
            - S
            - V
            - X
            - Z
      - name: limit
        in: query
        description: The number of tracking activities to return on a page.
        required: false
        schema:
          type: string
          default: '500'
          maximum: 500
          minimum: 1
      responses:
        '200':
          description: Request was successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BouncesTrackingActivitiesPage'
        '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.
        '500':
          description: There was a problem with our internal service.
      security:
      - oauth2_implicit:
        - campaign_data
      - oauth2_access_code:
        - campaign_data
      x-authorization-privileges:
      - ui:campaign:metrics
      x-sdk-methodName: getBouncesReport
  /reports/summary_reports/email_campaign_summaries:
    get:
      tags:
      - Email Reporting
      summary: GET an Email Campaigns Summary Report
      description: "Use this method to get aggregate email campaign statistics for up to five hundred email campaigns. The response results include the total number of times that each contact uniquely interacted with each tracked campaign activity.\n\nResults are sorted in descending order by the date that the email was last sent (<code>last_sent_date</code>). Use the <code>limit</code> query parameter to limit the number of email campaign summary reports listed on each page.\n\n\n\n For more use case information, see \"[Get an Email Campaign Summary Report](/api_guide/email_bulk_campaign_summary_report.html)\""
      operationId: getAllBulkEmailCampaignSummaries
      parameters:
      - name: limit
        in: query
        description: Use the `limit` query parameter to limit the number of email campaign summaries to return on a single page. The default is `50` and the maximum is `500` per page.
        required: false
        x-example: '100'
        schema:
          type: string
          default: '50'
      responses:
        '200':
          description: Request was successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkEmailCampaignSummariesPage'
        '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.
        '500':
          description: There was a problem with our internal service.
      security:
      - oauth2_implicit:
        - campaign_data
      - oauth2_access_code:
        - campaign_data
      x-authorization-privileges:
      - ui:campaign:metrics
      x-sdk-methodName: getEmailCampaignReport
  /reports/stats/email_campaigns/{campaign_ids}:
    get:
      tags:
      - Email Reporting
      summary: GET an Email Campaign Stats Report
      description: 'Use this method to get email campaign performance tracking statistics for one or more campaigns, including the total number of times contacts interacted with your campaigns and how.


        For each `campaign_id`, this method returns lists that include total counts (`stats`) for each type of tracked email and relevant campaign-related percentages (`percents`). It also returns the date and time at which the campaign stats were last refreshed.

        If any specified `campaign_id` is invalid, a 404 error response is returned for all campaigns.'
      operationId: getEmailSummary
      parameters:
      - name: campaign_ids
        in: path
        description: A comma-separated list of `campaign_id`s (UUID's).
        required: true
        x-example: 82ee2c37-c8f8-4974-9560-ef93ad51d58z
        schema:
          type: string
          maximum: 150
      responses:
        '200':
          description: Request was successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CampaignStatsQueryResultEmail'
        '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.
        '500':
          description: There was a problem with our internal service.
      security:
      - oauth2_implicit:
        - campaign_data
      - oauth2_access_code:
        - campaign_data
      x-authorization-privileges:
      - ui:campaign:metrics
      x-sdk-methodName: getEmailStatsReport
  /reports/stats/email_campaign_activities/{campaign_activity_ids}:
    get:
      tags:
      - Email Reporting
      summary: GET an Email Campaign Activity Stats Report
      description: 'Use this method to get performance tracking statistics for up to ten email campaign activities. Statistics include the total number of times contacts interacted with your campaigns and how.


        For each `campaign_activity_id`, this method returns the `campaign_id`, the total counts (`stats`) for each type of tracked email activity, and the date and time that Constant Contact last refreshed (`last_refresh_time`) the `stats`.


        When requesting statistics for multiple email campaign activities, if one or more of the `campaign_activity_ids` do not exist, were deleted, or do not have any stats associated with it, the `campaign_activity_ids` and error details display under `errors`. If any single specified `campaign_activity_id` is invalid (malformed), a 404 error response is returned for all campaign activities.'
      operationId: getEmailCampaignActivitySummary
      parameters:
      - name: campaign_activity_ids
        in: path
        description: A comma-separated list of `campaign_activity_id`s (UUID's).
        required: true
        x-example: 82ee2c37-c8f8-4974-9560-ef93ad51d58z
        schema:
          type: string
          maximum: 10
      responses:
        '200':
          description: Request was successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CampaignActivityStatsQueryResultEmail'
        '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.
        '500':
          description: There was a problem with our internal service.
      security:
      - oauth2_implicit:
        - campaign_data
      - oauth2_access_code:
        - campaign_data
      x-authorization-privileges:
      - ui:campaign:metrics
      x-sdk-methodName: getEmailCampaignActivityReport
components:
  schemas:
    ClicksTrackingActivitiesPage:
      type: object
      required:
      - tracking_activities
      properties:
        tracking_activities:
          type: array
          description: The list of click tracking activities
          items:
            $ref: '#/components/schemas/ClicksTrackingActivity'
        _links:
          description: HAL property that contains next link if applicable.
          $ref: '#/components/schemas/reportingLinks'
    BulkEmailCampaignSummariesPercents:
      type: object
      properties:
        click:
          type: number
          example: 43.0
          description: Aggregated click rate for campaigns on the current page.
        open:
          type: number
          example: 12.0
          description: Aggregated open rate for campaigns on the current page.
        did_not_open:
          type: number
          example: 23.0
          description: Aggregated did-not-open rate for campaigns on the current page.
        bounce:
          type: number
          example: 21.0
          description: Aggregated bounce rate for campaigns on the current page.
        unsubscribe:
          type: number
          example: 2.0
          description: Aggregated unsubscribe (optout) rate for campaigns on the current page.
    CampaignStatsQueryResultEmail:
      type: object
      properties:
        errors:
          type: array
          description: An array of errors indicating any partial failures in the query.
          items:
            $ref: '#/components/schemas/StatsError'
        results:
          type: array
          description: An array of results listing statistics for each requested <code>campaign_id</code>.
          items:
            $ref: '#/components/schemas/CampaignStatsResultGenericStatsEmailPercentsEmail'
    BulkEmailCampaignSummary:
      type: object
      required:
      - campaign_id
      properties:
        campaign_id:
          type: string
          example: 82ee2c37-c8f8-4974-9560-ef93ad51d58z
          description: The ID that uniquely identifies an email campaign.
        campaign_type:
          type: string
          example: Newsletter
          description: Identifies the email campaign type.
        last_sent_date:
          type: string
          format: date-time
          example: '2019-04-25T11:08:00.000Z'
          description: The date and time that the email campaign was last sent.
        unique_counts:
          description: The total number of times each unique contact interacted with a tracked email campaign activity.
          $ref: '#/components/schemas/UniqueEmailCounts'
    ForwardsTrackingActivitiesPage:
      type: object
      required:
      - tracking_activities
      properties:
        tracking_activities:
          type: array
          description: 'The list of contacts that forwarded the specified email campaign activity. '
          items:
            $ref: '#/components/schemas/ForwardsTrackingActivity'
        _links:
          description: HAL property that contains the next link, if applicable.
          $ref: '#/components/schemas/reportingLinks'
    ForwardsTrackingActivity:
      type: object
      required:
      - campaign_activity_id
      - contact_id
      - created_time
      - email_address
      - tracking_activity_type
      properties:
        contact_id:
          type: string
          format: uuid
          example: a2fdc285-f4bc-408c-9e64-f3f89038ec82
          description: The ID that uniquely identifies a contact.
        campaign_activity_id:
          type: string
          format: uuid
          example: 98edac88-f4bc-408c-9e64-acd890384231
          description: The ID that uniquely identifies the email campaign activity.
        tracking_activity_type:
          type: string
          example: em_forwards
          description: The type of report tracking activity that is associated with the specified <code>campaign_activity_id</code>.
        email_address:
          type: string
          example: maddieb@gmail.com
          description: The contact's email address.
        first_name:
          type: string
          example: Maddie
          description: The first name of the contact.
        last_name:
          type: string
          example: Brown
          description: The last name of the contact.
        created_time:
          type: string
          format: date-time
          example: '2019-04-25T11:08:00.000Z'
          description: The time that the contact f

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