Constant Contact Email Reporting API
Use the email reporting endpoints and methods to get reporting data for email campaigns you sent to contacts.
Use the email reporting endpoints and methods to get reporting data for email campaigns you sent to contacts.
swagger: '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.149
title: AppConnect V3 Account Services Email Reporting API
contact:
name: webservices@constantcontact.com
license:
name: Private
url: https://www.constantcontact.com/legal/terms-of-use
host: api.cc.email
basePath: /v3
schemes:
- https
consumes:
- application/json
produces:
- application/json
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
consumes:
- application/json
produces:
- application/json
parameters:
- name: campaign_activity_id
in: path
description: The unique ID for an email campaign activity.
required: true
type: string
format: uuid
x-example: 8892baf9-970a-4de6-8400-fa4ec461987c
- 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
type: boolean
default: false
x-example: 'true'
responses:
'200':
description: Request was successful
schema:
$ref: '#/definitions/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
consumes:
- application/json
produces:
- application/json
parameters:
- name: campaign_activity_id
in: path
description: The unique ID for an email campaign activity to use for this report.
required: true
type: string
format: uuid
x-example: 8892baf9-970a-4de6-8400-fa4ec461987c
- name: limit
in: query
description: The number of tracking activities to return on a page.
required: false
type: string
default: '500'
maximum: 500
minimum: 1
responses:
'200':
description: Request was successful
schema:
$ref: '#/definitions/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
consumes:
- application/json
produces:
- application/json
parameters:
- name: campaign_activity_id
in: path
description: The unique ID for an email campaign activity to use for this report.
required: true
type: string
format: uuid
x-example: 8892baf9-970a-4de6-8400-fa4ec461987c
- name: limit
in: query
description: The number of tracking activities to return on a page.
required: false
type: string
default: '500'
maximum: 500
minimum: 1
responses:
'200':
description: Request was successful
schema:
$ref: '#/definitions/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
consumes:
- application/json
produces:
- application/json
parameters:
- name: campaign_activity_id
in: path
description: The ID that uniquely identifies the email campaign activity to use for this report.
required: true
type: string
format: uuid
x-example: 8892baf9-970a-4de6-8400-fa4ec461987c
- name: limit
in: query
description: The number of tracking activities to return on a page.
required: false
type: string
default: '500'
maximum: 500
minimum: 1
responses:
'200':
description: Request was successful
schema:
$ref: '#/definitions/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
consumes:
- application/json
produces:
- application/json
parameters:
- name: campaign_activity_id
in: path
description: The ID that uniquely identifies the email campaign activity to use for this report.
required: true
type: string
format: uuid
x-example: 8892baf9-970a-4de6-8400-fa4ec461987c
- name: limit
in: query
description: The number of tracking activities to return on a page.
required: false
type: string
default: '500'
maximum: 500
minimum: 1
responses:
'200':
description: Request was successful
schema:
$ref: '#/definitions/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
consumes:
- application/json
produces:
- application/json
parameters:
- name: campaign_activity_id
in: path
description: The ID that uniquely identifies the email campaign activity to use for this report.
required: true
type: string
format: uuid
x-example: c8cdf384-15ca-4dcc-9b6f-4c91121fdc23
- 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
type: integer
format: int64
x-example: '49920742166'
- name: limit
in: query
description: The number of tracking activities to return on a page.
required: false
type: string
default: '500'
maximum: 500
minimum: 1
responses:
'200':
description: Request was successful
schema:
$ref: '#/definitions/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
consumes:
- application/json
produces:
- application/json
parameters:
- name: campaign_activity_id
in: path
description: The ID that uniquely identifies the email campaign activity to use for this report.
required: true
type: string
format: uuid
- name: limit
in: query
description: The number of tracking activities to return on a page.
required: false
type: string
default: '500'
maximum: 500
minimum: 1
responses:
'200':
description: Request was successful
schema:
$ref: '#/definitions/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
consumes:
- application/json
produces:
- application/json
parameters:
- name: campaign_activity_id
in: path
description: The ID that uniquely identifies the email campaign activity to use for this report.
required: true
type: string
format: uuid
- name: limit
in: query
description: The number of tracking activities to return on a page.
required: false
type: string
default: '500'
maximum: 500
minimum: 1
responses:
'200':
description: Request was successful
schema:
$ref: '#/definitions/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
consumes:
- application/json
produces:
- application/json
parameters:
- name: campaign_activity_id
in: path
description: The ID that uniquely identifies the email campaign activity to use for this report.
required: true
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
type: array
items:
type: string
enum:
- B
- D
- F
- S
- V
- X
- Z
collectionFormat: multi
- name: limit
in: query
description: The number of tracking activities to return on a page.
required: false
type: string
default: '500'
maximum: 500
minimum: 1
responses:
'200':
description: Request was successful
schema:
$ref: '#/definitions/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
consumes:
- application/json
produces:
- application/json
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
type: string
default: '50'
x-example: '100'
responses:
'200':
description: Request was successful.
schema:
$ref: '#/definitions/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
consumes:
- application/json
produces:
- application/json
parameters:
- name: campaign_ids
in: path
description: A comma-separated list of `campaign_id`s (UUID's).
required: true
type: string
maximum: 150
x-example: 82ee2c37-c8f8-4974-9560-ef93ad51d58z
responses:
'200':
description: Request was successful.
schema:
$ref: '#/definitions/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
consumes:
- application/json
produces:
- application/json
parameters:
- name: campaign_activity_ids
in: path
description: A comma-separated list of `campaign_activity_id`s (UUID's).
required: true
type: string
maximum: 10
x-example: 82ee2c37-c8f8-4974-9560-ef93ad51d58z
responses:
'200':
description: Request was successful.
schema:
$ref: '#/definitions/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
definitions:
Next-2:
type: object
properties:
href:
type: string
description: The next link in the page or null if there are no additional pages.
CampaignStatsQueryResultEmail:
type: object
properties:
errors:
type: array
description: An array of errors indicating any partial failures in the query.
items:
$ref: '#/definitions/StatsError'
results:
type: array
description: An array of results listing statistics for each requested <code>campaign_id</code>.
items:
$ref: '#/definitions/CampaignStatsResultGenericStatsEmailPercentsEmail'
OpensTrackingActivity:
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 an email campaign activity.
tracking_activity_type:
type: string
example: em_opens
description: The type of tracking activity that is associated with this <code>campaign_activity_id</code> and used for reporting purposes.
email_address:
type: string
example: maddieb@gmail.com
description: The email address used to send the email campaign activity to a contact.
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.
device_type:
type: string
example: computer
description: The type of device that the contact used to open the email campaign activity.
created_time:
type: string
format: date-time
example: '2019-04-25T11:08:00.000Z'
description: The date and time that the contact opened the email campaign activity.
deleted_at:
type: string
format: date
example: '2015-08-10'
description: If applicable, displays the date that the contact was deleted.
CampaignStatsResultGenericStatsEmailPercentsEmail:
type: object
properties:
campaign_id:
type: string
example: 82ee2c37-c8f8-4974-9560-ef93ad51d58z
description: The ID that uniquely identifies the campaign (UUID).
stats:
description: Key-value pairs of campaign related statistics.
$ref: '#/definitions/StatsEmail'
percents:
description: Key-value pairs of campaign related percentages.
$ref: '#/definitions/PercentsEmail'
last_refresh_time:
type: string
format: date-time
example: '2015-08-25T22:00:09.908Z'
description: The date and time that the campaign stats were last refreshed.
OptoutsTrackingActivity:
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_optouts
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.
opt_out_reason:
type: string
example: The content is not what I expected
description: The opt-out reason, if the contact entered a reason.
created_time:
type: string
format: date-time
example: '2019-04-25T11:08:00.000Z'
description: The time that the contact chose to opt-out from receiving future email campaign activities.
deleted_at:
type: string
format: date
example: '2015-08-10'
descr
# --- truncated at 32 KB (63 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/constant-contact/refs/heads/main/openapi/constant-contact-email-reporting-api-openapi.yml