naftiko: 1.0.0-alpha2 info: label: Coveo Usage Analytics Write API — Analytics API - Version 15 description: 'Coveo Usage Analytics Write API — Analytics API - Version 15. 10 operations. Lead operation: Log Click Event via POST. Self-contained Naftiko capability covering one Coveo business surface.' tags: - Coveo - Usage Analytics Write - Analytics API - Version 15 created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: COVEO_SEARCH_TOKEN: COVEO_SEARCH_TOKEN capability: consumes: - type: http namespace: usage-analytics-write-analytics-api-version-15 baseUri: https://analytics.cloud.coveo.com/rest/ua description: Coveo Usage Analytics Write API — Analytics API - Version 15 business capability. Self-contained, no shared references. authentication: type: bearer token: '{{env.COVEO_SEARCH_TOKEN}}' resources: - name: v15-analytics-click path: /v15/analytics/click operations: - name: postv15analyticsclick method: POST description: Log Click Event via POST outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: org in: query type: string description: The name of the organization (Coveo Cloud V2 only) - name: visitor in: query type: string description: '''''''DEPRECATED'''''' The `clientId` parameter should be used instead of `visitorId` in the event payload to capture the visitor identifier. The unique identifier of' - name: prioritizeVisitorParameter in: query type: boolean description: '''''''DEPRECATED'''''' The `clientId` parameter should be used instead of `visitorId` in the event payload to capture the visitor identifier. Whether to force the ser' - name: body in: body type: object description: Request body (JSON). required: true - name: v15-analytics-collect path: /v15/analytics/collect operations: - name: postv15analyticscollect method: POST description: Collect GA-Style Events outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: v15-analytics-custom path: /v15/analytics/custom operations: - name: postv15analyticscustom method: POST description: Log Custom Event via POST outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: org in: query type: string description: The name of the organization (Coveo Cloud V2 only) - name: visitor in: query type: string description: '''''''DEPRECATED'''''' The `clientId` parameter should be used instead of `visitorId` in the event payload to capture the visitor identifier. The unique identifier of' - name: prioritizeVisitorParameter in: query type: boolean description: '''''''DEPRECATED'''''' The `clientId` parameter should be used instead of `visitorId` in the event payload to capture the visitor identifier. Whether to force the ser' - name: body in: body type: object description: Request body (JSON). required: true - name: v15-analytics-monitoring-health path: /v15/analytics/monitoring/health operations: - name: getv15analyticsmonitoringhealth method: GET description: Get Service Status outputRawFormat: json outputParameters: - name: result type: object value: $. - name: v15-analytics-search path: /v15/analytics/search operations: - name: postv15analyticssearch method: POST description: Log Search Event via POST outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: org in: query type: string description: The name of the organization (Coveo Cloud V2 only) - name: visitor in: query type: string description: '''''''DEPRECATED'''''' The `clientId` parameter should be used instead of `visitorId` in the event payload to capture the visitor identifier. The unique identifier of' - name: prioritizeVisitorParameter in: query type: boolean description: '''''''DEPRECATED'''''' The `clientId` parameter should be used instead of `visitorId` in the event payload to capture the visitor identifier. Whether to force the ser' - name: body in: body type: object description: Request body (JSON). required: true - name: v15-analytics-searches path: /v15/analytics/searches operations: - name: postv15analyticssearches method: POST description: Log Search Event Batch via POST outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: org in: query type: string description: The name of the organization (Coveo Cloud V2 only) - name: visitor in: query type: string description: '''''''DEPRECATED'''''' The `clientId` parameter should be used instead of `visitorId` in the event payload to capture the visitor identifier. The unique identifier of' - name: prioritizeVisitorParameter in: query type: boolean description: '''''''DEPRECATED'''''' The `clientId` parameter should be used instead of `visitorId` in the event payload to capture the visitor identifier. Whether to force the ser' - name: body in: body type: object description: Request body (JSON). required: true - name: v15-analytics-status path: /v15/analytics/status operations: - name: getv15analyticsstatus method: GET description: Get Service Status outputRawFormat: json outputParameters: - name: result type: object value: $. - name: v15-analytics-view path: /v15/analytics/view operations: - name: postv15analyticsview method: POST description: Log View Event via POST outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: org in: query type: string description: The name of the organization (Coveo Cloud V2 only) - name: visitor in: query type: string description: '''''''DEPRECATED'''''' The `clientId` parameter should be used instead of `visitorId` in the event payload to capture the visitor identifier. The unique identifier of' - name: prioritizeVisitorParameter in: query type: boolean description: '''''''DEPRECATED'''''' The `clientId` parameter should be used instead of `visitorId` in the event payload to capture the visitor identifier. Whether to force the ser' - name: body in: body type: object description: Request body (JSON). required: true - name: v15-analytics-visit path: /v15/analytics/visit operations: - name: getv15analyticsvisit method: GET description: Get Current Visit outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: user in: query type: string description: The unique identifier of the user performing the search event. If not provided, the username will be extracted from the token. - name: org in: query type: string description: The name of the organization (Coveo Cloud V2 only) - name: visitor in: query type: string description: '''''''DEPRECATED'''''' The `clientId` parameter should be used instead of `visitorId` in the event payload to capture the visitor identifier. The unique identifier of' - name: clientId in: query type: string description: The unique identifier of the visitor. If a client id is provided, it is prioritized over any value passed for the visitor id parameter. - name: prioritizeVisitorParameter in: query type: boolean description: '''''''DEPRECATED'''''' The `clientId` parameter should be used instead of `visitorId` in the event payload to capture the visitor identifier. Whether to force the ser' - name: deletev15analyticsvisit method: DELETE description: Delete Visit Cookie outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest namespace: usage-analytics-write-analytics-api-version-15-rest port: 8080 description: REST adapter for Coveo Usage Analytics Write API — Analytics API - Version 15. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/v15/analytics/click name: v15-analytics-click description: REST surface for v15-analytics-click. operations: - method: POST name: postv15analyticsclick description: Log Click Event via POST call: usage-analytics-write-analytics-api-version-15.postv15analyticsclick with: org: rest.org visitor: rest.visitor prioritizeVisitorParameter: rest.prioritizeVisitorParameter body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v15/analytics/collect name: v15-analytics-collect description: REST surface for v15-analytics-collect. operations: - method: POST name: postv15analyticscollect description: Collect GA-Style Events call: usage-analytics-write-analytics-api-version-15.postv15analyticscollect with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v15/analytics/custom name: v15-analytics-custom description: REST surface for v15-analytics-custom. operations: - method: POST name: postv15analyticscustom description: Log Custom Event via POST call: usage-analytics-write-analytics-api-version-15.postv15analyticscustom with: org: rest.org visitor: rest.visitor prioritizeVisitorParameter: rest.prioritizeVisitorParameter body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v15/analytics/monitoring/health name: v15-analytics-monitoring-health description: REST surface for v15-analytics-monitoring-health. operations: - method: GET name: getv15analyticsmonitoringhealth description: Get Service Status call: usage-analytics-write-analytics-api-version-15.getv15analyticsmonitoringhealth outputParameters: - type: object mapping: $. - path: /v1/v15/analytics/search name: v15-analytics-search description: REST surface for v15-analytics-search. operations: - method: POST name: postv15analyticssearch description: Log Search Event via POST call: usage-analytics-write-analytics-api-version-15.postv15analyticssearch with: org: rest.org visitor: rest.visitor prioritizeVisitorParameter: rest.prioritizeVisitorParameter body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v15/analytics/searches name: v15-analytics-searches description: REST surface for v15-analytics-searches. operations: - method: POST name: postv15analyticssearches description: Log Search Event Batch via POST call: usage-analytics-write-analytics-api-version-15.postv15analyticssearches with: org: rest.org visitor: rest.visitor prioritizeVisitorParameter: rest.prioritizeVisitorParameter body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v15/analytics/status name: v15-analytics-status description: REST surface for v15-analytics-status. operations: - method: GET name: getv15analyticsstatus description: Get Service Status call: usage-analytics-write-analytics-api-version-15.getv15analyticsstatus outputParameters: - type: object mapping: $. - path: /v1/v15/analytics/view name: v15-analytics-view description: REST surface for v15-analytics-view. operations: - method: POST name: postv15analyticsview description: Log View Event via POST call: usage-analytics-write-analytics-api-version-15.postv15analyticsview with: org: rest.org visitor: rest.visitor prioritizeVisitorParameter: rest.prioritizeVisitorParameter body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v15/analytics/visit name: v15-analytics-visit description: REST surface for v15-analytics-visit. operations: - method: GET name: getv15analyticsvisit description: Get Current Visit call: usage-analytics-write-analytics-api-version-15.getv15analyticsvisit with: user: rest.user org: rest.org visitor: rest.visitor clientId: rest.clientId prioritizeVisitorParameter: rest.prioritizeVisitorParameter outputParameters: - type: object mapping: $. - method: DELETE name: deletev15analyticsvisit description: Delete Visit Cookie call: usage-analytics-write-analytics-api-version-15.deletev15analyticsvisit outputParameters: - type: object mapping: $. - type: mcp namespace: usage-analytics-write-analytics-api-version-15-mcp port: 9090 transport: http description: MCP adapter for Coveo Usage Analytics Write API — Analytics API - Version 15. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: log-click-event-post description: Log Click Event via POST hints: readOnly: false destructive: false idempotent: false call: usage-analytics-write-analytics-api-version-15.postv15analyticsclick with: org: tools.org visitor: tools.visitor prioritizeVisitorParameter: tools.prioritizeVisitorParameter body: tools.body outputParameters: - type: object mapping: $. - name: collect-ga-style-events description: Collect GA-Style Events hints: readOnly: false destructive: false idempotent: false call: usage-analytics-write-analytics-api-version-15.postv15analyticscollect with: body: tools.body outputParameters: - type: object mapping: $. - name: log-custom-event-post description: Log Custom Event via POST hints: readOnly: false destructive: false idempotent: false call: usage-analytics-write-analytics-api-version-15.postv15analyticscustom with: org: tools.org visitor: tools.visitor prioritizeVisitorParameter: tools.prioritizeVisitorParameter body: tools.body outputParameters: - type: object mapping: $. - name: get-service-status description: Get Service Status hints: readOnly: true destructive: false idempotent: true call: usage-analytics-write-analytics-api-version-15.getv15analyticsmonitoringhealth outputParameters: - type: object mapping: $. - name: log-search-event-post description: Log Search Event via POST hints: readOnly: true destructive: false idempotent: false call: usage-analytics-write-analytics-api-version-15.postv15analyticssearch with: org: tools.org visitor: tools.visitor prioritizeVisitorParameter: tools.prioritizeVisitorParameter body: tools.body outputParameters: - type: object mapping: $. - name: log-search-event-batch-post description: Log Search Event Batch via POST hints: readOnly: true destructive: false idempotent: false call: usage-analytics-write-analytics-api-version-15.postv15analyticssearches with: org: tools.org visitor: tools.visitor prioritizeVisitorParameter: tools.prioritizeVisitorParameter body: tools.body outputParameters: - type: object mapping: $. - name: get-service-status-2 description: Get Service Status hints: readOnly: true destructive: false idempotent: true call: usage-analytics-write-analytics-api-version-15.getv15analyticsstatus outputParameters: - type: object mapping: $. - name: log-view-event-post description: Log View Event via POST hints: readOnly: false destructive: false idempotent: false call: usage-analytics-write-analytics-api-version-15.postv15analyticsview with: org: tools.org visitor: tools.visitor prioritizeVisitorParameter: tools.prioritizeVisitorParameter body: tools.body outputParameters: - type: object mapping: $. - name: get-current-visit description: Get Current Visit hints: readOnly: true destructive: false idempotent: true call: usage-analytics-write-analytics-api-version-15.getv15analyticsvisit with: user: tools.user org: tools.org visitor: tools.visitor clientId: tools.clientId prioritizeVisitorParameter: tools.prioritizeVisitorParameter outputParameters: - type: object mapping: $. - name: delete-visit-cookie description: Delete Visit Cookie hints: readOnly: false destructive: true idempotent: true call: usage-analytics-write-analytics-api-version-15.deletev15analyticsvisit outputParameters: - type: object mapping: $.