naftiko: 1.0.0-alpha2 info: label: Coveo Search API — Search V3 description: 'Coveo Search API — Search V3. 14 operations. Lead operation: Send Search Request. Self-contained Naftiko capability covering one Coveo business surface.' tags: - Coveo - Search - Search V3 created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: COVEO_SEARCH_TOKEN: COVEO_SEARCH_TOKEN capability: consumes: - type: http namespace: search-search-v3 baseUri: https://platform.cloud.coveo.com description: Coveo Search API — Search V3 business capability. Self-contained, no shared references. authentication: type: bearer token: '{{env.COVEO_SEARCH_TOKEN}}' resources: - name: rest-search-v3 path: /rest/search/v3 operations: - name: searchusingpostv3 method: POST description: Send Search Request outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: rest-search-v3-datastream path: /rest/search/v3/datastream operations: - name: datastreamv3 method: GET description: Get Item Data Stream outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: dataStream in: query type: string description: The name of the data stream to request. required: true - name: primaryId in: query type: string description: The primary ID of the document. - name: uniqueId in: query type: string description: '**Deprecated:** Use `primaryId` instead.' - name: contentType in: query type: string description: The MIME type of the data stream to request. - name: rest-search-v3-document path: /rest/search/v3/document operations: - name: documentv3 method: GET description: Get Item in JSON Format outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: primaryId in: query type: string description: The primary ID of the document. - name: uniqueId in: query type: string description: '**Deprecated:** Use `primaryId` instead.' - name: rest-search-v3-facet path: /rest/search/v3/facet operations: - name: facetsearchv3 method: POST description: Send Facet Search Request outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: rest-search-v3-fields path: /rest/search/v3/fields operations: - name: fieldsv3 method: GET description: List All Fields outputRawFormat: json outputParameters: - name: result type: object value: $. - name: rest-search-v3-fields-find path: /rest/search/v3/fields/find operations: - name: findfieldsfromexpressionv3 method: POST description: Find Fields from Results of a Query Expression outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: rest-search-v3-html path: /rest/search/v3/html operations: - name: htmlpostv3 method: POST description: Get HTML Item Preview outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: uniqueId in: query type: string description: The uniqueId of the document. Exactly one of uniqueId or primaryId is required. - name: primaryId in: query type: string description: The primaryId of the document. Exactly one of uniqueId or primaryId is required. - name: findNext in: query type: integer - name: findPrevious in: query type: integer - name: page in: query type: integer - name: enableNavigation in: query type: boolean - name: requestedOutputSize in: query type: integer description: The approximate number of bytes to request in the HTML response. **Default:** `0`, meaning that the entire HTML document is requested. - name: body in: body type: object description: Request body (JSON). required: true - name: rest-search-v3-login-provider path: /rest/search/v3/login/{provider} operations: - name: loginproviderpostv3 method: POST description: Log in to Authentication Provider outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: provider in: path type: string description: The name of the Search API authentication provider to log in to. required: true - name: rest-search-v3-plan path: /rest/search/v3/plan operations: - name: plansearchusingpostv3 method: POST description: Plan Search Execution outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: rest-search-v3-querySuggest path: /rest/search/v3/querySuggest operations: - name: querysuggestpostv3 method: POST description: Request Query Suggestions outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: rest-search-v3-text path: /rest/search/v3/text operations: - name: textv3 method: GET description: Get Item in Text Format outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: primaryId in: query type: string description: The primary ID of the document. - name: uniqueId in: query type: string description: '**Deprecated:** Use `primaryId` instead.' - name: rest-search-v3-token path: /rest/search/v3/token operations: - name: tokenv3 method: POST description: Create Search Token outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: rest-search-v3-values path: /rest/search/v3/values operations: - name: valuespostv3 method: POST description: Get Values for One Field outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: rest-search-v3-values-batch path: /rest/search/v3/values/batch operations: - name: valuesbatchpostv3 method: POST description: Get Values for Several Field outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true exposes: - type: rest namespace: search-search-v3-rest port: 8080 description: REST adapter for Coveo Search API — Search V3. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/search/v3 name: rest-search-v3 description: REST surface for rest-search-v3. operations: - method: POST name: searchusingpostv3 description: Send Search Request call: search-search-v3.searchusingpostv3 with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/search/v3/datastream name: rest-search-v3-datastream description: REST surface for rest-search-v3-datastream. operations: - method: GET name: datastreamv3 description: Get Item Data Stream call: search-search-v3.datastreamv3 with: dataStream: rest.dataStream primaryId: rest.primaryId uniqueId: rest.uniqueId contentType: rest.contentType outputParameters: - type: object mapping: $. - path: /v1/search/v3/document name: rest-search-v3-document description: REST surface for rest-search-v3-document. operations: - method: GET name: documentv3 description: Get Item in JSON Format call: search-search-v3.documentv3 with: primaryId: rest.primaryId uniqueId: rest.uniqueId outputParameters: - type: object mapping: $. - path: /v1/search/v3/facet name: rest-search-v3-facet description: REST surface for rest-search-v3-facet. operations: - method: POST name: facetsearchv3 description: Send Facet Search Request call: search-search-v3.facetsearchv3 with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/search/v3/fields name: rest-search-v3-fields description: REST surface for rest-search-v3-fields. operations: - method: GET name: fieldsv3 description: List All Fields call: search-search-v3.fieldsv3 outputParameters: - type: object mapping: $. - path: /v1/search/v3/fields/find name: rest-search-v3-fields-find description: REST surface for rest-search-v3-fields-find. operations: - method: POST name: findfieldsfromexpressionv3 description: Find Fields from Results of a Query Expression call: search-search-v3.findfieldsfromexpressionv3 with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/search/v3/html name: rest-search-v3-html description: REST surface for rest-search-v3-html. operations: - method: POST name: htmlpostv3 description: Get HTML Item Preview call: search-search-v3.htmlpostv3 with: uniqueId: rest.uniqueId primaryId: rest.primaryId findNext: rest.findNext findPrevious: rest.findPrevious page: rest.page enableNavigation: rest.enableNavigation requestedOutputSize: rest.requestedOutputSize body: rest.body outputParameters: - type: object mapping: $. - path: /v1/search/v3/login/{provider} name: rest-search-v3-login-provider description: REST surface for rest-search-v3-login-provider. operations: - method: POST name: loginproviderpostv3 description: Log in to Authentication Provider call: search-search-v3.loginproviderpostv3 with: provider: rest.provider outputParameters: - type: object mapping: $. - path: /v1/search/v3/plan name: rest-search-v3-plan description: REST surface for rest-search-v3-plan. operations: - method: POST name: plansearchusingpostv3 description: Plan Search Execution call: search-search-v3.plansearchusingpostv3 with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/search/v3/querysuggest name: rest-search-v3-querysuggest description: REST surface for rest-search-v3-querySuggest. operations: - method: POST name: querysuggestpostv3 description: Request Query Suggestions call: search-search-v3.querysuggestpostv3 with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/search/v3/text name: rest-search-v3-text description: REST surface for rest-search-v3-text. operations: - method: GET name: textv3 description: Get Item in Text Format call: search-search-v3.textv3 with: primaryId: rest.primaryId uniqueId: rest.uniqueId outputParameters: - type: object mapping: $. - path: /v1/search/v3/token name: rest-search-v3-token description: REST surface for rest-search-v3-token. operations: - method: POST name: tokenv3 description: Create Search Token call: search-search-v3.tokenv3 with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/search/v3/values name: rest-search-v3-values description: REST surface for rest-search-v3-values. operations: - method: POST name: valuespostv3 description: Get Values for One Field call: search-search-v3.valuespostv3 with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/search/v3/values/batch name: rest-search-v3-values-batch description: REST surface for rest-search-v3-values-batch. operations: - method: POST name: valuesbatchpostv3 description: Get Values for Several Field call: search-search-v3.valuesbatchpostv3 with: body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: search-search-v3-mcp port: 9090 transport: http description: MCP adapter for Coveo Search API — Search V3. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: send-search-request description: Send Search Request hints: readOnly: true destructive: false idempotent: false call: search-search-v3.searchusingpostv3 with: body: tools.body outputParameters: - type: object mapping: $. - name: get-item-data-stream description: Get Item Data Stream hints: readOnly: true destructive: false idempotent: true call: search-search-v3.datastreamv3 with: dataStream: tools.dataStream primaryId: tools.primaryId uniqueId: tools.uniqueId contentType: tools.contentType outputParameters: - type: object mapping: $. - name: get-item-json-format description: Get Item in JSON Format hints: readOnly: true destructive: false idempotent: true call: search-search-v3.documentv3 with: primaryId: tools.primaryId uniqueId: tools.uniqueId outputParameters: - type: object mapping: $. - name: send-facet-search-request description: Send Facet Search Request hints: readOnly: true destructive: false idempotent: false call: search-search-v3.facetsearchv3 with: body: tools.body outputParameters: - type: object mapping: $. - name: list-all-fields description: List All Fields hints: readOnly: true destructive: false idempotent: true call: search-search-v3.fieldsv3 outputParameters: - type: object mapping: $. - name: find-fields-results-query-expression description: Find Fields from Results of a Query Expression hints: readOnly: true destructive: false idempotent: false call: search-search-v3.findfieldsfromexpressionv3 with: body: tools.body outputParameters: - type: object mapping: $. - name: get-html-item-preview description: Get HTML Item Preview hints: readOnly: true destructive: false idempotent: false call: search-search-v3.htmlpostv3 with: uniqueId: tools.uniqueId primaryId: tools.primaryId findNext: tools.findNext findPrevious: tools.findPrevious page: tools.page enableNavigation: tools.enableNavigation requestedOutputSize: tools.requestedOutputSize body: tools.body outputParameters: - type: object mapping: $. - name: log-authentication-provider description: Log in to Authentication Provider hints: readOnly: false destructive: false idempotent: false call: search-search-v3.loginproviderpostv3 with: provider: tools.provider outputParameters: - type: object mapping: $. - name: plan-search-execution description: Plan Search Execution hints: readOnly: true destructive: false idempotent: false call: search-search-v3.plansearchusingpostv3 with: body: tools.body outputParameters: - type: object mapping: $. - name: request-query-suggestions description: Request Query Suggestions hints: readOnly: true destructive: false idempotent: false call: search-search-v3.querysuggestpostv3 with: body: tools.body outputParameters: - type: object mapping: $. - name: get-item-text-format description: Get Item in Text Format hints: readOnly: true destructive: false idempotent: true call: search-search-v3.textv3 with: primaryId: tools.primaryId uniqueId: tools.uniqueId outputParameters: - type: object mapping: $. - name: create-search-token description: Create Search Token hints: readOnly: true destructive: false idempotent: false call: search-search-v3.tokenv3 with: body: tools.body outputParameters: - type: object mapping: $. - name: get-values-one-field description: Get Values for One Field hints: readOnly: true destructive: false idempotent: false call: search-search-v3.valuespostv3 with: body: tools.body outputParameters: - type: object mapping: $. - name: get-values-several-field description: Get Values for Several Field hints: readOnly: true destructive: false idempotent: false call: search-search-v3.valuesbatchpostv3 with: body: tools.body outputParameters: - type: object mapping: $.