Constant Contact · Capability

AppConnect V3 — Landing Pages Reporting

AppConnect V3 — Landing Pages Reporting. 6 operations. Lead operation: GET a Contacts Opens Landing Page Report. Self-contained Naftiko capability covering one Constant Contact business surface.

Run with Naftiko Constant ContactLanding Pages Reporting

What You Can Do

GET
Getcontactopens — GET a Contacts Opens Landing Page Report
/v1/reports/landing-pages/campaign-details/{campaign-activity-id}/p-contact-opens
GET
Getcontactadds — GET a Unique Contacts Adds Landing Page Report
/v1/reports/landing-pages/campaign-details/{campaign-activity-id}/p-unique-contact-adds
GET
Getuniquecontactclicks — GET a Unique Contacts Clicks Landing Page Report
/v1/reports/landing-pages/campaign-details/{campaign-activity-id}/p-unique-contact-clicks
GET
Getuniquecontactopens — GET a Unique Contacts Opens Landing Page Report
/v1/reports/landing-pages/campaign-details/{campaign-activity-id}/p-unique-contact-opens
GET
Getuniquecontactsmsoptins — GET a Unique Contacts SMS Opt-In Landing Page Report
/v1/reports/landing-pages/campaign-details/{campaign-activity-id}/p-unique-contact-sms-optins
GET
Getuniquecontactupdates — GET a Unique Contacts Updates Landing Page Report
/v1/reports/landing-pages/campaign-details/{campaign-activity-id}/p-unique-contact-updates

MCP Tools

get-contacts-opens-landing-page

GET a Contacts Opens Landing Page Report

read-only idempotent
get-unique-contacts-adds-landing

GET a Unique Contacts Adds Landing Page Report

read-only idempotent
get-unique-contacts-clicks-landing

GET a Unique Contacts Clicks Landing Page Report

read-only idempotent
get-unique-contacts-opens-landing

GET a Unique Contacts Opens Landing Page Report

read-only idempotent
get-unique-contacts-sms-opt

GET a Unique Contacts SMS Opt-In Landing Page Report

read-only idempotent
get-unique-contacts-updates-landing

GET a Unique Contacts Updates Landing Page Report

read-only idempotent

Capability Spec

v3-landing-pages-reporting.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: AppConnect V3 — Landing Pages Reporting
  description: 'AppConnect V3 — Landing Pages Reporting. 6 operations. Lead operation: GET a Contacts Opens Landing Page Report.
    Self-contained Naftiko capability covering one Constant Contact business surface.'
  tags:
  - Constant Contact
  - Landing Pages 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-landing-pages-reporting
    baseUri: https://api.cc.email/v3
    description: AppConnect V3 — Landing Pages Reporting business capability. Self-contained, no shared references.
    resources:
    - name: reports-landing_pages-campaign_details-campaign_activity_id-p_contact_opens
      path: /reports/landing_pages/campaign_details/{campaign_activity_id}/p_contact_opens
      operations:
      - name: getcontactopens
        method: GET
        description: GET a Contacts Opens Landing Page Report
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: campaign_activity_id
          in: path
          type: string
          description: The landing page `campaign_activity_id` (UUID's) to use to get unique contact open results.
          required: true
        - name: limit
          in: query
          type: string
          description: Use to limit the number of contact tracking activities to return on a single page. The default is `50`
            and the maximum is `500` per page.
        - name: contacts_filter
          in: query
          type: string
          description: Use to filter the results to only include contacts that contain a certain value. This parameter does
            full and partial matches and applies to the contact first n
    - name: reports-landing_pages-campaign_details-campaign_activity_id-p_unique_contact_add
      path: /reports/landing_pages/campaign_details/{campaign_activity_id}/p_unique_contact_adds
      operations:
      - name: getcontactadds
        method: GET
        description: GET a Unique Contacts Adds Landing Page Report
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: campaign_activity_id
          in: path
          type: string
          description: The landing page `campaign_activity_id` (UUID's) to use to get unique contact results.
          required: true
        - name: limit
          in: query
          type: string
          description: Use to limit the number of contact tracking activities to return on a single page. The default is `50`
            and the maximum is `500` per page.
        - name: contacts_filter
          in: query
          type: string
          description: Use to filter the results to only include contacts that contain a certain value. This parameter does
            full and partial matches and applies to the contact first n
    - name: reports-landing_pages-campaign_details-campaign_activity_id-p_unique_contact_cli
      path: /reports/landing_pages/campaign_details/{campaign_activity_id}/p_unique_contact_clicks
      operations:
      - name: getuniquecontactclicks
        method: GET
        description: GET a Unique Contacts Clicks Landing Page Report
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: campaign_activity_id
          in: path
          type: string
          description: The landing page `campaign_activity_id` (UUID's) to use to get unique contact click results.
          required: true
        - name: limit
          in: query
          type: string
          description: Use to limit the number of contact tracking activities to return on a single page. The default is `50`
            and the maximum is `500` per page.
        - name: contacts_filter
          in: query
          type: string
          description: 'Use to filter the results to return only contacts that match a contacts full or partial first or last
            name, or email. For example: Josie or Jo.'
    - name: reports-landing_pages-campaign_details-campaign_activity_id-p_unique_contact_ope
      path: /reports/landing_pages/campaign_details/{campaign_activity_id}/p_unique_contact_opens
      operations:
      - name: getuniquecontactopens
        method: GET
        description: GET a Unique Contacts Opens Landing Page Report
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: campaign_activity_id
          in: path
          type: string
          description: The landing page `campaign_activity_id` (UUID's) to use to get unique contact open results.
          required: true
        - name: limit
          in: query
          type: string
          description: Use to limit the number of contact tracking activities to return on a single page. The default is `50`
            and the maximum is `500` per page.
        - name: contacts_filter
          in: query
          type: string
          description: Use to filter the results to only include contacts that contain a certain value. This parameter does
            full and partial matches and applies to the contact first n
    - name: reports-landing_pages-campaign_details-campaign_activity_id-p_unique_contact_sms
      path: /reports/landing_pages/campaign_details/{campaign_activity_id}/p_unique_contact_sms_optins
      operations:
      - name: getuniquecontactsmsoptins
        method: GET
        description: GET a Unique Contacts SMS Opt-In Landing Page Report
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: campaign_activity_id
          in: path
          type: string
          description: The landing page `campaign_activity_id` (UUID's) to use to get unique contact click results.
          required: true
        - name: limit
          in: query
          type: string
          description: Use to limit the number of contact tracking activities to return on a single page. The default is `50`
            and the maximum is `500` per page.
        - name: contacts_filter
          in: query
          type: string
          description: 'Use to filter the results to return only contacts that match a contacts full or partial first or last
            name, or email. For example: Josie or Jo.'
    - name: reports-landing_pages-campaign_details-campaign_activity_id-p_unique_contact_upd
      path: /reports/landing_pages/campaign_details/{campaign_activity_id}/p_unique_contact_updates
      operations:
      - name: getuniquecontactupdates
        method: GET
        description: GET a Unique Contacts Updates Landing Page Report
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: campaign_activity_id
          in: path
          type: string
          description: The landing page `campaign_activity_id` (UUID's) to use to get unique contact open results.
          required: true
        - name: limit
          in: query
          type: string
          description: Use to limit the number of contact tracking activities to return on a single page. The default is `50`
            and the maximum is `500` per page.
        - name: contacts_filter
          in: query
          type: string
          description: Use to filter the results to only include contacts that contain a certain value. This parameter does
            full and partial matches and applies to the contact first n
  exposes:
  - type: rest
    namespace: v3-landing-pages-reporting-rest
    port: 8080
    description: REST adapter for AppConnect V3 — Landing Pages Reporting. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/reports/landing-pages/campaign-details/{campaign-activity-id}/p-contact-opens
      name: reports-landing-pages-campaign-details-campaign-activity-id-p-contact-opens
      description: REST surface for reports-landing_pages-campaign_details-campaign_activity_id-p_contact_opens.
      operations:
      - method: GET
        name: getcontactopens
        description: GET a Contacts Opens Landing Page Report
        call: v3-landing-pages-reporting.getcontactopens
        with:
          campaign_activity_id: rest.campaign_activity_id
          limit: rest.limit
          contacts_filter: rest.contacts_filter
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/reports/landing-pages/campaign-details/{campaign-activity-id}/p-unique-contact-adds
      name: reports-landing-pages-campaign-details-campaign-activity-id-p-unique-contact-add
      description: REST surface for reports-landing_pages-campaign_details-campaign_activity_id-p_unique_contact_add.
      operations:
      - method: GET
        name: getcontactadds
        description: GET a Unique Contacts Adds Landing Page Report
        call: v3-landing-pages-reporting.getcontactadds
        with:
          campaign_activity_id: rest.campaign_activity_id
          limit: rest.limit
          contacts_filter: rest.contacts_filter
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/reports/landing-pages/campaign-details/{campaign-activity-id}/p-unique-contact-clicks
      name: reports-landing-pages-campaign-details-campaign-activity-id-p-unique-contact-cli
      description: REST surface for reports-landing_pages-campaign_details-campaign_activity_id-p_unique_contact_cli.
      operations:
      - method: GET
        name: getuniquecontactclicks
        description: GET a Unique Contacts Clicks Landing Page Report
        call: v3-landing-pages-reporting.getuniquecontactclicks
        with:
          campaign_activity_id: rest.campaign_activity_id
          limit: rest.limit
          contacts_filter: rest.contacts_filter
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/reports/landing-pages/campaign-details/{campaign-activity-id}/p-unique-contact-opens
      name: reports-landing-pages-campaign-details-campaign-activity-id-p-unique-contact-ope
      description: REST surface for reports-landing_pages-campaign_details-campaign_activity_id-p_unique_contact_ope.
      operations:
      - method: GET
        name: getuniquecontactopens
        description: GET a Unique Contacts Opens Landing Page Report
        call: v3-landing-pages-reporting.getuniquecontactopens
        with:
          campaign_activity_id: rest.campaign_activity_id
          limit: rest.limit
          contacts_filter: rest.contacts_filter
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/reports/landing-pages/campaign-details/{campaign-activity-id}/p-unique-contact-sms-optins
      name: reports-landing-pages-campaign-details-campaign-activity-id-p-unique-contact-sms
      description: REST surface for reports-landing_pages-campaign_details-campaign_activity_id-p_unique_contact_sms.
      operations:
      - method: GET
        name: getuniquecontactsmsoptins
        description: GET a Unique Contacts SMS Opt-In Landing Page Report
        call: v3-landing-pages-reporting.getuniquecontactsmsoptins
        with:
          campaign_activity_id: rest.campaign_activity_id
          limit: rest.limit
          contacts_filter: rest.contacts_filter
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/reports/landing-pages/campaign-details/{campaign-activity-id}/p-unique-contact-updates
      name: reports-landing-pages-campaign-details-campaign-activity-id-p-unique-contact-upd
      description: REST surface for reports-landing_pages-campaign_details-campaign_activity_id-p_unique_contact_upd.
      operations:
      - method: GET
        name: getuniquecontactupdates
        description: GET a Unique Contacts Updates Landing Page Report
        call: v3-landing-pages-reporting.getuniquecontactupdates
        with:
          campaign_activity_id: rest.campaign_activity_id
          limit: rest.limit
          contacts_filter: rest.contacts_filter
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: v3-landing-pages-reporting-mcp
    port: 9090
    transport: http
    description: MCP adapter for AppConnect V3 — Landing Pages Reporting. One tool per consumed operation, routed inline through
      this capability's consumes block.
    tools:
    - name: get-contacts-opens-landing-page
      description: GET a Contacts Opens Landing Page Report
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: v3-landing-pages-reporting.getcontactopens
      with:
        campaign_activity_id: tools.campaign_activity_id
        limit: tools.limit
        contacts_filter: tools.contacts_filter
      outputParameters:
      - type: object
        mapping: $.
    - name: get-unique-contacts-adds-landing
      description: GET a Unique Contacts Adds Landing Page Report
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: v3-landing-pages-reporting.getcontactadds
      with:
        campaign_activity_id: tools.campaign_activity_id
        limit: tools.limit
        contacts_filter: tools.contacts_filter
      outputParameters:
      - type: object
        mapping: $.
    - name: get-unique-contacts-clicks-landing
      description: GET a Unique Contacts Clicks Landing Page Report
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: v3-landing-pages-reporting.getuniquecontactclicks
      with:
        campaign_activity_id: tools.campaign_activity_id
        limit: tools.limit
        contacts_filter: tools.contacts_filter
      outputParameters:
      - type: object
        mapping: $.
    - name: get-unique-contacts-opens-landing
      description: GET a Unique Contacts Opens Landing Page Report
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: v3-landing-pages-reporting.getuniquecontactopens
      with:
        campaign_activity_id: tools.campaign_activity_id
        limit: tools.limit
        contacts_filter: tools.contacts_filter
      outputParameters:
      - type: object
        mapping: $.
    - name: get-unique-contacts-sms-opt
      description: GET a Unique Contacts SMS Opt-In Landing Page Report
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: v3-landing-pages-reporting.getuniquecontactsmsoptins
      with:
        campaign_activity_id: tools.campaign_activity_id
        limit: tools.limit
        contacts_filter: tools.contacts_filter
      outputParameters:
      - type: object
        mapping: $.
    - name: get-unique-contacts-updates-landing
      description: GET a Unique Contacts Updates Landing Page Report
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: v3-landing-pages-reporting.getuniquecontactupdates
      with:
        campaign_activity_id: tools.campaign_activity_id
        limit: tools.limit
        contacts_filter: tools.contacts_filter
      outputParameters:
      - type: object
        mapping: $.