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: $.