naftiko: 1.0.0-alpha2 info: label: Coveo Push API — Stream description: 'Coveo Push API — Stream. 12 operations. Lead operation: Delete Old Documents. Self-contained Naftiko capability covering one Coveo business surface.' tags: - Coveo - Push - Stream created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: COVEO_API_KEY: COVEO_API_KEY capability: consumes: - type: http namespace: push-stream baseUri: https://api.cloud.coveo.com/push/v1 description: Coveo Push API — Stream business capability. Self-contained, no shared references. authentication: type: bearer token: '{{env.COVEO_API_KEY}}' resources: - name: organizations-organizationId-data-collections-dataCollectionId-stream-deleteolde path: /organizations/{organizationId}/data-collections/{dataCollectionId}/stream/deleteolderthan/{epochMilliseconds} operations: - name: post method: POST description: Delete Old Documents outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: 'The unique identifier of the target Coveo Cloud V2 organization. ' required: true - name: dataCollectionId in: path type: string description: 'The unique identifier of the data collection. ' required: true - name: epochMilliseconds in: path type: string description: 'The epoch milliseconds timestamp limit used to delete documents indexed before it. ' required: true - name: queueDelay in: query type: string description: A grace period (in minutes) whose purpose is to give the Coveo Cloud V2 indexing pipeline enough time to finish processing any previously enqueued operation tha - name: organizations-organizationId-data-collections-dataCollectionId-stream-merge path: /organizations/{organizationId}/data-collections/{dataCollectionId}/stream/merge operations: - name: put method: PUT description: Merge Entities of a Data Collection outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: 'The unique identifier of the target Coveo Cloud V2 organization. ' required: true - name: dataCollectionId in: path type: string description: 'The unique identifier of the data collection. ' required: true - name: fileId in: query type: string description: The unique identifier of the Amazon S3 file container into which the JSON definition of the content update was previously uploaded (see [Create a file container required: true - name: organizations-organizationId-data-collections-dataCollectionId-stream-open path: /organizations/{organizationId}/data-collections/{dataCollectionId}/stream/open operations: - name: post method: POST description: Open a Stream outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: 'The unique identifier of the target Coveo Cloud V2 organization. ' required: true - name: dataCollectionId in: path type: string description: 'The unique identifier of the data collection. ' required: true - name: organizations-organizationId-data-collections-dataCollectionId-stream-update path: /organizations/{organizationId}/data-collections/{dataCollectionId}/stream/update operations: - name: put method: PUT description: Update Entities of a Data Collection outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: 'The unique identifier of the target Coveo Cloud V2 organization. ' required: true - name: dataCollectionId in: path type: string description: 'The unique identifier of the data collection. ' required: true - name: fileId in: query type: string description: The unique identifier of the Amazon S3 file container into which the JSON definition of the content update was previously uploaded (see [Create a file container required: true - name: shard in: path type: string description: '**Experimental** An identifier to process the JSON payload by groups. The shard must be a string from 1 to 10 alphanumeric characters.' - name: organizations-organizationId-data-collections-dataCollectionId-stream-streamId-c path: /organizations/{organizationId}/data-collections/{dataCollectionId}/stream/{streamId}/chunk operations: - name: post method: POST description: Get a New Chunk for a Stream outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: 'The unique identifier of the target Coveo Cloud V2 organization. ' required: true - name: dataCollectionId in: path type: string description: 'The unique identifier of the data collection. ' required: true - name: streamId in: path type: string description: 'The unique identifier of the stream. ' required: true - name: organizations-organizationId-data-collections-dataCollectionId-stream-streamId-c path: /organizations/{organizationId}/data-collections/{dataCollectionId}/stream/{streamId}/close operations: - name: post method: POST description: Close a Stream outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: 'The unique identifier of the target Coveo Cloud V2 organization. ' required: true - name: dataCollectionId in: path type: string description: 'The unique identifier of the data collection. ' required: true - name: streamId in: path type: string description: 'The unique identifier of the stream. ' required: true - name: organizations-organizationId-sources-sourceId-stream-deleteolderthan-epochMillis path: /organizations/{organizationId}/sources/{sourceId}/stream/deleteolderthan/{epochMilliseconds} operations: - name: post method: POST description: Delete Old Documents outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: 'The unique identifier of the target Coveo Cloud V2 organization. ' required: true - name: sourceId in: path type: string description: 'The unique identifier of the target source. ' required: true - name: epochMilliseconds in: path type: string description: 'The epoch milliseconds timestamp limit used to delete documents indexed before it. ' required: true - name: queueDelay in: query type: string description: A grace period (in minutes) whose purpose is to give the Coveo Cloud V2 indexing pipeline enough time to finish processing any previously enqueued operation tha - name: organizations-organizationId-sources-sourceId-stream-merge path: /organizations/{organizationId}/sources/{sourceId}/stream/merge operations: - name: put method: PUT description: Merge Documents of a Catalog Stream Source outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: 'The unique identifier of the target Coveo Cloud V2 organization. ' required: true - name: sourceId in: path type: string description: 'The unique identifier of the target Push source (see [Creating a Push Source](https://developers.coveo.com/x/34s9Ag)). ' required: true - name: fileId in: query type: string description: The unique identifier of the Amazon S3 file container into which the JSON definition of the content update was previously uploaded (see [Create a file container required: true - name: organizations-organizationId-sources-sourceId-stream-open path: /organizations/{organizationId}/sources/{sourceId}/stream/open operations: - name: post method: POST description: Open a Stream outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: 'The unique identifier of the target Coveo Cloud V2 organization. ' required: true - name: sourceId in: path type: string description: 'The unique identifier of the target source. ' required: true - name: organizations-organizationId-sources-sourceId-stream-update path: /organizations/{organizationId}/sources/{sourceId}/stream/update operations: - name: put method: PUT description: Update a Catalog Stream Source outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: 'The unique identifier of the target Coveo Cloud V2 organization. ' required: true - name: sourceId in: path type: string description: 'The unique identifier of the target Push source (see [Creating a Push Source](https://developers.coveo.com/x/34s9Ag)). ' required: true - name: fileId in: query type: string description: The unique identifier of the Amazon S3 file container into which the JSON definition of the content update was previously uploaded (see [Create a file container required: true - name: shard in: path type: string description: '**Experimental** An identifier to process the JSON payload by groups. The shard must be a string from 1 to 10 alphanumeric characters.' - name: organizations-organizationId-sources-sourceId-stream-streamId-chunk path: /organizations/{organizationId}/sources/{sourceId}/stream/{streamId}/chunk operations: - name: post method: POST description: Get a New Chunk for a Stream outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: 'The unique identifier of the target Coveo Cloud V2 organization. ' required: true - name: sourceId in: path type: string description: 'The unique identifier of the target source. ' required: true - name: streamId in: path type: string description: 'The unique identifier of the stream. ' required: true - name: organizations-organizationId-sources-sourceId-stream-streamId-close path: /organizations/{organizationId}/sources/{sourceId}/stream/{streamId}/close operations: - name: post method: POST description: Close a Stream outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationId in: path type: string description: 'The unique identifier of the target Coveo Cloud V2 organization. ' required: true - name: sourceId in: path type: string description: 'The unique identifier of the target source. ' required: true - name: streamId in: path type: string description: 'The unique identifier of the stream. ' required: true exposes: - type: rest namespace: push-stream-rest port: 8080 description: REST adapter for Coveo Push API — Stream. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/organizations/{organizationid}/data-collections/{datacollectionid}/stream/deleteolderthan/{epochmilliseconds} name: organizations-organizationid-data-collections-datacollectionid-stream-deleteolde description: REST surface for organizations-organizationId-data-collections-dataCollectionId-stream-deleteolde. operations: - method: POST name: post description: Delete Old Documents call: push-stream.post with: organizationId: rest.organizationId dataCollectionId: rest.dataCollectionId epochMilliseconds: rest.epochMilliseconds queueDelay: rest.queueDelay outputParameters: - type: object mapping: $. - path: /v1/organizations/{organizationid}/data-collections/{datacollectionid}/stream/merge name: organizations-organizationid-data-collections-datacollectionid-stream-merge description: REST surface for organizations-organizationId-data-collections-dataCollectionId-stream-merge. operations: - method: PUT name: put description: Merge Entities of a Data Collection call: push-stream.put with: organizationId: rest.organizationId dataCollectionId: rest.dataCollectionId fileId: rest.fileId outputParameters: - type: object mapping: $. - path: /v1/organizations/{organizationid}/data-collections/{datacollectionid}/stream/open name: organizations-organizationid-data-collections-datacollectionid-stream-open description: REST surface for organizations-organizationId-data-collections-dataCollectionId-stream-open. operations: - method: POST name: post description: Open a Stream call: push-stream.post with: organizationId: rest.organizationId dataCollectionId: rest.dataCollectionId outputParameters: - type: object mapping: $. - path: /v1/organizations/{organizationid}/data-collections/{datacollectionid}/stream/update name: organizations-organizationid-data-collections-datacollectionid-stream-update description: REST surface for organizations-organizationId-data-collections-dataCollectionId-stream-update. operations: - method: PUT name: put description: Update Entities of a Data Collection call: push-stream.put with: organizationId: rest.organizationId dataCollectionId: rest.dataCollectionId fileId: rest.fileId shard: rest.shard outputParameters: - type: object mapping: $. - path: /v1/organizations/{organizationid}/data-collections/{datacollectionid}/stream/{streamid}/chunk name: organizations-organizationid-data-collections-datacollectionid-stream-streamid-c description: REST surface for organizations-organizationId-data-collections-dataCollectionId-stream-streamId-c. operations: - method: POST name: post description: Get a New Chunk for a Stream call: push-stream.post with: organizationId: rest.organizationId dataCollectionId: rest.dataCollectionId streamId: rest.streamId outputParameters: - type: object mapping: $. - path: /v1/organizations/{organizationid}/data-collections/{datacollectionid}/stream/{streamid}/close name: organizations-organizationid-data-collections-datacollectionid-stream-streamid-c description: REST surface for organizations-organizationId-data-collections-dataCollectionId-stream-streamId-c. operations: - method: POST name: post description: Close a Stream call: push-stream.post with: organizationId: rest.organizationId dataCollectionId: rest.dataCollectionId streamId: rest.streamId outputParameters: - type: object mapping: $. - path: /v1/organizations/{organizationid}/sources/{sourceid}/stream/deleteolderthan/{epochmilliseconds} name: organizations-organizationid-sources-sourceid-stream-deleteolderthan-epochmillis description: REST surface for organizations-organizationId-sources-sourceId-stream-deleteolderthan-epochMillis. operations: - method: POST name: post description: Delete Old Documents call: push-stream.post with: organizationId: rest.organizationId sourceId: rest.sourceId epochMilliseconds: rest.epochMilliseconds queueDelay: rest.queueDelay outputParameters: - type: object mapping: $. - path: /v1/organizations/{organizationid}/sources/{sourceid}/stream/merge name: organizations-organizationid-sources-sourceid-stream-merge description: REST surface for organizations-organizationId-sources-sourceId-stream-merge. operations: - method: PUT name: put description: Merge Documents of a Catalog Stream Source call: push-stream.put with: organizationId: rest.organizationId sourceId: rest.sourceId fileId: rest.fileId outputParameters: - type: object mapping: $. - path: /v1/organizations/{organizationid}/sources/{sourceid}/stream/open name: organizations-organizationid-sources-sourceid-stream-open description: REST surface for organizations-organizationId-sources-sourceId-stream-open. operations: - method: POST name: post description: Open a Stream call: push-stream.post with: organizationId: rest.organizationId sourceId: rest.sourceId outputParameters: - type: object mapping: $. - path: /v1/organizations/{organizationid}/sources/{sourceid}/stream/update name: organizations-organizationid-sources-sourceid-stream-update description: REST surface for organizations-organizationId-sources-sourceId-stream-update. operations: - method: PUT name: put description: Update a Catalog Stream Source call: push-stream.put with: organizationId: rest.organizationId sourceId: rest.sourceId fileId: rest.fileId shard: rest.shard outputParameters: - type: object mapping: $. - path: /v1/organizations/{organizationid}/sources/{sourceid}/stream/{streamid}/chunk name: organizations-organizationid-sources-sourceid-stream-streamid-chunk description: REST surface for organizations-organizationId-sources-sourceId-stream-streamId-chunk. operations: - method: POST name: post description: Get a New Chunk for a Stream call: push-stream.post with: organizationId: rest.organizationId sourceId: rest.sourceId streamId: rest.streamId outputParameters: - type: object mapping: $. - path: /v1/organizations/{organizationid}/sources/{sourceid}/stream/{streamid}/close name: organizations-organizationid-sources-sourceid-stream-streamid-close description: REST surface for organizations-organizationId-sources-sourceId-stream-streamId-close. operations: - method: POST name: post description: Close a Stream call: push-stream.post with: organizationId: rest.organizationId sourceId: rest.sourceId streamId: rest.streamId outputParameters: - type: object mapping: $. - type: mcp namespace: push-stream-mcp port: 9090 transport: http description: MCP adapter for Coveo Push API — Stream. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: delete-old-documents description: Delete Old Documents hints: readOnly: false destructive: false idempotent: false call: push-stream.post with: organizationId: tools.organizationId dataCollectionId: tools.dataCollectionId epochMilliseconds: tools.epochMilliseconds queueDelay: tools.queueDelay outputParameters: - type: object mapping: $. - name: merge-entities-data-collection description: Merge Entities of a Data Collection hints: readOnly: false destructive: false idempotent: true call: push-stream.put with: organizationId: tools.organizationId dataCollectionId: tools.dataCollectionId fileId: tools.fileId outputParameters: - type: object mapping: $. - name: open-stream description: Open a Stream hints: readOnly: false destructive: false idempotent: false call: push-stream.post with: organizationId: tools.organizationId dataCollectionId: tools.dataCollectionId outputParameters: - type: object mapping: $. - name: update-entities-data-collection description: Update Entities of a Data Collection hints: readOnly: false destructive: false idempotent: true call: push-stream.put with: organizationId: tools.organizationId dataCollectionId: tools.dataCollectionId fileId: tools.fileId shard: tools.shard outputParameters: - type: object mapping: $. - name: get-new-chunk-stream description: Get a New Chunk for a Stream hints: readOnly: true destructive: false idempotent: false call: push-stream.post with: organizationId: tools.organizationId dataCollectionId: tools.dataCollectionId streamId: tools.streamId outputParameters: - type: object mapping: $. - name: close-stream description: Close a Stream hints: readOnly: false destructive: false idempotent: false call: push-stream.post with: organizationId: tools.organizationId dataCollectionId: tools.dataCollectionId streamId: tools.streamId outputParameters: - type: object mapping: $. - name: delete-old-documents-2 description: Delete Old Documents hints: readOnly: false destructive: false idempotent: false call: push-stream.post with: organizationId: tools.organizationId sourceId: tools.sourceId epochMilliseconds: tools.epochMilliseconds queueDelay: tools.queueDelay outputParameters: - type: object mapping: $. - name: merge-documents-catalog-stream-source description: Merge Documents of a Catalog Stream Source hints: readOnly: false destructive: false idempotent: true call: push-stream.put with: organizationId: tools.organizationId sourceId: tools.sourceId fileId: tools.fileId outputParameters: - type: object mapping: $. - name: open-stream-2 description: Open a Stream hints: readOnly: false destructive: false idempotent: false call: push-stream.post with: organizationId: tools.organizationId sourceId: tools.sourceId outputParameters: - type: object mapping: $. - name: update-catalog-stream-source description: Update a Catalog Stream Source hints: readOnly: false destructive: false idempotent: true call: push-stream.put with: organizationId: tools.organizationId sourceId: tools.sourceId fileId: tools.fileId shard: tools.shard outputParameters: - type: object mapping: $. - name: get-new-chunk-stream-2 description: Get a New Chunk for a Stream hints: readOnly: true destructive: false idempotent: false call: push-stream.post with: organizationId: tools.organizationId sourceId: tools.sourceId streamId: tools.streamId outputParameters: - type: object mapping: $. - name: close-stream-2 description: Close a Stream hints: readOnly: false destructive: false idempotent: false call: push-stream.post with: organizationId: tools.organizationId sourceId: tools.sourceId streamId: tools.streamId outputParameters: - type: object mapping: $.