naftiko: 1.0.0-alpha2 info: label: Coveo Extension API — Indexing Pipeline Extensions description: 'Coveo Extension API — Indexing Pipeline Extensions. 18 operations. Lead operation: List Extensions. Self-contained Naftiko capability covering one Coveo business surface.' tags: - Coveo - Extension - Indexing Pipeline Extensions created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: COVEO_API_KEY: COVEO_API_KEY capability: consumes: - type: http namespace: extension-indexing-pipeline-extensions baseUri: https://platform.cloud.coveo.com description: Coveo Extension API — Indexing Pipeline Extensions business capability. Self-contained, no shared references. authentication: type: bearer token: '{{env.COVEO_API_KEY}}' resources: - name: rest-organizations-organizationId-extensions path: /rest/organizations/{organizationId}/extensions operations: - name: getextensions method: GET description: List Extensions outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: The unique identifier of the target [organization](https://docs.coveo.com/en/185/).
Example: `mycoveocloudv2organizationg8tp8wu3` required: true - name: createextension method: POST description: Create Extension outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: The unique identifier of the target [organization](https://docs.coveo.com/en/185/).
Example: `mycoveocloudv2organizationg8tp8wu3` required: true - name: body in: body type: object description: Request body (JSON). required: true - name: rest-organizations-organizationId-extensions-ids path: /rest/organizations/{organizationId}/extensions/ids operations: - name: getextensionsbyids method: POST description: Get a Subset of Extensions by Ids for an Organization. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string required: true - name: page in: query type: integer - name: perPage in: query type: integer - name: filter in: query type: string - name: body in: body type: object description: Request body (JSON). required: true - name: rest-organizations-organizationId-extensions-page path: /rest/organizations/{organizationId}/extensions/page operations: - name: getextensionsbypage method: GET description: List Extensions by Page with Filter. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string required: true - name: page in: query type: integer - name: perPage in: query type: integer - name: filter in: query type: string - name: rest-organizations-organizationId-extensions-project path: /rest/organizations/{organizationId}/extensions/project operations: - name: getextensionsbyprojectid method: GET description: Get Extensions Associated with Specified Project. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string required: true - name: projectId in: query type: string - name: page in: query type: integer - name: perPage in: query type: integer - name: filter in: query type: string - name: rest-organizations-organizationId-extensions-test-compile path: /rest/organizations/{organizationId}/extensions/test/compile operations: - name: compileextension method: POST description: Try to Compile Code for an Extension outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: rest-organizations-organizationId-extensions-extensionId path: /rest/organizations/{organizationId}/extensions/{extensionId} operations: - name: getextension method: GET description: Show Extension outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: The unique identifier of the target [organization](https://docs.coveo.com/en/185/).
Example: `mycoveocloudv2organizationg8tp8wu3` required: true - name: extensionId in: path type: string description: The unique identifier of the extension to show.
Example: `mycoveocloudv2organizationg8tp8wu3n-vwlyqfbtjkotxqkmrxqjcbcpoy` required: true - name: updateextension method: PUT description: Update Extension outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: The unique identifier of the target [organization](https://docs.coveo.com/en/185/).
Example: `mycoveocloudv2organizationg8tp8wu3` required: true - name: extensionId in: path type: string description: The unique identifier of the extension to update.
Example: `mycoveocloudv2organizationg8tp8wu3-vwlyqfbtjkotxqkmrxqjcbcpoy` required: true - name: body in: body type: object description: Request body (JSON). required: true - name: deleteextension method: DELETE description: Delete Extension outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: The unique identifier of the target [organization](https://docs.coveo.com/en/185/).
Example: `mycoveocloudv2organizationg8tp8wu3` required: true - name: extensionId in: path type: string description: The unique identifier of the extension to delete.
Example: `mycoveocloudv2organizationg8tp8wu3-vwlyqfbtjkotxqkmrxqjcbcpoy` required: true - name: rest-organizations-organizationId-extensions-extensionId-code path: /rest/organizations/{organizationId}/extensions/{extensionId}/code operations: - name: getextensioncode method: GET description: Show Extension Code outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string required: true - name: extensionId in: path type: string required: true - name: updateextensioncode method: PUT description: Update Extension Code outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string required: true - name: extensionId in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: rest-organizations-organizationId-extensions-extensionId-disable path: /rest/organizations/{organizationId}/extensions/{extensionId}/disable operations: - name: disableextension method: POST description: Disable Extension outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: The unique identifier of the target [organization](https://docs.coveo.com/en/185/).
Example: `mycoveocloudv2organizationg8tp8wu3` required: true - name: extensionId in: path type: string description: The unique identifier of the extension to disable.
Example: `mycoveocloudv2organizationg8tp8wu3-vwlyqfbtjkotxqkmrxqjcbcpoy` required: true - name: body in: body type: object description: Request body (JSON). required: true - name: rest-organizations-organizationId-extensions-extensionId-enable path: /rest/organizations/{organizationId}/extensions/{extensionId}/enable operations: - name: enableextension method: POST description: Enable Extension outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: The unique identifier of the target [organization](https://docs.coveo.com/en/185/).
Example: `mycoveocloudv2organizationg8tp8wu3` required: true - name: extensionId in: path type: string description: The unique identifier of the extension to enable.
Example: `mycoveocloudv2organizationg8tp8wu3-vwlyqfbtjkotxqkmrxqjcbcpoy` required: true - name: rest-organizations-organizationId-extensions-extensionId-test path: /rest/organizations/{organizationId}/extensions/{extensionId}/test operations: - name: testextension method: POST description: Test Extension outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: The unique identifier of the target [organization](https://docs.coveo.com/en/185/).
Example: `mycoveocloudv2organizationg8tp8wu3` required: true - name: extensionId in: path type: string description: The unique identifier of the extension to test.
Example: `mycoveocloudv2organizationg8tp8wu3-vwlyqfbtjkotxqkmrxqjcbcpoy` required: true - name: body in: body type: object description: Request body (JSON). required: true - name: rest-organizations-organizationId-extensions-extensionId-test-datastream path: /rest/organizations/{organizationId}/extensions/{extensionId}/test/datastream operations: - name: generatetestdatastreamuploaduri method: POST description: Create Test Data Stream Upload URI outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: The unique identifier of the target [organization](https://docs.coveo.com/en/185/).
Example: `mycoveocloudv2organizationg8tp8wu3` required: true - name: extensionId in: path type: string description: The unique identifier of the extension for which to create an upload URI.
Example: `mycoveocloudv2organizationg8tp8wu3-vwlyqfbtjkotxqkmrxqjcbcpoy` required: true - name: rest-organizations-organizationId-extensions-extensionId-timeouts path: /rest/organizations/{organizationId}/extensions/{extensionId}/timeouts operations: - name: updateextensiontimeout method: PUT description: Set Timeout for a Given Extension for an Organization. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string required: true - name: extensionId in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: rest-organizations-organizationId-extensions-extensionId-versions path: /rest/organizations/{organizationId}/extensions/{extensionId}/versions operations: - name: getextensionversions method: GET description: List Extension Versions outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: The unique identifier of the target [organization](https://docs.coveo.com/en/185/).
Example: `mycoveocloudv2organizationg8tp8wu3` required: true - name: extensionId in: path type: string description: The unique identifier of the target extension.
Example: `mycoveocloudv2organizationg8tp8wu3-vwlyqfbtjkotxqkmrxqjcbcpoy` required: true - name: rest-organizations-organizationId-extensions-extensionId-versions-versionId path: /rest/organizations/{organizationId}/extensions/{extensionId}/versions/{versionId} operations: - name: getextensionversion method: GET description: Show Extension Version outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: The unique identifier of the target [organization](https://docs.coveo.com/en/185/).
Example: `mycoveocloudv2organizationg8tp8wu3` required: true - name: extensionId in: path type: string description: The unique identifier of the target extension.
Example: `mycoveocloudv2organizationg8tp8wu3-vwlyqfbtjkotxqkmrxqjcbcpoy` required: true - name: versionId in: path type: string description: The unique identifier of the extension version to show.
Example:`hdJSDb4hTkdnsCynNtF.d657FgLSDydcj` required: true exposes: - type: rest namespace: extension-indexing-pipeline-extensions-rest port: 8080 description: REST adapter for Coveo Extension API — Indexing Pipeline Extensions. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/organizations/{organizationid}/extensions name: rest-organizations-organizationid-extensions description: REST surface for rest-organizations-organizationId-extensions. operations: - method: GET name: getextensions description: List Extensions call: extension-indexing-pipeline-extensions.getextensions with: organizationId: rest.organizationId outputParameters: - type: object mapping: $. - method: POST name: createextension description: Create Extension call: extension-indexing-pipeline-extensions.createextension with: organizationId: rest.organizationId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/organizations/{organizationid}/extensions/ids name: rest-organizations-organizationid-extensions-ids description: REST surface for rest-organizations-organizationId-extensions-ids. operations: - method: POST name: getextensionsbyids description: Get a Subset of Extensions by Ids for an Organization. call: extension-indexing-pipeline-extensions.getextensionsbyids with: organizationId: rest.organizationId page: rest.page perPage: rest.perPage filter: rest.filter body: rest.body outputParameters: - type: object mapping: $. - path: /v1/organizations/{organizationid}/extensions/page name: rest-organizations-organizationid-extensions-page description: REST surface for rest-organizations-organizationId-extensions-page. operations: - method: GET name: getextensionsbypage description: List Extensions by Page with Filter. call: extension-indexing-pipeline-extensions.getextensionsbypage with: organizationId: rest.organizationId page: rest.page perPage: rest.perPage filter: rest.filter outputParameters: - type: object mapping: $. - path: /v1/organizations/{organizationid}/extensions/project name: rest-organizations-organizationid-extensions-project description: REST surface for rest-organizations-organizationId-extensions-project. operations: - method: GET name: getextensionsbyprojectid description: Get Extensions Associated with Specified Project. call: extension-indexing-pipeline-extensions.getextensionsbyprojectid with: organizationId: rest.organizationId projectId: rest.projectId page: rest.page perPage: rest.perPage filter: rest.filter outputParameters: - type: object mapping: $. - path: /v1/organizations/{organizationid}/extensions/test/compile name: rest-organizations-organizationid-extensions-test-compile description: REST surface for rest-organizations-organizationId-extensions-test-compile. operations: - method: POST name: compileextension description: Try to Compile Code for an Extension call: extension-indexing-pipeline-extensions.compileextension with: organizationId: rest.organizationId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/organizations/{organizationid}/extensions/{extensionid} name: rest-organizations-organizationid-extensions-extensionid description: REST surface for rest-organizations-organizationId-extensions-extensionId. operations: - method: GET name: getextension description: Show Extension call: extension-indexing-pipeline-extensions.getextension with: organizationId: rest.organizationId extensionId: rest.extensionId outputParameters: - type: object mapping: $. - method: PUT name: updateextension description: Update Extension call: extension-indexing-pipeline-extensions.updateextension with: organizationId: rest.organizationId extensionId: rest.extensionId body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deleteextension description: Delete Extension call: extension-indexing-pipeline-extensions.deleteextension with: organizationId: rest.organizationId extensionId: rest.extensionId outputParameters: - type: object mapping: $. - path: /v1/organizations/{organizationid}/extensions/{extensionid}/code name: rest-organizations-organizationid-extensions-extensionid-code description: REST surface for rest-organizations-organizationId-extensions-extensionId-code. operations: - method: GET name: getextensioncode description: Show Extension Code call: extension-indexing-pipeline-extensions.getextensioncode with: organizationId: rest.organizationId extensionId: rest.extensionId outputParameters: - type: object mapping: $. - method: PUT name: updateextensioncode description: Update Extension Code call: extension-indexing-pipeline-extensions.updateextensioncode with: organizationId: rest.organizationId extensionId: rest.extensionId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/organizations/{organizationid}/extensions/{extensionid}/disable name: rest-organizations-organizationid-extensions-extensionid-disable description: REST surface for rest-organizations-organizationId-extensions-extensionId-disable. operations: - method: POST name: disableextension description: Disable Extension call: extension-indexing-pipeline-extensions.disableextension with: organizationId: rest.organizationId extensionId: rest.extensionId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/organizations/{organizationid}/extensions/{extensionid}/enable name: rest-organizations-organizationid-extensions-extensionid-enable description: REST surface for rest-organizations-organizationId-extensions-extensionId-enable. operations: - method: POST name: enableextension description: Enable Extension call: extension-indexing-pipeline-extensions.enableextension with: organizationId: rest.organizationId extensionId: rest.extensionId outputParameters: - type: object mapping: $. - path: /v1/organizations/{organizationid}/extensions/{extensionid}/test name: rest-organizations-organizationid-extensions-extensionid-test description: REST surface for rest-organizations-organizationId-extensions-extensionId-test. operations: - method: POST name: testextension description: Test Extension call: extension-indexing-pipeline-extensions.testextension with: organizationId: rest.organizationId extensionId: rest.extensionId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/organizations/{organizationid}/extensions/{extensionid}/test/datastream name: rest-organizations-organizationid-extensions-extensionid-test-datastream description: REST surface for rest-organizations-organizationId-extensions-extensionId-test-datastream. operations: - method: POST name: generatetestdatastreamuploaduri description: Create Test Data Stream Upload URI call: extension-indexing-pipeline-extensions.generatetestdatastreamuploaduri with: organizationId: rest.organizationId extensionId: rest.extensionId outputParameters: - type: object mapping: $. - path: /v1/organizations/{organizationid}/extensions/{extensionid}/timeouts name: rest-organizations-organizationid-extensions-extensionid-timeouts description: REST surface for rest-organizations-organizationId-extensions-extensionId-timeouts. operations: - method: PUT name: updateextensiontimeout description: Set Timeout for a Given Extension for an Organization. call: extension-indexing-pipeline-extensions.updateextensiontimeout with: organizationId: rest.organizationId extensionId: rest.extensionId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/organizations/{organizationid}/extensions/{extensionid}/versions name: rest-organizations-organizationid-extensions-extensionid-versions description: REST surface for rest-organizations-organizationId-extensions-extensionId-versions. operations: - method: GET name: getextensionversions description: List Extension Versions call: extension-indexing-pipeline-extensions.getextensionversions with: organizationId: rest.organizationId extensionId: rest.extensionId outputParameters: - type: object mapping: $. - path: /v1/organizations/{organizationid}/extensions/{extensionid}/versions/{versionid} name: rest-organizations-organizationid-extensions-extensionid-versions-versionid description: REST surface for rest-organizations-organizationId-extensions-extensionId-versions-versionId. operations: - method: GET name: getextensionversion description: Show Extension Version call: extension-indexing-pipeline-extensions.getextensionversion with: organizationId: rest.organizationId extensionId: rest.extensionId versionId: rest.versionId outputParameters: - type: object mapping: $. - type: mcp namespace: extension-indexing-pipeline-extensions-mcp port: 9090 transport: http description: MCP adapter for Coveo Extension API — Indexing Pipeline Extensions. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-extensions description: List Extensions hints: readOnly: true destructive: false idempotent: true call: extension-indexing-pipeline-extensions.getextensions with: organizationId: tools.organizationId outputParameters: - type: object mapping: $. - name: create-extension description: Create Extension hints: readOnly: false destructive: false idempotent: false call: extension-indexing-pipeline-extensions.createextension with: organizationId: tools.organizationId body: tools.body outputParameters: - type: object mapping: $. - name: get-subset-extensions-ids-organization description: Get a Subset of Extensions by Ids for an Organization. hints: readOnly: true destructive: false idempotent: false call: extension-indexing-pipeline-extensions.getextensionsbyids with: organizationId: tools.organizationId page: tools.page perPage: tools.perPage filter: tools.filter body: tools.body outputParameters: - type: object mapping: $. - name: list-extensions-page-filter description: List Extensions by Page with Filter. hints: readOnly: true destructive: false idempotent: true call: extension-indexing-pipeline-extensions.getextensionsbypage with: organizationId: tools.organizationId page: tools.page perPage: tools.perPage filter: tools.filter outputParameters: - type: object mapping: $. - name: get-extensions-associated-specified-project description: Get Extensions Associated with Specified Project. hints: readOnly: true destructive: false idempotent: true call: extension-indexing-pipeline-extensions.getextensionsbyprojectid with: organizationId: tools.organizationId projectId: tools.projectId page: tools.page perPage: tools.perPage filter: tools.filter outputParameters: - type: object mapping: $. - name: try-compile-code-extension description: Try to Compile Code for an Extension hints: readOnly: false destructive: false idempotent: false call: extension-indexing-pipeline-extensions.compileextension with: organizationId: tools.organizationId body: tools.body outputParameters: - type: object mapping: $. - name: show-extension description: Show Extension hints: readOnly: true destructive: false idempotent: true call: extension-indexing-pipeline-extensions.getextension with: organizationId: tools.organizationId extensionId: tools.extensionId outputParameters: - type: object mapping: $. - name: update-extension description: Update Extension hints: readOnly: false destructive: false idempotent: true call: extension-indexing-pipeline-extensions.updateextension with: organizationId: tools.organizationId extensionId: tools.extensionId body: tools.body outputParameters: - type: object mapping: $. - name: delete-extension description: Delete Extension hints: readOnly: false destructive: true idempotent: true call: extension-indexing-pipeline-extensions.deleteextension with: organizationId: tools.organizationId extensionId: tools.extensionId outputParameters: - type: object mapping: $. - name: show-extension-code description: Show Extension Code hints: readOnly: true destructive: false idempotent: true call: extension-indexing-pipeline-extensions.getextensioncode with: organizationId: tools.organizationId extensionId: tools.extensionId outputParameters: - type: object mapping: $. - name: update-extension-code description: Update Extension Code hints: readOnly: false destructive: false idempotent: true call: extension-indexing-pipeline-extensions.updateextensioncode with: organizationId: tools.organizationId extensionId: tools.extensionId body: tools.body outputParameters: - type: object mapping: $. - name: disable-extension description: Disable Extension hints: readOnly: false destructive: false idempotent: false call: extension-indexing-pipeline-extensions.disableextension with: organizationId: tools.organizationId extensionId: tools.extensionId body: tools.body outputParameters: - type: object mapping: $. - name: enable-extension description: Enable Extension hints: readOnly: false destructive: false idempotent: false call: extension-indexing-pipeline-extensions.enableextension with: organizationId: tools.organizationId extensionId: tools.extensionId outputParameters: - type: object mapping: $. - name: test-extension description: Test Extension hints: readOnly: true destructive: false idempotent: false call: extension-indexing-pipeline-extensions.testextension with: organizationId: tools.organizationId extensionId: tools.extensionId body: tools.body outputParameters: - type: object mapping: $. - name: create-test-data-stream-upload description: Create Test Data Stream Upload URI hints: readOnly: true destructive: false idempotent: false call: extension-indexing-pipeline-extensions.generatetestdatastreamuploaduri with: organizationId: tools.organizationId extensionId: tools.extensionId outputParameters: - type: object mapping: $. - name: set-timeout-given-extension-organization description: Set Timeout for a Given Extension for an Organization. hints: readOnly: false destructive: false idempotent: true call: extension-indexing-pipeline-extensions.updateextensiontimeout with: organizationId: tools.organizationId extensionId: tools.extensionId body: tools.body outputParameters: - type: object mapping: $. - name: list-extension-versions description: List Extension Versions hints: readOnly: true destructive: false idempotent: true call: extension-indexing-pipeline-extensions.getextensionversions with: organizationId: tools.organizationId extensionId: tools.extensionId outputParameters: - type: object mapping: $. - name: show-extension-version description: Show Extension Version hints: readOnly: true destructive: false idempotent: true call: extension-indexing-pipeline-extensions.getextensionversion with: organizationId: tools.organizationId extensionId: tools.extensionId versionId: tools.versionId outputParameters: - type: object mapping: $.