Coveo Statements V2 API

The Statements V2 API from Coveo — 10 operation(s) for statements v2.

Operations 13

GET /rest/search/v2/admin/pipelines/{pipelineId}/statements List Query Pipeline Statements #
POST /rest/search/v2/admin/pipelines/{pipelineId}/statements Create Query Pipeline Statement #
GET /rest/search/v2/admin/pipelines/{pipelineId}/statements/{statementId} Get Query Pipeline Statement #
PUT /rest/search/v2/admin/pipelines/{pipelineId}/statements/{statementId} Update Query Pipeline Statement #
DELETE /rest/search/v2/admin/pipelines/{pipelineId}/statements/{statementId} Delete Query Pipeline Statement #
POST /rest/search/v2/admin/pipelines/{pipelineId}/statements/bulkGet List Query Pipeline Statements #
POST /rest/search/v2/admin/pipelines/{pipelineId}/statements/bulkDelete Bulk Delete Query Pipeline Statements #
POST /rest/search/v2/admin/pipelines/{pipelineId}/statements/copy Copy Query Pipeline Statements #
GET /rest/search/v2/admin/pipelines/{pipelineId}/statements/export Export Query Pipeline Statements #
POST /rest/search/v2/admin/pipelines/{pipelineId}/statements/import Import Query Pipeline Statements #
PUT /rest/search/v2/admin/pipelines/{pipelineId}/statements/{statementId}/move Move Query Pipeline Statement #
POST /rest/search/v2/admin/pipelines/{pipelineId}/statements/validate Validate a Single Statement Operation. #
POST /rest/search/v2/admin/pipelines/{pipelineId}/statements/validate/batch Validate a Batch of Statement Operations. #

Documentation

Specifications

Schemas & Data

📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-schema/coveo-search-passagev3-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-schema/coveo-search-restfacetrequest-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-schema/coveo-search-restfacetresult-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-schema/coveo-search-restfacetresultvalue-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-schema/coveo-search-restgroupby-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-schema/coveo-search-restgroupbyresult-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-schema/coveo-search-restgroupbyvalue-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-schema/coveo-search-resthighlightresponse-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-schema/coveo-search-restquerycorrection-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-schema/coveo-search-restqueryfunction-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-schema/coveo-search-restqueryparameters-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-schema/coveo-search-restqueryparentresult-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-schema/coveo-search-restqueryresponse-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-schema/coveo-search-restqueryresult-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-schema/coveo-search-restrankingfunction-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-schema/coveo-search-retrievepassagesrequestv3-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-schema/coveo-search-retrievepassagesresponsev3-schema.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-structure/coveo-search-passagev3-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-structure/coveo-search-restfacetrequest-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-structure/coveo-search-restfacetresult-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-structure/coveo-search-restfacetresultvalue-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-structure/coveo-search-restgroupby-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-structure/coveo-search-restgroupbyresult-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-structure/coveo-search-restgroupbyvalue-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-structure/coveo-search-resthighlightresponse-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-structure/coveo-search-restquerycorrection-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-structure/coveo-search-restqueryfunction-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-structure/coveo-search-restqueryparameters-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-structure/coveo-search-restqueryparentresult-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-structure/coveo-search-restqueryresponse-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-structure/coveo-search-restqueryresult-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-structure/coveo-search-restrankingfunction-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-structure/coveo-search-retrievepassagesrequestv3-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/json-structure/coveo-search-retrievepassagesresponsev3-structure.json

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/coveo-statements-v2-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

coveo-statements-v2-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Coveo Search Statements V2 API
  description: Documentation for Coveo Search API
  termsOfService: http://www.coveo.com/en/support/terms-agreements
  contact:
    name: support@coveo.com
  license:
    name: ''
  version: 1.0.0
  x-ApiVersion: V3
servers:
- url: https://platform.cloud.coveo.com
  description: Coveo public API endpoint
tags:
- name: Statements V2
  x-displayName: Statements
paths:
  /rest/search/v2/admin/pipelines/{pipelineId}/statements:
    get:
      tags:
      - Statements V2
      summary: List Query Pipeline Statements
      description: 'Gets a sorted page of query pipeline statements matching certain criteria from a specific query pipeline.

        <details>

        <summary>Privilege(s) required</summary>


        ```json

        {"level":"NORMAL","owner":"SEARCH_API","targetDomain":"QUERY_PIPELINE","type":"VIEW","targetId":"*"}

        ```

        </details>'
      operationId: listQueryPipelineStatementsV2
      parameters:
      - $ref: '#/components/parameters/PipelineIdPath'
      - $ref: '#/components/parameters/IsOrderAscending'
      - $ref: '#/components/parameters/Filter'
      - $ref: '#/components/parameters/SortBy'
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PerPage'
      - $ref: '#/components/parameters/Feature'
      - $ref: '#/components/parameters/SubFeature'
      - $ref: '#/components/parameters/OrganizationIdQuery'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OutgoingStatements'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '419':
          $ref: '#/components/responses/AuthenticationTimeout'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
      - oauth2:
        - full
    post:
      tags:
      - Statements V2
      summary: Create Query Pipeline Statement
      description: 'Creates a new query pipeline statement in a specific query pipeline.

        <details>

        <summary>Privilege(s) required</summary>


        ```json

        {"level":"NORMAL","owner":"SEARCH_API","targetDomain":"QUERY_PIPELINE","type":"EDIT","targetId":"{pipelineId}"}

        ```

        </details>'
      operationId: createQueryPipelineStatementV2
      parameters:
      - $ref: '#/components/parameters/PipelineIdPath'
      - $ref: '#/components/parameters/OrganizationIdQuery'
      requestBody:
        description: The query pipeline statement information.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IncomingStatement'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OutgoingStatement'
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OutgoingStatement'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '419':
          $ref: '#/components/responses/AuthenticationTimeout'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
      - oauth2:
        - full
  /rest/search/v2/admin/pipelines/{pipelineId}/statements/{statementId}:
    get:
      tags:
      - Statements V2
      summary: Get Query Pipeline Statement
      description: 'Gets a single query pipeline statement from a specific query pipeline.

        <details>

        <summary>Privilege(s) required</summary>


        ```json

        {"level":"NORMAL","owner":"SEARCH_API","targetDomain":"QUERY_PIPELINE","type":"VIEW","targetId":"*"}

        ```

        </details>'
      operationId: getQueryPipelineStatementV2
      parameters:
      - $ref: '#/components/parameters/PipelineIdPath'
      - $ref: '#/components/parameters/StatementIdPath'
      - $ref: '#/components/parameters/OrganizationIdQuery'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OutgoingStatement'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '419':
          $ref: '#/components/responses/AuthenticationTimeout'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
      - oauth2:
        - full
    put:
      tags:
      - Statements V2
      summary: Update Query Pipeline Statement
      description: 'Updates a single query pipeline statement in a specific query pipeline.

        <details>

        <summary>Privilege(s) required</summary>


        ```json

        {"level":"NORMAL","owner":"SEARCH_API","targetDomain":"QUERY_PIPELINE","type":"VIEW","targetId":"{pipelineId}"},

        {"level":"NORMAL","owner":"SEARCH_API","targetDomain":"QUERY_PIPELINE","type":"EDIT","targetId":"{pipelineId}"}

        ```

        </details>'
      operationId: updateQueryPipelineStatement
      parameters:
      - $ref: '#/components/parameters/PipelineIdPath'
      - $ref: '#/components/parameters/StatementIdPath'
      - $ref: '#/components/parameters/OrganizationIdQuery'
      requestBody:
        description: The updated query pipeline statement information.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IncomingStatement'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OutgoingStatement'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '419':
          $ref: '#/components/responses/AuthenticationTimeout'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
      - oauth2:
        - full
    delete:
      tags:
      - Statements V2
      summary: Delete Query Pipeline Statement
      description: 'Deletes a single query pipeline statement from a specific query pipeline.

        <details>

        <summary>Privilege(s) required</summary>


        ```json

        {"level":"NORMAL","owner":"SEARCH_API","targetDomain":"QUERY_PIPELINE","type":"VIEW","targetId":"{pipelineId}"},

        {"level":"NORMAL","owner":"SEARCH_API","targetDomain":"QUERY_PIPELINE","type":"EDIT","targetId":"{pipelineId}"}

        ```

        </details>'
      operationId: deleteQueryPipelineStatementV2
      parameters:
      - $ref: '#/components/parameters/PipelineIdPath'
      - $ref: '#/components/parameters/StatementIdPath'
      - $ref: '#/components/parameters/OrganizationIdQuery'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: string
        '204':
          description: No content
          content: {}
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '419':
          $ref: '#/components/responses/AuthenticationTimeout'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
      - oauth2:
        - full
  /rest/search/v2/admin/pipelines/{pipelineId}/statements/bulkGet:
    post:
      tags:
      - Statements V2
      summary: List Query Pipeline Statements
      description: 'Gets a sorted page of query pipeline statements matching certain criteria from a specific query pipeline.

        <details>

        <summary>Privilege(s) required</summary>


        ```json

        {"level":"NORMAL","owner":"SEARCH_API","targetDomain":"QUERY_PIPELINE","type":"VIEW","targetId":"*"}

        ```

        </details>'
      operationId: bulkGetStatementsOperationV2
      parameters:
      - $ref: '#/components/parameters/PipelineIdPath'
      - $ref: '#/components/parameters/OrganizationIdQuery'
      - $ref: '#/components/parameters/IsOrderAscending'
      - $ref: '#/components/parameters/Filter'
      - $ref: '#/components/parameters/SortBy'
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PerPage'
      - $ref: '#/components/parameters/Feature'
      requestBody:
        description: A set of parameters to customize the results.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RestBulkGetRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OutgoingStatements'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '419':
          $ref: '#/components/responses/AuthenticationTimeout'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
      - oauth2:
        - full
  /rest/search/v2/admin/pipelines/{pipelineId}/statements/bulkDelete:
    post:
      tags:
      - Statements V2
      summary: Bulk Delete Query Pipeline Statements
      description: 'Delete multiple statements at once for a specific pipeline.

        <details>

        <summary>Privilege(s) required</summary>


        ```json

        {"level":"NORMAL","owner":"SEARCH_API","targetDomain":"QUERY_PIPELINE","type":"EDIT","targetId":"{pipelineId}"}

        ```

        </details>'
      operationId: bulkDeleteStatements
      parameters:
      - $ref: '#/components/parameters/PipelineIdPath'
      - $ref: '#/components/parameters/OrganizationIdQuery'
      requestBody:
        description: The statements to delete
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkDeleteStatementsRequest'
        required: true
      responses:
        '200':
          description: Deleted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkDeleteResultStatementsResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '419':
          $ref: '#/components/responses/AuthenticationTimeout'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
      - oauth2:
        - full
  /rest/search/v2/admin/pipelines/{pipelineId}/statements/copy:
    post:
      tags:
      - Statements V2
      summary: Copy Query Pipeline Statements
      description: 'Copies specific statements from an origin to a target query pipeline. Using the same pipeline as origin and target will duplicate the specified statements in that pipeline.

        <details>

        <summary>Privilege(s) required</summary>


        ```json

        {"level":"NORMAL","owner":"SEARCH_API","targetDomain":"QUERY_PIPELINE","type":"VIEW","targetId":"{pipelineId}"},

        {"level":"NORMAL","owner":"SEARCH_API","targetDomain":"QUERY_PIPELINE","type":"EDIT","targetId":"{pipelineId}"}

        ```

        </details>'
      operationId: copyQueryPipelineStatements
      parameters:
      - $ref: '#/components/parameters/PipelineIdPath'
      - $ref: '#/components/parameters/OrganizationIdQuery'
      requestBody:
        description: The copy operation to perform.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IncomingCopyStatements'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OutgoingStatements'
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OutgoingStatement'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '419':
          $ref: '#/components/responses/AuthenticationTimeout'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
      - oauth2:
        - full
  /rest/search/v2/admin/pipelines/{pipelineId}/statements/export:
    get:
      tags:
      - Statements V2
      summary: Export Query Pipeline Statements
      description: 'Exports the definition, condition, and description of statements from a specific query pipeline to a CSV file.

        <details>

        <summary>Privilege(s) required</summary>


        ```json

        {"level":"NORMAL","owner":"SEARCH_API","targetDomain":"QUERY_PIPELINE","type":"VIEW","targetId":"*"}

        ```

        </details>'
      operationId: exportQueryPipelineStatements
      parameters:
      - $ref: '#/components/parameters/PipelineIdPath'
      - $ref: '#/components/parameters/Feature'
      - $ref: '#/components/parameters/OrganizationIdQuery'
      responses:
        '200':
          description: OK
          content:
            text/csv:
              schema:
                type: string
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '419':
          $ref: '#/components/responses/AuthenticationTimeout'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
      - oauth2:
        - full
  /rest/search/v2/admin/pipelines/{pipelineId}/statements/import:
    post:
      tags:
      - Statements V2
      summary: Import Query Pipeline Statements
      description: 'Import the definition, condition, and description of statements from a CSV file to a specific query pipeline.

        <details>

        <summary>Privilege(s) required</summary>


        ```json

        {"level":"NORMAL","owner":"SEARCH_API","targetDomain":"QUERY_PIPELINE","type":"EDIT","targetId":"{pipelineId}"}

        ```

        </details>'
      operationId: importQueryPipelineStatementsV2
      parameters:
      - $ref: '#/components/parameters/PipelineIdPath'
      - $ref: '#/components/parameters/Feature'
      - $ref: '#/components/parameters/OrganizationIdQuery'
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              required:
              - fileName
              properties:
                fileName:
                  type: string
                  format: binary
      responses:
        '204':
          description: Imported
          content:
            application/json:
              schema:
                type: string
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '419':
          $ref: '#/components/responses/AuthenticationTimeout'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
      - oauth2:
        - full
  /rest/search/v2/admin/pipelines/{pipelineId}/statements/{statementId}/move:
    put:
      tags:
      - Statements V2
      summary: Move Query Pipeline Statement
      description: 'Sets the position of a query pipeline statement in a specific query pipeline and updates other statement positions as appropriate.

        <details>

        <summary>Privilege(s) required</summary>


        ```json

        {"level":"NORMAL","owner":"SEARCH_API","targetDomain":"QUERY_PIPELINE","type":"EDIT","targetId":"{pipelineId}"}

        ```

        </details>'
      operationId: moveQueryPipelineStatementV2
      parameters:
      - $ref: '#/components/parameters/PipelineIdPath'
      - $ref: '#/components/parameters/StatementIdPath'
      - $ref: '#/components/parameters/OrganizationIdQuery'
      requestBody:
        description: The move operation to perform.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IncomingMoveStatement'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                description: The matching statements in the current page of results.
                items:
                  $ref: '#/components/schemas/OutgoingStatement'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '419':
          $ref: '#/components/responses/AuthenticationTimeout'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
      - oauth2:
        - full
  /rest/search/v2/admin/pipelines/{pipelineId}/statements/validate:
    post:
      tags:
      - Statements V2
      summary: Validate a Single Statement Operation.
      description: 'Validate that a specific operation would be accepted by our API and executed.

        <details>

        <summary>Privilege(s) required</summary>


        ```json

        {"level":"NORMAL","owner":"SEARCH_API","targetDomain":"QUERY_PIPELINE","type":"VIEW","targetId":"{pipelineId}"}

        ```

        </details>'
      operationId: validateStatementOperationV2
      parameters:
      - $ref: '#/components/parameters/OrganizationIdQuery'
      - $ref: '#/components/parameters/PipelineIdPath'
      requestBody:
        description: An object that contains an operation to validate.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RestSingleOperationValidationRequestIncomingStatement'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestSingleOperationValidationResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '419':
          $ref: '#/components/responses/AuthenticationTimeout'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
      - oauth2:
        - full
  /rest/search/v2/admin/pipelines/{pipelineId}/statements/validate/batch:
    post:
      tags:
      - Statements V2
      summary: Validate a Batch of Statement Operations.
      description: "\n Validate that a list of operations would be accepted by our API and executed.\n A maximum of 15 can be processed per request.\n<details>\n<summary>Privilege(s) required</summary>\n\n```json\n{\"level\":\"NORMAL\",\"owner\":\"SEARCH_API\",\"targetDomain\":\"QUERY_PIPELINE\",\"type\":\"VIEW\",\"targetId\":\"{pipelineId}\"}\n```\n</details>"
      operationId: validateStatementsOperationsV2
      parameters:
      - $ref: '#/components/parameters/OrganizationIdQuery'
      - $ref: '#/components/parameters/PipelineIdPath'
      requestBody:
        description: An object that contains the list of operations to validate.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RestBatchOperationValidationRequestIncomingStatement'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestBatchOperationValidationResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '419':
          $ref: '#/components/responses/AuthenticationTimeout'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      security:
      - oauth2:
        - full
components:
  parameters:
    Feature:
      name: feature
      in: query
      description: 'The query pipeline feature to match.


        **Allowed values:** `when`, `filter`, `trigger`, `stop`, `thesaurus`, `topClicks`, `querySuggest`, `rankingweight`, `recommendation`, and `queryParamOverride`.


        By default, results are not required to match a specific query pipeline feature.'
      schema:
        type: string
    PipelineIdPath:
      name: pipelineId
      in: path
      description: The unique identifier of the target query pipeline.
      required: true
      schema:
        type: string
    PerPage:
      name: perPage
      in: query
      description: The number of results to include per page.
      schema:
        type: integer
        format: int32
        minimum: 0
        maximum: 200
        default: 20
    OrganizationIdQuery:
      name: organizationId
      in: query
      description: 'The unique identifier of the target Coveo Cloud organization.


        Specifying a value for this parameter is only necessary when you are authenticating the API call with an OAuth2 token.'
      example: mycoveocloudv2organization
      schema:
        type: string
    StatementIdPath:
      name: statementId
      in: path
      description: The unique identifier of the target statement.
      required: true
      schema:
        type: string
    SortBy:
      name: sortBy
      in: query
      description: 'The sort criteria to apply on the results.


        **Allowed values:** `definition`, `description`, and `position`.


        **Default:** `position`'
      schema:
        type: string
    IsOrderAscending:
      name: isOrderAscending
      in: query
      description: Whether to sort the results in ascending order.
      schema:
        type: boolean
        default: true
    SubFeature:
      name: subFeature
      in: query
      style: form
      explode: true
      description: 'The query pipeline sub-feature to match.


        **Allowed values:**


        - Parameter overrides: `queryParamOverride` and `querySuggestParamOverride`.


        By default, results are not required to match a specific query pipeline sub-feature.'
      schema:
        type: array
        items:
          $ref: '#/components/schemas/SubFeature'
    Page:
      name: page
      in: query
      description: The 0-based number of the page of results to get.
      schema:
        type: integer
        format: int32
        default: 0
        minimum: 0
    Filter:
      name: filter
      in: query
      description: 'The query filter to match.


        This allows you to search within query pipeline statement definitions and descriptions.


        By default, results are not required to match a specific query filter.'
      schema:
        type: string
  schemas:
    IncomingMoveStatement:
      type: object
      properties:
        position:
          type: integer
          description: 'The 1-based position of this statement relative to other statements in the target query pipeline.


            Use either this property or the `after` property (not both) to move this statement.'
          format: int32
        after:
          type: string
          description: 'The unique identifier of the statement after which to move this statement in the target query pipeline.


            Use either this property or the `position` property (not both) to move this statement.'
          example: 0befc717-dfd7-4962-9b85-28f5c26fd23b
        pageSize:
          type: integer
          description: '> This parameter is exposed for backward compatibility reasons only.'
          format: int32
          deprecated: true
    RestBatchOperationValidationResponse:
      required:
      - results
      type: object
      properties:
        results:
          type: array
          description: The list of operation validation results.
          items:
            $ref: '#/components/schemas/RestOperationValidationResponse'
    IncomingCopyStatements:
      required:
      - destinationPipelineId
      - statementIds
      type: object
      properties:
        statementIds:
          type: array
          description: The unique identifiers of the query pipeline statements to copy.
          example:
          - 4f0a9531-4fab-45fd-a1e3-eb07a5aceccb
          items:
            type: string
        destinationPipelineId:
          type: string
          description: The unique identifier of the query pipeline to copy the statements to.
          example: 120deecf-7822-4d7b-885f-53f184a3a76
    OperatorExpression:
      type: object
      required:
      - operator
      - left
      properties:
        operator:
          type: string
        left:
          $ref: '#/components/schemas/OperatorLeftHandSide'
        right:
          $ref: '#/components/schemas/OperatorRightHandSide'
    BulkDeleteStatementsRequest:
      type: object
      required:
      - ids
      properties:
        ids:
          type: array
          description: A list of resource identifiers to delete. A maximum of **100** can be sent.
          maxItems: 100
          items:
            type: string
            maxLength: 38
    RestOperationValidationRequestIncomingStatement:
      required:
      - operationType
      type: object
      properties:
        operationType:
          $ref: '#/components/schemas/ValidationOperationType'
        model:
          $ref: '#/components/schemas/IncomingStatement'
        resourceId:
          type: string
          description: The identifier of the resource when `operationType` is `UPDATE` or `DELETE`.
          example: id
    BulkDeleteResultStatementsResponse:
      type: object
    OutgoingConditionFeature:
      type: string
      description: '> This property is exposed for backward compatibility reasons.'
      deprecated: true
      enum:
      - when
    RestOperationValidationResponse:
      required:
      - operationType
      - operationValid
      type: object
      properties:
        operationType:
          type: string
          description: The type of operation that has been validated.
          example: CREATE
        operationValid:
          type: boolean
          description: Whether the operation to validate was successful or not.
          example: true
        resourceId:
          type: string
          description: 'The identifier of the resource. '
          example: id
        validationErrors:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/RestOperationValidationError'
          description: If the operation failed, the `validationError` will contains the error message.
          example: Access Denied. You don't have the required privileges to perform  this operation.
    SubFeature:
      type: string
      description: 'The query pipeline sub-feature expressed by this statement.


        **Allowed values:**


        - Parameter overrides: `queryParamOverride` and `querySuggestParamOverride`.'
      enum:
      - queryParamOverride
      - querySuggestParamOverride
    ValidationOperationType:
      type: string
      description: 'The type of operation to validate. Each operation type has specific validation rules.


        Additional request parameters are required based on the type of operation to validate:

        - `CREATE`: You must provide a `model`.

        - `UPDATE`: You must provide a `model` and a `resourceId`.

        - `DELETE`: You must provide a `resourceId`.

        '
      example: CREATE
      enum:
      - CREATE
      - UPDATE
      - DELETE
    RestSingleOperationValidationRequestIncomingStatement:
      required:
      - operation
      type: object
      properties:
        operation:
          $ref: '#/components/schemas/RestOperationValidationRequestIncomingStatement'
    RestBatchOperationValidationRequestIncomingStatement:
      required:
      - operations
      type: object
      properties:
        operations:
          type: array
          description: A list of operations to validate.
          example:
          - operationType: CREATE
            model: {}
          - operationType: UPDATE
            model: {}
            resourceId: resource-id
          - operationType: DELETE
            resourceId: resource-id
          items:
            $ref: '#/components/schemas/RestOperationValidationRequestIncomingStatement'
    RestSingleOperationValidationResponse:
      required:
      - result
      type: object
      properties:
        result:
          $ref: '#/components/schemas/RestOperationValidationResponse'
    OperatorRightHandSide:
      oneOf:
      - type: string
      - type: number
      - type: integer
        format: int32
      - type: boolean
    ConditionDetailed:
      type: object
      required:
      - condition
      properties:
        condition:
          $ref: '#/components/schemas/BooleanExpression'
    OutgoingStatements:
      required:
      - statements
      - totalCount
      - totalEntries
      - totalPages
      type: object
      properties:
        statements:
          type: array
          description: The matching statements in the current page of results.
          items:
            $ref: '#/components/schemas/OutgoingStatement'
        totalEntries:
          type: integer
          description: The total number of matching statements across all pages of results.
          format: int32
          example: 1
        totalPages:
          type: integer
          description: The total number of available pages of results.
          format: int32
          example: 1
        totalCount:
          type: integer
          description: '> This property is exposed for backward compatibility reasons. Use the `totalEntries` property instead.


            The total number of matching entries across all pages of results.'
          format: int32
          example: 1
          deprecated: true
    OutgoingCondition:
      allOf:
      - $ref: '#/components/schemas/OutgoingConditionBase'
    CompoundBooleanExpression:
      type: object
      required:
      - operator
      - left
      properties:
        operator:
          type: string
        left:
          $ref: '#/components/schemas/BooleanExpression'
        right:
          $ref: '#/components/schemas/BooleanExpression'
    IsBetweenOperator:
      type: object
      required:
      - operator
      - left
      - from
      - to
      properties:
        operator:
          type: string
          enum:
          - isBetween
        left:
          $ref: '#/components/schemas/OperatorLeftHandSide'
        from:
          type: string
          format: date-time
        to:
          type: string
          format: date-time
    OutgoingStatement:
      required:
      - childrenCount
      - definition
      - detailed
      - feature
      - id
      - position
      - ready
      type: object
      properties:
        id:
          type: string
          description: The unique identifier of this statement.
          example: 0befc717-dfd7-4962-9b85-28f5c26fd23b
        description:
          type: string
          description: The intended purpose of this statement in an actual implementation.
          example: Spotlight the Coveo brand in query results.
        feature:
          type: string
          description: The query pipeline

# --- truncated at 32 KB (44 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/coveo/refs/heads/main/openapi/coveo-statements-v2-api-openapi.yml