Coveo · Capability

Coveo Push API — Stream

Coveo Push API — Stream. 12 operations. Lead operation: Delete Old Documents. Self-contained Naftiko capability covering one Coveo business surface.

Run with Naftiko CoveoPushStream

What You Can Do

POST
Post — Delete Old Documents
/v1/organizations/{organizationid}/data-collections/{datacollectionid}/stream/deleteolderthan/{epochmilliseconds}
PUT
Put — Merge Entities of a Data Collection
/v1/organizations/{organizationid}/data-collections/{datacollectionid}/stream/merge
POST
Post — Open a Stream
/v1/organizations/{organizationid}/data-collections/{datacollectionid}/stream/open
PUT
Put — Update Entities of a Data Collection
/v1/organizations/{organizationid}/data-collections/{datacollectionid}/stream/update
POST
Post — Get a New Chunk for a Stream
/v1/organizations/{organizationid}/data-collections/{datacollectionid}/stream/{streamid}/chunk
POST
Post — Close a Stream
/v1/organizations/{organizationid}/data-collections/{datacollectionid}/stream/{streamid}/close
POST
Post — Delete Old Documents
/v1/organizations/{organizationid}/sources/{sourceid}/stream/deleteolderthan/{epochmilliseconds}
PUT
Put — Merge Documents of a Catalog Stream Source
/v1/organizations/{organizationid}/sources/{sourceid}/stream/merge
POST
Post — Open a Stream
/v1/organizations/{organizationid}/sources/{sourceid}/stream/open
PUT
Put — Update a Catalog Stream Source
/v1/organizations/{organizationid}/sources/{sourceid}/stream/update
POST
Post — Get a New Chunk for a Stream
/v1/organizations/{organizationid}/sources/{sourceid}/stream/{streamid}/chunk
POST
Post — Close a Stream
/v1/organizations/{organizationid}/sources/{sourceid}/stream/{streamid}/close

MCP Tools

delete-old-documents

Delete Old Documents

merge-entities-data-collection

Merge Entities of a Data Collection

idempotent
open-stream

Open a Stream

update-entities-data-collection

Update Entities of a Data Collection

idempotent
get-new-chunk-stream

Get a New Chunk for a Stream

read-only
close-stream

Close a Stream

delete-old-documents-2

Delete Old Documents

merge-documents-catalog-stream-source

Merge Documents of a Catalog Stream Source

idempotent
open-stream-2

Open a Stream

update-catalog-stream-source

Update a Catalog Stream Source

idempotent
get-new-chunk-stream-2

Get a New Chunk for a Stream

read-only
close-stream-2

Close a Stream

Capability Spec

push-stream.yaml Raw ↑
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: $.