naftiko: 1.0.0-alpha2 info: label: Coveo Workspace API — Projects description: 'Coveo Workspace API — Projects. 14 operations. Lead operation: Get Projects. Self-contained Naftiko capability covering one Coveo business surface.' tags: - Coveo - Workspace - Projects created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: COVEO_API_KEY: COVEO_API_KEY capability: consumes: - type: http namespace: workspace-projects baseUri: https://platform.cloud.coveo.com description: Coveo Workspace API — Projects business capability. Self-contained, no shared references. authentication: type: bearer token: '{{env.COVEO_API_KEY}}' resources: - name: rest-organizations-organizationId-projects path: /rest/organizations/{organizationId}/projects operations: - name: getprojects method: GET description: Get Projects outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: The unique identifier of the [Coveo organization](https://docs.coveo.com/en/185/).
**Example:** `startingorganizationg8tp8wu3` required: true - name: filter in: query type: string description: The text to filter projects by (applied to the project id, name, and pointsOfContact properties).
**Example:** `Project123` - name: sortBy in: query type: string description: The property to sort the results by.
**Example:** `NAME` - name: order in: query type: string description: The sorting order of the results.
**Default:** `DESC` - name: page in: query type: integer description: The 0-based number of the results page to fetch.
**Default:** `0` - name: perPage in: query type: integer description: The number of results to fetch per page.
**Default:** `50` - name: createproject method: POST description: Create Project outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: The unique identifier of the [Coveo organization](https://docs.coveo.com/en/185/).
**Example:** `startingorganizationg8tp8wu3` required: true - name: body in: body type: object description: Request body (JSON). required: true - name: rest-organizations-organizationId-projects-resources-ids path: /rest/organizations/{organizationId}/projects/resources/ids operations: - name: getresourcesbyprojectid method: GET description: Get Resources of Specified Type Within a Project. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: The unique identifier of the [Coveo organization](https://docs.coveo.com/en/185/).
**Example:** `startingorganizationg8tp8wu3` required: true - name: resourceType in: query type: string description: The type of the [resource](https://docs.coveo.com/2820). required: true - name: projectId in: query type: string description: The unique identifier of the [project](https://docs.coveo.com/n7ed6189/). required: true - name: getresourcesbyresourceids method: POST description: Get Project Ids Associated with Provided Resource Ids and Type. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: The unique identifier of the [Coveo organization](https://docs.coveo.com/en/185/).
**Example:** `startingorganizationg8tp8wu3` required: true - name: resourceType in: query type: string description: The type of the [resource](https://docs.coveo.com/2820). required: true - name: body in: body type: object description: Request body (JSON). required: true - name: rest-organizations-organizationId-projects-resources-ids-page path: /rest/organizations/{organizationId}/projects/resources/ids/page operations: - name: getresourcesbyprojectidbypage method: GET description: Get Paginated Resources of Specified Type Within a Project. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: The unique identifier of the [Coveo organization](https://docs.coveo.com/en/185/).
**Example:** `startingorganizationg8tp8wu3` required: true - name: resourceType in: query type: string description: The type of the [resource](https://docs.coveo.com/2820). required: true - name: projectId in: query type: string description: The unique identifier of the [project](https://docs.coveo.com/n7ed6189/). required: true - name: page in: query type: integer description: The 0-based number of the results page to fetch.
**Default:** `0` - name: perPage in: query type: integer description: The number of results to fetch per page.
**Default:** `50` - name: rest-organizations-organizationId-projects-resources-resourceId-projectids path: /rest/organizations/{organizationId}/projects/resources/{resourceId}/projectids operations: - name: setresourceprojectids method: POST description: Set the Project Ids Associated with Provided Resource of Type. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: The unique identifier of the [Coveo organization](https://docs.coveo.com/en/185/).
**Example:** `startingorganizationg8tp8wu3` required: true - name: resourceType in: query type: string description: The type of the [resource](https://docs.coveo.com/2820). required: true - name: resourceId in: path type: string description: The unique identifier of a [resource](https://docs.coveo.com/2820). required: true - name: body in: body type: object description: Request body (JSON). required: true - name: rest-organizations-organizationId-projects-projectId path: /rest/organizations/{organizationId}/projects/{projectId} operations: - name: getproject method: GET description: Get Project outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: The unique identifier of the [Coveo organization](https://docs.coveo.com/en/185/).
**Example:** `startingorganizationg8tp8wu3` required: true - name: projectId in: path type: string description: The unique identifier of the [project](https://docs.coveo.com/n7ed6189/).
**Example:** `uwthtvihpqjbzktjdfexk3covi` required: true - name: updateproject method: PUT description: Update Project outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: The unique identifier of the [Coveo organization](https://docs.coveo.com/en/185/).
**Example:** `startingorganizationg8tp8wu3` required: true - name: projectId in: path type: string description: The unique identifier of the [project](https://docs.coveo.com/n7ed6189/).
**Example:** `uwthtvihpqjbzktjdfexk3covi` required: true - name: body in: body type: object description: Request body (JSON). required: true - name: deleteproject method: DELETE description: Delete Project outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: The unique identifier of the [Coveo organization](https://docs.coveo.com/en/185/).
**Example:** `startingorganizationg8tp8wu3` required: true - name: projectId in: path type: string description: The unique identifier of the [project](https://docs.coveo.com/n7ed6189/).
**Example:** `uwthtvihpqjbzktjdfexk3covi` required: true - name: rest-organizations-organizationId-projects-projectId-resources path: /rest/organizations/{organizationId}/projects/{projectId}/resources operations: - name: getprojectresourcesbystatus method: GET description: Get Resource Ids Grouped by Resource Status. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: The unique identifier of the [Coveo organization](https://docs.coveo.com/en/185/).
**Example:** `startingorganizationg8tp8wu3` required: true - name: projectId in: path type: string description: The unique identifier of the [project](https://docs.coveo.com/n7ed6189/).
**Example:** `uwthtvihpqjbzktjdfexk3covi` required: true - name: rest-organizations-organizationId-projects-projectId-resources-resourceType path: /rest/organizations/{organizationId}/projects/{projectId}/resources/{resourceType} operations: - name: getprojectresourcesdetailsbyresourcetype method: GET description: Get Resource Details by Type. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: The unique identifier of the [Coveo organization](https://docs.coveo.com/en/185/).
**Example:** `startingorganizationg8tp8wu3` required: true - name: projectId in: path type: string description: The unique identifier of the [project](https://docs.coveo.com/n7ed6189/).
**Example:** `uwthtvihpqjbzktjdfexk3covi` required: true - name: resourceType in: path type: string description: The type of the [resource](https://docs.coveo.com/2820).
**Example:** `SOURCE` required: true - name: filter in: query type: string description: The text to filter resources by (applied to the resource id and name properties).
**Example:** `My Web source` - name: page in: query type: integer description: The 0-based number of the results page to fetch.
**Default:** `0` - name: perPage in: query type: integer description: The number of results to fetch per page.
**Default:** `50` - name: rest-organizations-organizationId-projects-projectId-resources-resourceType-ids path: /rest/organizations/{organizationId}/projects/{projectId}/resources/{resourceType}/ids operations: - name: getallprojectresourceidsoftype method: GET description: Get All Resource Ids of Specified Type Within a Project. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: The unique identifier of the [Coveo organization](https://docs.coveo.com/en/185/).
**Example:** `startingorganizationg8tp8wu3` required: true - name: projectId in: path type: string description: The unique identifier of the [project](https://docs.coveo.com/n7ed6189/).
**Example:** `uwthtvihpqjbzktjdfexk3covi` required: true - name: resourceType in: path type: string description: The type of the [resource](https://docs.coveo.com/2820).
**Example:** `SOURCE` required: true - name: rest-organizations-organizationId-projects-projectId-resources-resourceType-reso path: /rest/organizations/{organizationId}/projects/{projectId}/resources/{resourceType}/{resourceId} operations: - name: addresourcetoproject method: PUT description: Add a Single Resource to a Project. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: The unique identifier of the [Coveo organization](https://docs.coveo.com/en/185/).
**Example:** `startingorganizationg8tp8wu3` required: true - name: projectId in: path type: string description: The unique identifier of the [project](https://docs.coveo.com/n7ed6189/).
**Example:** `uwthtvihpqjbzktjdfexk3covi` required: true - name: resourceType in: path type: string description: The type of the [resource](https://docs.coveo.com/2820). required: true - name: resourceId in: path type: string description: The unique identifier of a [resource](https://docs.coveo.com/2820). required: true - name: removeresourcefromproject method: DELETE description: Remove a Specific Resource from a Project. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: The unique identifier of the [Coveo organization](https://docs.coveo.com/en/185/).
**Example:** `startingorganizationg8tp8wu3` required: true - name: projectId in: path type: string description: The unique identifier of the [project](https://docs.coveo.com/n7ed6189/).
**Example:** `uwthtvihpqjbzktjdfexk3covi` required: true - name: resourceType in: path type: string description: The type of the [resource](https://docs.coveo.com/2820). required: true - name: resourceId in: path type: string description: The unique identifier of a [resource](https://docs.coveo.com/2820). required: true exposes: - type: rest namespace: workspace-projects-rest port: 8080 description: REST adapter for Coveo Workspace API — Projects. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/organizations/{organizationid}/projects name: rest-organizations-organizationid-projects description: REST surface for rest-organizations-organizationId-projects. operations: - method: GET name: getprojects description: Get Projects call: workspace-projects.getprojects with: organizationId: rest.organizationId filter: rest.filter sortBy: rest.sortBy order: rest.order page: rest.page perPage: rest.perPage outputParameters: - type: object mapping: $. - method: POST name: createproject description: Create Project call: workspace-projects.createproject with: organizationId: rest.organizationId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/organizations/{organizationid}/projects/resources/ids name: rest-organizations-organizationid-projects-resources-ids description: REST surface for rest-organizations-organizationId-projects-resources-ids. operations: - method: GET name: getresourcesbyprojectid description: Get Resources of Specified Type Within a Project. call: workspace-projects.getresourcesbyprojectid with: organizationId: rest.organizationId resourceType: rest.resourceType projectId: rest.projectId outputParameters: - type: object mapping: $. - method: POST name: getresourcesbyresourceids description: Get Project Ids Associated with Provided Resource Ids and Type. call: workspace-projects.getresourcesbyresourceids with: organizationId: rest.organizationId resourceType: rest.resourceType body: rest.body outputParameters: - type: object mapping: $. - path: /v1/organizations/{organizationid}/projects/resources/ids/page name: rest-organizations-organizationid-projects-resources-ids-page description: REST surface for rest-organizations-organizationId-projects-resources-ids-page. operations: - method: GET name: getresourcesbyprojectidbypage description: Get Paginated Resources of Specified Type Within a Project. call: workspace-projects.getresourcesbyprojectidbypage with: organizationId: rest.organizationId resourceType: rest.resourceType projectId: rest.projectId page: rest.page perPage: rest.perPage outputParameters: - type: object mapping: $. - path: /v1/organizations/{organizationid}/projects/resources/{resourceid}/projectids name: rest-organizations-organizationid-projects-resources-resourceid-projectids description: REST surface for rest-organizations-organizationId-projects-resources-resourceId-projectids. operations: - method: POST name: setresourceprojectids description: Set the Project Ids Associated with Provided Resource of Type. call: workspace-projects.setresourceprojectids with: organizationId: rest.organizationId resourceType: rest.resourceType resourceId: rest.resourceId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/organizations/{organizationid}/projects/{projectid} name: rest-organizations-organizationid-projects-projectid description: REST surface for rest-organizations-organizationId-projects-projectId. operations: - method: GET name: getproject description: Get Project call: workspace-projects.getproject with: organizationId: rest.organizationId projectId: rest.projectId outputParameters: - type: object mapping: $. - method: PUT name: updateproject description: Update Project call: workspace-projects.updateproject with: organizationId: rest.organizationId projectId: rest.projectId body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deleteproject description: Delete Project call: workspace-projects.deleteproject with: organizationId: rest.organizationId projectId: rest.projectId outputParameters: - type: object mapping: $. - path: /v1/organizations/{organizationid}/projects/{projectid}/resources name: rest-organizations-organizationid-projects-projectid-resources description: REST surface for rest-organizations-organizationId-projects-projectId-resources. operations: - method: GET name: getprojectresourcesbystatus description: Get Resource Ids Grouped by Resource Status. call: workspace-projects.getprojectresourcesbystatus with: organizationId: rest.organizationId projectId: rest.projectId outputParameters: - type: object mapping: $. - path: /v1/organizations/{organizationid}/projects/{projectid}/resources/{resourcetype} name: rest-organizations-organizationid-projects-projectid-resources-resourcetype description: REST surface for rest-organizations-organizationId-projects-projectId-resources-resourceType. operations: - method: GET name: getprojectresourcesdetailsbyresourcetype description: Get Resource Details by Type. call: workspace-projects.getprojectresourcesdetailsbyresourcetype with: organizationId: rest.organizationId projectId: rest.projectId resourceType: rest.resourceType filter: rest.filter page: rest.page perPage: rest.perPage outputParameters: - type: object mapping: $. - path: /v1/organizations/{organizationid}/projects/{projectid}/resources/{resourcetype}/ids name: rest-organizations-organizationid-projects-projectid-resources-resourcetype-ids description: REST surface for rest-organizations-organizationId-projects-projectId-resources-resourceType-ids. operations: - method: GET name: getallprojectresourceidsoftype description: Get All Resource Ids of Specified Type Within a Project. call: workspace-projects.getallprojectresourceidsoftype with: organizationId: rest.organizationId projectId: rest.projectId resourceType: rest.resourceType outputParameters: - type: object mapping: $. - path: /v1/organizations/{organizationid}/projects/{projectid}/resources/{resourcetype}/{resourceid} name: rest-organizations-organizationid-projects-projectid-resources-resourcetype-reso description: REST surface for rest-organizations-organizationId-projects-projectId-resources-resourceType-reso. operations: - method: PUT name: addresourcetoproject description: Add a Single Resource to a Project. call: workspace-projects.addresourcetoproject with: organizationId: rest.organizationId projectId: rest.projectId resourceType: rest.resourceType resourceId: rest.resourceId outputParameters: - type: object mapping: $. - method: DELETE name: removeresourcefromproject description: Remove a Specific Resource from a Project. call: workspace-projects.removeresourcefromproject with: organizationId: rest.organizationId projectId: rest.projectId resourceType: rest.resourceType resourceId: rest.resourceId outputParameters: - type: object mapping: $. - type: mcp namespace: workspace-projects-mcp port: 9090 transport: http description: MCP adapter for Coveo Workspace API — Projects. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-projects description: Get Projects hints: readOnly: true destructive: false idempotent: true call: workspace-projects.getprojects with: organizationId: tools.organizationId filter: tools.filter sortBy: tools.sortBy order: tools.order page: tools.page perPage: tools.perPage outputParameters: - type: object mapping: $. - name: create-project description: Create Project hints: readOnly: false destructive: false idempotent: false call: workspace-projects.createproject with: organizationId: tools.organizationId body: tools.body outputParameters: - type: object mapping: $. - name: get-resources-specified-type-within description: Get Resources of Specified Type Within a Project. hints: readOnly: true destructive: false idempotent: true call: workspace-projects.getresourcesbyprojectid with: organizationId: tools.organizationId resourceType: tools.resourceType projectId: tools.projectId outputParameters: - type: object mapping: $. - name: get-project-ids-associated-provided description: Get Project Ids Associated with Provided Resource Ids and Type. hints: readOnly: true destructive: false idempotent: false call: workspace-projects.getresourcesbyresourceids with: organizationId: tools.organizationId resourceType: tools.resourceType body: tools.body outputParameters: - type: object mapping: $. - name: get-paginated-resources-specified-type description: Get Paginated Resources of Specified Type Within a Project. hints: readOnly: true destructive: false idempotent: true call: workspace-projects.getresourcesbyprojectidbypage with: organizationId: tools.organizationId resourceType: tools.resourceType projectId: tools.projectId page: tools.page perPage: tools.perPage outputParameters: - type: object mapping: $. - name: set-project-ids-associated-provided description: Set the Project Ids Associated with Provided Resource of Type. hints: readOnly: false destructive: false idempotent: false call: workspace-projects.setresourceprojectids with: organizationId: tools.organizationId resourceType: tools.resourceType resourceId: tools.resourceId body: tools.body outputParameters: - type: object mapping: $. - name: get-project description: Get Project hints: readOnly: true destructive: false idempotent: true call: workspace-projects.getproject with: organizationId: tools.organizationId projectId: tools.projectId outputParameters: - type: object mapping: $. - name: update-project description: Update Project hints: readOnly: false destructive: false idempotent: true call: workspace-projects.updateproject with: organizationId: tools.organizationId projectId: tools.projectId body: tools.body outputParameters: - type: object mapping: $. - name: delete-project description: Delete Project hints: readOnly: false destructive: true idempotent: true call: workspace-projects.deleteproject with: organizationId: tools.organizationId projectId: tools.projectId outputParameters: - type: object mapping: $. - name: get-resource-ids-grouped-resource description: Get Resource Ids Grouped by Resource Status. hints: readOnly: true destructive: false idempotent: true call: workspace-projects.getprojectresourcesbystatus with: organizationId: tools.organizationId projectId: tools.projectId outputParameters: - type: object mapping: $. - name: get-resource-details-type description: Get Resource Details by Type. hints: readOnly: true destructive: false idempotent: true call: workspace-projects.getprojectresourcesdetailsbyresourcetype with: organizationId: tools.organizationId projectId: tools.projectId resourceType: tools.resourceType filter: tools.filter page: tools.page perPage: tools.perPage outputParameters: - type: object mapping: $. - name: get-all-resource-ids-specified description: Get All Resource Ids of Specified Type Within a Project. hints: readOnly: true destructive: false idempotent: true call: workspace-projects.getallprojectresourceidsoftype with: organizationId: tools.organizationId projectId: tools.projectId resourceType: tools.resourceType outputParameters: - type: object mapping: $. - name: add-single-resource-project description: Add a Single Resource to a Project. hints: readOnly: false destructive: false idempotent: true call: workspace-projects.addresourcetoproject with: organizationId: tools.organizationId projectId: tools.projectId resourceType: tools.resourceType resourceId: tools.resourceId outputParameters: - type: object mapping: $. - name: remove-specific-resource-project description: Remove a Specific Resource from a Project. hints: readOnly: false destructive: true idempotent: true call: workspace-projects.removeresourcefromproject with: organizationId: tools.organizationId projectId: tools.projectId resourceType: tools.resourceType resourceId: tools.resourceId outputParameters: - type: object mapping: $.