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