Constant Contact · Capability
AppConnect V3 — Email Reporting
AppConnect V3 — Email Reporting. 12 operations. Lead operation: GET an Email Links Report. Self-contained Naftiko capability covering one Constant Contact business surface.
What You Can Do
GET
Getcampaignactivitylinkstats
— GET an Email Links Report
/v1/reports/email-reports/{campaign-activity-id}/links
GET
Getbounces
— GET an Email Bounces Report
/v1/reports/email-reports/{campaign-activity-id}/tracking/bounces
GET
Getclicks
— GET an Email Clicks Report
/v1/reports/email-reports/{campaign-activity-id}/tracking/clicks
GET
Getdidnotopens
— GET an Email Did Not Opens Report
/v1/reports/email-reports/{campaign-activity-id}/tracking/didnotopens
GET
Getforwards
— GET an Email Forwards Report
/v1/reports/email-reports/{campaign-activity-id}/tracking/forwards
GET
Getopens
— GET an Email Opens Report
/v1/reports/email-reports/{campaign-activity-id}/tracking/opens
GET
Getoptouts
— GET an Email Opt-outs Report
/v1/reports/email-reports/{campaign-activity-id}/tracking/optouts
GET
Getsends
— GET an Email Sends Report
/v1/reports/email-reports/{campaign-activity-id}/tracking/sends
GET
Getuniqueopens
— GET an Email Unique Opens Report
/v1/reports/email-reports/{campaign-activity-id}/tracking/unique-opens
GET
Getemailcampaignactivitysummary
— GET an Email Campaign Activity Stats Report
/v1/reports/stats/email-campaign-activities/{campaign-activity-ids}
GET
Getemailsummary
— GET an Email Campaign Stats Report
/v1/reports/stats/email-campaigns/{campaign-ids}
GET
Getallbulkemailcampaignsummaries
— GET an Email Campaigns Summary Report
/v1/reports/summary-reports/email-campaign-summaries
MCP Tools
get-email-links-report
GET an Email Links Report
read-only
idempotent
get-email-bounces-report
GET an Email Bounces Report
read-only
idempotent
get-email-clicks-report
GET an Email Clicks Report
read-only
idempotent
get-email-did-not-opens
GET an Email Did Not Opens Report
read-only
idempotent
get-email-forwards-report
GET an Email Forwards Report
read-only
idempotent
get-email-opens-report
GET an Email Opens Report
read-only
idempotent
get-email-opt-outs-report
GET an Email Opt-outs Report
read-only
idempotent
get-email-sends-report
GET an Email Sends Report
read-only
idempotent
get-email-unique-opens-report
GET an Email Unique Opens Report
read-only
idempotent
get-email-campaign-activity-stats
GET an Email Campaign Activity Stats Report
read-only
idempotent
get-email-campaign-stats-report
GET an Email Campaign Stats Report
read-only
idempotent
get-email-campaigns-summary-report
GET an Email Campaigns Summary Report
read-only
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: AppConnect V3 — Email Reporting
description: 'AppConnect V3 — Email Reporting. 12 operations. Lead operation: GET an Email Links Report. Self-contained
Naftiko capability covering one Constant Contact business surface.'
tags:
- Constant Contact
- Email Reporting
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
CONSTANT_CONTACT_API_KEY: CONSTANT_CONTACT_API_KEY
capability:
consumes:
- type: http
namespace: v3-email-reporting
baseUri: https://api.cc.email/v3
description: AppConnect V3 — Email Reporting business capability. Self-contained, no shared references.
resources:
- name: reports-email_reports-campaign_activity_id-links
path: /reports/email_reports/{campaign_activity_id}/links
operations:
- name: getcampaignactivitylinkstats
method: GET
description: GET an Email Links Report
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: campaign_activity_id
in: path
type: string
description: The unique ID for an email campaign activity.
required: true
- name: no_clicks
in: query
type: boolean
description: Set this query parameter to `true` to return details for links that were not clicked in the response
results.
- name: reports-email_reports-campaign_activity_id-tracking-bounces
path: /reports/email_reports/{campaign_activity_id}/tracking/bounces
operations:
- name: getbounces
method: GET
description: GET an Email Bounces Report
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: campaign_activity_id
in: path
type: string
description: The ID that uniquely identifies the email campaign activity to use for this report.
required: true
- name: bounce_code
in: query
type: array
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 par
- name: limit
in: query
type: string
description: The number of tracking activities to return on a page.
- name: reports-email_reports-campaign_activity_id-tracking-clicks
path: /reports/email_reports/{campaign_activity_id}/tracking/clicks
operations:
- name: getclicks
method: GET
description: GET an Email Clicks Report
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: campaign_activity_id
in: path
type: string
description: The ID that uniquely identifies the email campaign activity to use for this report.
required: true
- name: url_id
in: query
type: integer
description: The ID that uniquely identifies a single link URL for which you want to get a clicks report.
- name: limit
in: query
type: string
description: The number of tracking activities to return on a page.
- name: reports-email_reports-campaign_activity_id-tracking-didnotopens
path: /reports/email_reports/{campaign_activity_id}/tracking/didnotopens
operations:
- name: getdidnotopens
method: GET
description: GET an Email Did Not Opens Report
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: campaign_activity_id
in: path
type: string
description: The ID that uniquely identifies the email campaign activity to use for this report.
required: true
- name: limit
in: query
type: string
description: The number of tracking activities to return on a page.
- name: reports-email_reports-campaign_activity_id-tracking-forwards
path: /reports/email_reports/{campaign_activity_id}/tracking/forwards
operations:
- name: getforwards
method: GET
description: GET an Email Forwards Report
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: campaign_activity_id
in: path
type: string
description: The ID that uniquely identifies the email campaign activity to use for this report.
required: true
- name: limit
in: query
type: string
description: The number of tracking activities to return on a page.
- name: reports-email_reports-campaign_activity_id-tracking-opens
path: /reports/email_reports/{campaign_activity_id}/tracking/opens
operations:
- name: getopens
method: GET
description: GET an Email Opens Report
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: campaign_activity_id
in: path
type: string
description: The unique ID for an email campaign activity to use for this report.
required: true
- name: limit
in: query
type: string
description: The number of tracking activities to return on a page.
- name: reports-email_reports-campaign_activity_id-tracking-optouts
path: /reports/email_reports/{campaign_activity_id}/tracking/optouts
operations:
- name: getoptouts
method: GET
description: GET an Email Opt-outs Report
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: campaign_activity_id
in: path
type: string
description: The ID that uniquely identifies the email campaign activity to use for this report.
required: true
- name: limit
in: query
type: string
description: The number of tracking activities to return on a page.
- name: reports-email_reports-campaign_activity_id-tracking-sends
path: /reports/email_reports/{campaign_activity_id}/tracking/sends
operations:
- name: getsends
method: GET
description: GET an Email Sends Report
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: campaign_activity_id
in: path
type: string
description: The unique ID for an email campaign activity to use for this report.
required: true
- name: limit
in: query
type: string
description: The number of tracking activities to return on a page.
- name: reports-email_reports-campaign_activity_id-tracking-unique_opens
path: /reports/email_reports/{campaign_activity_id}/tracking/unique_opens
operations:
- name: getuniqueopens
method: GET
description: GET an Email Unique Opens Report
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: campaign_activity_id
in: path
type: string
description: The ID that uniquely identifies the email campaign activity to use for this report.
required: true
- name: limit
in: query
type: string
description: The number of tracking activities to return on a page.
- name: reports-stats-email_campaign_activities-campaign_activity_ids
path: /reports/stats/email_campaign_activities/{campaign_activity_ids}
operations:
- name: getemailcampaignactivitysummary
method: GET
description: GET an Email Campaign Activity Stats Report
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: campaign_activity_ids
in: path
type: string
description: A comma-separated list of `campaign_activity_id`s (UUID's).
required: true
- name: reports-stats-email_campaigns-campaign_ids
path: /reports/stats/email_campaigns/{campaign_ids}
operations:
- name: getemailsummary
method: GET
description: GET an Email Campaign Stats Report
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: campaign_ids
in: path
type: string
description: A comma-separated list of `campaign_id`s (UUID's).
required: true
- name: reports-summary_reports-email_campaign_summaries
path: /reports/summary_reports/email_campaign_summaries
operations:
- name: getallbulkemailcampaignsummaries
method: GET
description: GET an Email Campaigns Summary Report
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: limit
in: query
type: string
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 pag
exposes:
- type: rest
namespace: v3-email-reporting-rest
port: 8080
description: REST adapter for AppConnect V3 — Email Reporting. One Spectral-compliant resource per consumed operation,
prefixed with /v1.
resources:
- path: /v1/reports/email-reports/{campaign-activity-id}/links
name: reports-email-reports-campaign-activity-id-links
description: REST surface for reports-email_reports-campaign_activity_id-links.
operations:
- method: GET
name: getcampaignactivitylinkstats
description: GET an Email Links Report
call: v3-email-reporting.getcampaignactivitylinkstats
with:
campaign_activity_id: rest.campaign_activity_id
no_clicks: rest.no_clicks
outputParameters:
- type: object
mapping: $.
- path: /v1/reports/email-reports/{campaign-activity-id}/tracking/bounces
name: reports-email-reports-campaign-activity-id-tracking-bounces
description: REST surface for reports-email_reports-campaign_activity_id-tracking-bounces.
operations:
- method: GET
name: getbounces
description: GET an Email Bounces Report
call: v3-email-reporting.getbounces
with:
campaign_activity_id: rest.campaign_activity_id
bounce_code: rest.bounce_code
limit: rest.limit
outputParameters:
- type: object
mapping: $.
- path: /v1/reports/email-reports/{campaign-activity-id}/tracking/clicks
name: reports-email-reports-campaign-activity-id-tracking-clicks
description: REST surface for reports-email_reports-campaign_activity_id-tracking-clicks.
operations:
- method: GET
name: getclicks
description: GET an Email Clicks Report
call: v3-email-reporting.getclicks
with:
campaign_activity_id: rest.campaign_activity_id
url_id: rest.url_id
limit: rest.limit
outputParameters:
- type: object
mapping: $.
- path: /v1/reports/email-reports/{campaign-activity-id}/tracking/didnotopens
name: reports-email-reports-campaign-activity-id-tracking-didnotopens
description: REST surface for reports-email_reports-campaign_activity_id-tracking-didnotopens.
operations:
- method: GET
name: getdidnotopens
description: GET an Email Did Not Opens Report
call: v3-email-reporting.getdidnotopens
with:
campaign_activity_id: rest.campaign_activity_id
limit: rest.limit
outputParameters:
- type: object
mapping: $.
- path: /v1/reports/email-reports/{campaign-activity-id}/tracking/forwards
name: reports-email-reports-campaign-activity-id-tracking-forwards
description: REST surface for reports-email_reports-campaign_activity_id-tracking-forwards.
operations:
- method: GET
name: getforwards
description: GET an Email Forwards Report
call: v3-email-reporting.getforwards
with:
campaign_activity_id: rest.campaign_activity_id
limit: rest.limit
outputParameters:
- type: object
mapping: $.
- path: /v1/reports/email-reports/{campaign-activity-id}/tracking/opens
name: reports-email-reports-campaign-activity-id-tracking-opens
description: REST surface for reports-email_reports-campaign_activity_id-tracking-opens.
operations:
- method: GET
name: getopens
description: GET an Email Opens Report
call: v3-email-reporting.getopens
with:
campaign_activity_id: rest.campaign_activity_id
limit: rest.limit
outputParameters:
- type: object
mapping: $.
- path: /v1/reports/email-reports/{campaign-activity-id}/tracking/optouts
name: reports-email-reports-campaign-activity-id-tracking-optouts
description: REST surface for reports-email_reports-campaign_activity_id-tracking-optouts.
operations:
- method: GET
name: getoptouts
description: GET an Email Opt-outs Report
call: v3-email-reporting.getoptouts
with:
campaign_activity_id: rest.campaign_activity_id
limit: rest.limit
outputParameters:
- type: object
mapping: $.
- path: /v1/reports/email-reports/{campaign-activity-id}/tracking/sends
name: reports-email-reports-campaign-activity-id-tracking-sends
description: REST surface for reports-email_reports-campaign_activity_id-tracking-sends.
operations:
- method: GET
name: getsends
description: GET an Email Sends Report
call: v3-email-reporting.getsends
with:
campaign_activity_id: rest.campaign_activity_id
limit: rest.limit
outputParameters:
- type: object
mapping: $.
- path: /v1/reports/email-reports/{campaign-activity-id}/tracking/unique-opens
name: reports-email-reports-campaign-activity-id-tracking-unique-opens
description: REST surface for reports-email_reports-campaign_activity_id-tracking-unique_opens.
operations:
- method: GET
name: getuniqueopens
description: GET an Email Unique Opens Report
call: v3-email-reporting.getuniqueopens
with:
campaign_activity_id: rest.campaign_activity_id
limit: rest.limit
outputParameters:
- type: object
mapping: $.
- path: /v1/reports/stats/email-campaign-activities/{campaign-activity-ids}
name: reports-stats-email-campaign-activities-campaign-activity-ids
description: REST surface for reports-stats-email_campaign_activities-campaign_activity_ids.
operations:
- method: GET
name: getemailcampaignactivitysummary
description: GET an Email Campaign Activity Stats Report
call: v3-email-reporting.getemailcampaignactivitysummary
with:
campaign_activity_ids: rest.campaign_activity_ids
outputParameters:
- type: object
mapping: $.
- path: /v1/reports/stats/email-campaigns/{campaign-ids}
name: reports-stats-email-campaigns-campaign-ids
description: REST surface for reports-stats-email_campaigns-campaign_ids.
operations:
- method: GET
name: getemailsummary
description: GET an Email Campaign Stats Report
call: v3-email-reporting.getemailsummary
with:
campaign_ids: rest.campaign_ids
outputParameters:
- type: object
mapping: $.
- path: /v1/reports/summary-reports/email-campaign-summaries
name: reports-summary-reports-email-campaign-summaries
description: REST surface for reports-summary_reports-email_campaign_summaries.
operations:
- method: GET
name: getallbulkemailcampaignsummaries
description: GET an Email Campaigns Summary Report
call: v3-email-reporting.getallbulkemailcampaignsummaries
with:
limit: rest.limit
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: v3-email-reporting-mcp
port: 9090
transport: http
description: MCP adapter for AppConnect V3 — Email Reporting. One tool per consumed operation, routed inline through this
capability's consumes block.
tools:
- name: get-email-links-report
description: GET an Email Links Report
hints:
readOnly: true
destructive: false
idempotent: true
call: v3-email-reporting.getcampaignactivitylinkstats
with:
campaign_activity_id: tools.campaign_activity_id
no_clicks: tools.no_clicks
outputParameters:
- type: object
mapping: $.
- name: get-email-bounces-report
description: GET an Email Bounces Report
hints:
readOnly: true
destructive: false
idempotent: true
call: v3-email-reporting.getbounces
with:
campaign_activity_id: tools.campaign_activity_id
bounce_code: tools.bounce_code
limit: tools.limit
outputParameters:
- type: object
mapping: $.
- name: get-email-clicks-report
description: GET an Email Clicks Report
hints:
readOnly: true
destructive: false
idempotent: true
call: v3-email-reporting.getclicks
with:
campaign_activity_id: tools.campaign_activity_id
url_id: tools.url_id
limit: tools.limit
outputParameters:
- type: object
mapping: $.
- name: get-email-did-not-opens
description: GET an Email Did Not Opens Report
hints:
readOnly: true
destructive: false
idempotent: true
call: v3-email-reporting.getdidnotopens
with:
campaign_activity_id: tools.campaign_activity_id
limit: tools.limit
outputParameters:
- type: object
mapping: $.
- name: get-email-forwards-report
description: GET an Email Forwards Report
hints:
readOnly: true
destructive: false
idempotent: true
call: v3-email-reporting.getforwards
with:
campaign_activity_id: tools.campaign_activity_id
limit: tools.limit
outputParameters:
- type: object
mapping: $.
- name: get-email-opens-report
description: GET an Email Opens Report
hints:
readOnly: true
destructive: false
idempotent: true
call: v3-email-reporting.getopens
with:
campaign_activity_id: tools.campaign_activity_id
limit: tools.limit
outputParameters:
- type: object
mapping: $.
- name: get-email-opt-outs-report
description: GET an Email Opt-outs Report
hints:
readOnly: true
destructive: false
idempotent: true
call: v3-email-reporting.getoptouts
with:
campaign_activity_id: tools.campaign_activity_id
limit: tools.limit
outputParameters:
- type: object
mapping: $.
- name: get-email-sends-report
description: GET an Email Sends Report
hints:
readOnly: true
destructive: false
idempotent: true
call: v3-email-reporting.getsends
with:
campaign_activity_id: tools.campaign_activity_id
limit: tools.limit
outputParameters:
- type: object
mapping: $.
- name: get-email-unique-opens-report
description: GET an Email Unique Opens Report
hints:
readOnly: true
destructive: false
idempotent: true
call: v3-email-reporting.getuniqueopens
with:
campaign_activity_id: tools.campaign_activity_id
limit: tools.limit
outputParameters:
- type: object
mapping: $.
- name: get-email-campaign-activity-stats
description: GET an Email Campaign Activity Stats Report
hints:
readOnly: true
destructive: false
idempotent: true
call: v3-email-reporting.getemailcampaignactivitysummary
with:
campaign_activity_ids: tools.campaign_activity_ids
outputParameters:
- type: object
mapping: $.
- name: get-email-campaign-stats-report
description: GET an Email Campaign Stats Report
hints:
readOnly: true
destructive: false
idempotent: true
call: v3-email-reporting.getemailsummary
with:
campaign_ids: tools.campaign_ids
outputParameters:
- type: object
mapping: $.
- name: get-email-campaigns-summary-report
description: GET an Email Campaigns Summary Report
hints:
readOnly: true
destructive: false
idempotent: true
call: v3-email-reporting.getallbulkemailcampaignsummaries
with:
limit: tools.limit
outputParameters:
- type: object
mapping: $.