Constant Contact Contacts Reporting API
Contact reporting endpoints are used to gather activity reports for campaigns sent to a contact.
Contact reporting endpoints are used to gather activity reports for campaigns sent to a contact.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/constant-contact-contacts-reporting-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 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 Contacts 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: Contacts Reporting
description: Contact reporting endpoints are used to gather activity reports for campaigns sent to a contact.
paths:
/reports/contact_reports/{contact_id}/activity_details:
get:
tags:
- Contacts Reporting
summary: GET Contact Activity Details
description: "<p>Gets the tracking activity data for a single contact, sorted in descending activity date order.</p> <p>You must chose either the `tracking_activities_list` query parameter and or the `tracking_activity_type` query parameter to specify one or more tracking activity types In the request. The `tracking_activities_list` and `tracking_activities_type` query parameters are mutually exclusive.</p>\n <table><tr><td colspan='2'>Valid tracking activity types</td></tr>\n <tr><td><b>em_sends</b></td><td>Send activities</td></tr>\n <tr><td><b>em_opens</b></td><td>Email open tracking activities</td></tr>\n <tr><td><b>em_clicks</b></td><td>Link click-through tracking activities</td></tr>\n <tr><td><b>em_bounces</b></td><td>Bounce tracking activities</td></tr>\n <tr><td><b>em_optouts</b></td><td>Opt-out tracking activities</td></tr><tr>\n <td><b>em_forwards</b></td><td>Forward to a friend tracking activities</td></tr>\n <tr><td><b>p_contact_open</b></td><td>Landing page opens</td></tr>\n <tr><td><b>p_contact_click</b></td><td>Landing page clicks</td></tr>\n <tr><td><b>p_contact_add</b></td><td>Landing page adds</td></tr>\n <tr><td><b>p_contact_update </b></td><td> Landing page updates</td></tr>\n </table>"
operationId: getContactTracking
parameters:
- name: contact_id
in: path
description: The contact's ID for which tracking activity data is requested.
required: true
x-example: aa9ff7b0-478d-11e6-8059-00163e3c8e19
schema:
type: string
- name: tracking_activities_list
in: query
description: Specify one or more tracking activity types to include as a comma-delimited string. The `tracking_activities_list` and `tracking_activities_type` query parameters are mutually exclusive.
required: false
x-example: em_clicks,em_opens
style: form
explode: true
schema:
type: string
format: csv
items:
type: string
enum:
- em_sends
- em_opens
- em_clicks
- em_bounces
- em_optouts
- em_forwards
- p_contact_open
- p_contact_click
- p_contact_add
- p_contact_update
- name: tracking_activity_type
in: query
description: Specify one or more tracking activity types to include as an array. The `tracking_activities_list` and `tracking_activities_type` query parameters are mutually exclusive.
required: false
x-example: '`tracking_activity_type=em_sends&tracking_activity_type=em_opens`'
schema:
type: array
items:
type: string
- name: include_campaign_activity_names
in: query
description: Default (`true`) returns campaign activity names in the results. Not including campaign activity names in the results (`false`), is more efficient.
required: false
x-example: 'true'
schema:
type: boolean
default: true
- name: limit
in: query
description: The number of tracking activities to return in a single page. Valid values are 1 to 100. Default is 100.
required: false
x-example: '20'
schema:
type: string
default: '100'
maximum: 100
minimum: 1
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/ContactTrackingActivitiesPage'
'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:
- contact_data
- oauth2_access_code:
- contact_data
x-authorization-privileges:
- ui:campaign:metrics
x-sdk-methodName: getContactTrackingReport
/reports/contact_reports/{contact_id}/open_and_click_rates:
get:
tags:
- Contacts Reporting
summary: GET Average Open and Click Rates
description: <p>Gets the average open and click rate for a given account and contact.<p>Looks at all tracking activities for bulk emails from a given contact over the given date range. Range cannot exceed 5 years.</p><p>Returns the rates and the number of campaign activities that were included in the calculation.</p><p>If no activities fall into the given date range, all rates will return 0 and the number of included activities will be 0.</p>
operationId: getContactOpenClickRate
parameters:
- name: contact_id
in: path
description: The contact id which is requesting tracking activity data (e.g. aa9ff7b0-478d-11e6-8059-00163e3c8e19)
required: true
x-example: aa9ff7b0-478d-11e6-8059-00163e3c8e19
schema:
type: string
- name: start
in: query
description: 'The starting date, in ISO 8601 format, to use to get campaigns. For example: 2019-01-01T00:00:00-0500.'
required: true
schema:
type: string
- name: end
in: query
description: 'The ending date, in ISO 8601 format, to use to get campaigns. For example: 2019-12-01T00:00:00-0500.'
required: true
schema:
type: string
responses:
'200':
description: Request Successful
content:
application/json:
schema:
$ref: '#/components/schemas/ContactOpenAndClickRates'
'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:
- contact_data
- oauth2_access_code:
- contact_data
x-authorization-privileges:
- ui:campaign:metrics
x-sdk-methodName: getContactOpenClickRateReport
/reports/contact_reports/{contact_id}/activity_summary:
get:
tags:
- Contacts Reporting
summary: GET Contact Action Summary
description: Get a list of the recent emails (aka, campaign activities) sent to a specific contact and a summary of the actions the contact took on that email for the most recent 200 campaigns.
operationId: getContactTrackingCount
parameters:
- name: contact_id
in: path
description: The contact id which is requesting tracking activity data (e.g. aa9ff7b0-478d-11e6-8059-00163e3c8e19)
required: true
x-example: aa9ff7b0-478d-11e6-8059-00163e3c8e19
schema:
type: string
- name: start
in: query
description: 'The starting date, in ISO 8601 format, to use to get campaigns. For example: 2019-01-01T00:00:00-0500.'
required: true
schema:
type: string
- name: end
in: query
description: 'The ending date, in ISO 8601 format, to use to get campaigns. For example: 2019-12-01T00:00:00-0500.'
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/ContactCampaignActivitiesSummary'
'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:
- contact_data
- oauth2_access_code:
- contact_data
x-authorization-privileges:
- ui:campaign:metrics
x-sdk-methodName: getContactTrackingCountReport
components:
schemas:
reportingNext:
type: object
properties:
href:
type: string
description: The next link in the page or null if there are no additional pages.
ContactTrackingActivitiesPage:
type: object
properties:
tracking_activities:
type: array
description: The list of contact tracking activities in descending date order.
items:
$ref: '#/components/schemas/ContactTrackingActivity'
_links:
description: The next link if more contact tracking activities are available.
$ref: '#/components/schemas/reportingLinks'
description: A page of tracking activities for a contact that can include sends, opens, clicks, bounces, opt-outs and forwards to a friend. If it exists, a link to the next page of tracking activities is provided.
CampaignActivitySummary:
type: object
required:
- campaign_activity_id
- em_bounces
- em_clicks
- em_forwards
- em_opens
- em_sends
- em_unsubscribes
- start_on
properties:
campaign_activity_id:
type: string
format: uuid
description: The unique id of the activity for an e-mail campaign.
start_on:
type: string
format: date-time
description: The last date at which the email was sent to this contact.
em_bounces:
type: integer
format: int32
description: The number of times the email has bounced for this contact.
em_clicks:
type: integer
format: int32
description: The number of times this contact has clicked a link in this email.
em_forwards:
type: integer
format: int32
description: The number of times this contact has forwarded this email.
em_opens:
type: integer
format: int32
description: The number of times this contact has opened this email.
em_sends:
type: integer
format: int32
description: The number of times the email was sent to this contact.
em_unsubscribes:
type: integer
format: int32
description: The number of times this contact has opted out.
ContactCampaignActivitiesSummary:
type: object
required:
- campaign_activities
- contact_id
properties:
contact_id:
type: string
format: uuid
example: 71600990-908b-11e6-907f-00166bff25
description: Unique id of the contact that will have their activity summarized.
campaign_activities:
type: array
description: A summary of all the actions for a contact.
items:
$ref: '#/components/schemas/CampaignActivitySummary'
_links:
description: The next link if more summaries of activities are available.
$ref: '#/components/schemas/reportingLinks'
reportingLinks:
type: object
properties:
next:
description: Contains the next page link if it is available.
$ref: '#/components/schemas/reportingNext'
ContactTrackingActivity:
type: object
required:
- campaign_activity_id
- contact_id
properties:
contact_id:
type: string
format: uuid
example: 71600990-908b-11e6-907f-00166bff25
description: The contact ID.
campaign_activity_id:
type: string
format: uuid
example: 010a0-1234-5678-9012-1100a0c1ab2a
description: The unique ID of the activity for an e-mail campaign.
created_time:
type: string
format: date-time
example: '2017-04-02T04:08:00.000Z'
description: The time the tracking activity occurred
tracking_activity_type:
type: string
example: em_sends
description: The types of the tracking activities included in the request. For example, sends, opens, clicks, bounces, opt-outs, or forwards.
campaign_activity_name:
type: string
example: April DLCV Newsletter
description: The campaign activity name.
description: The base contact tracking activity representing sends, opt-outs and forwards to a friend. The basic information provided includes the campaign activity ID, tracking activity type, and time the tracking activity occurred.
ContactOpenAndClickRates:
type: object
required:
- average_click_rate
- average_open_rate
- contact_id
- included_activities_count
properties:
contact_id:
type: string
format: uuid
example: 71600990-908b-11e6-907f-00166bff25
description: The unique ID of the contact for which the report is being generated.
included_activities_count:
type: integer
format: int32
example: 10
description: The number of activities included in the calculation.
average_open_rate:
type: number
format: double
example: 0.6
description: The average rate the contact opened emails sent to them.
average_click_rate:
type: number
format: double
example: 0.6
description: The average rate the contact clicked on links in emails sent to them.
description: The average click and open rates for a provided contact. The basic information provided is contact id, open rate, click rate, and emails included in the calculation.
securitySchemes:
oauth2_implicit:
type: oauth2
flows:
implicit:
scopes:
contact_data: Read or modify contact data.
campaign_data: Read or modify email campaign data.
account_read: Read account data.
account_update: Modify account data.
billing_data: Read or modify billing data.
authorizationUrl: https://authz.constantcontact.com/oauth2/default/v1/authorize
oauth2_access_code:
type: oauth2
flows:
authorizationCode:
scopes:
contact_data: Read or modify contact data.
campaign_data: Read or modify email campaign data.
account_read: Read account data.
account_update: Modify account data.
billing_data: Read or modify billing data.
authorizationUrl: https://authz.constantcontact.com/oauth2/default/v1/authorize
tokenUrl: https://authz.constantcontact.com/oauth2/default/v1/token
ctctPartnerAuthorizer:
type: oauth2
flows:
implicit:
scopes:
v3api/general.partner: Access to general partner API methods
authorizationUrl: https://v3api-partner.auth.us-east-1.amazoncognito.com/oauth2/token
description: Partner Authentication
api_key:
type: apiKey
name: x-api-key
in: header