naftiko: 1.0.0-alpha2 info: label: Coveo Search Pages API — In-App description: 'Coveo Search Pages API — In-App. 6 operations. Lead operation: Create InAppWidget. Self-contained Naftiko capability covering one Coveo business surface.' tags: - Coveo - Search Pages - In-App created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: COVEO_SEARCH_TOKEN: COVEO_SEARCH_TOKEN capability: consumes: - type: http namespace: search-pages-in-app baseUri: https://platform.cloud.coveo.com description: Coveo Search Pages API — In-App business capability. Self-contained, no shared references. authentication: type: bearer token: '{{env.COVEO_SEARCH_TOKEN}}' resources: - name: rest-organizations-organizationID-pages-inappwidget path: /rest/organizations/{organizationID}/pages/inappwidget operations: - name: post method: POST description: Create InAppWidget outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationID in: path type: string description: The unique identifier of the target [organization](https://docs.coveo.com/en/185) (e.g., 'mycoveocloudv2organizationg8tp8wu3'). required: true - name: body in: body type: string description: The configuration to use for the new InAppWidget. required: true - name: rest-organizations-organizationID-pages-inappwidget-pageID path: /rest/organizations/{organizationID}/pages/inappwidget/{pageID} operations: - name: put method: PUT description: Update InAppWidget outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationID in: path type: string description: The unique identifier of the target Coveo Cloud [organization](https://docs.coveo.com/en/185) (e.g., 'mycoveocloudv2organizationg8tp8wu3'). required: true - name: pageID in: path type: string description: The unique identifier of the search page whose corresponding InAppWidget should be updated (e.g., '12b627f9-e3aa-49db-a0f5-5c0c1392e59e'). required: true - name: body in: body type: string description: The new configuration to use for the updated InAppWidget. required: true - name: rest-organizations-organizationID-pages-inappwidgets path: /rest/organizations/{organizationID}/pages/inappwidgets operations: - name: get method: GET description: List InAppWidgets outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationID in: path type: string description: The unique identifier of the target [organization](https://docs.coveo.com/en/185/) (e.g., 'mycoveocloudv2organizationg8tp8wu3'). required: true - name: name in: query type: string description: The 'name' metadata value of the search page whose corresponding InAppWidget should be retrieved (e.g., 'mysearchpage'). - name: rest-organizations-organizationID-pages-inappwidgets-ids path: /rest/organizations/{organizationID}/pages/inappwidgets/ids operations: - name: post method: POST description: List InAppWidgets by Ids outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationID in: path type: string description: The unique identifier of the target [organization](https://docs.coveo.com/en/185/) (e.g., 'mycoveocloudv2organizationg8tp8wu3'). required: true - name: payload in: body type: array description: The list of ids required: true - name: rest-organizations-organizationID-pages-inappwidgets-projectid path: /rest/organizations/{organizationID}/pages/inappwidgets/projectid operations: - name: get method: GET description: List InAppWidgets by Project ID outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationID in: path type: string description: The unique identifier of the target [organization](https://docs.coveo.com/en/185/) (e.g., 'mycoveocloudv2organizationg8tp8wu3'). required: true - name: projectid in: query type: string description: The project id - name: rest-organizations-organizationID-pages-pageID-inappwidget-loader path: /rest/organizations/{organizationID}/pages/{pageID}/inappwidget/loader operations: - name: get method: GET description: Get InAppWidget Loader outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: organizationID in: path type: string description: The unique identifier of the target Coveo Cloud [organization](https://docs.coveo.com/en/185) whose InAppWidget loader should be retrieved (e.g., 'mycoveocloudv required: true - name: pageID in: path type: string description: The unique identifier of the search page whose corresponding InAppWidget loader should be retrieved (e.g., '12b627f9-e3aa-49db-a0f5-5c0c1392e59e'). required: true - name: access_token in: query type: string description:
An access token (e.g., [search token](https://docs.coveo.com/en/1346/) or API key) the loader should initialize the InAppWidget with.
If provided, this exposes: - type: rest namespace: search-pages-in-app-rest port: 8080 description: REST adapter for Coveo Search Pages API — In-App. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/organizations/{organizationid}/pages/inappwidget name: rest-organizations-organizationid-pages-inappwidget description: REST surface for rest-organizations-organizationID-pages-inappwidget. operations: - method: POST name: post description: Create InAppWidget call: search-pages-in-app.post with: organizationID: rest.organizationID body: rest.body outputParameters: - type: object mapping: $. - path: /v1/organizations/{organizationid}/pages/inappwidget/{pageid} name: rest-organizations-organizationid-pages-inappwidget-pageid description: REST surface for rest-organizations-organizationID-pages-inappwidget-pageID. operations: - method: PUT name: put description: Update InAppWidget call: search-pages-in-app.put with: organizationID: rest.organizationID pageID: rest.pageID body: rest.body outputParameters: - type: object mapping: $. - path: /v1/organizations/{organizationid}/pages/inappwidgets name: rest-organizations-organizationid-pages-inappwidgets description: REST surface for rest-organizations-organizationID-pages-inappwidgets. operations: - method: GET name: get description: List InAppWidgets call: search-pages-in-app.get with: organizationID: rest.organizationID name: rest.name outputParameters: - type: object mapping: $. - path: /v1/organizations/{organizationid}/pages/inappwidgets/ids name: rest-organizations-organizationid-pages-inappwidgets-ids description: REST surface for rest-organizations-organizationID-pages-inappwidgets-ids. operations: - method: POST name: post description: List InAppWidgets by Ids call: search-pages-in-app.post with: organizationID: rest.organizationID payload: rest.payload outputParameters: - type: object mapping: $. - path: /v1/organizations/{organizationid}/pages/inappwidgets/projectid name: rest-organizations-organizationid-pages-inappwidgets-projectid description: REST surface for rest-organizations-organizationID-pages-inappwidgets-projectid. operations: - method: GET name: get description: List InAppWidgets by Project ID call: search-pages-in-app.get with: organizationID: rest.organizationID projectid: rest.projectid outputParameters: - type: object mapping: $. - path: /v1/organizations/{organizationid}/pages/{pageid}/inappwidget/loader name: rest-organizations-organizationid-pages-pageid-inappwidget-loader description: REST surface for rest-organizations-organizationID-pages-pageID-inappwidget-loader. operations: - method: GET name: get description: Get InAppWidget Loader call: search-pages-in-app.get with: organizationID: rest.organizationID pageID: rest.pageID access_token: rest.access_token outputParameters: - type: object mapping: $. - type: mcp namespace: search-pages-in-app-mcp port: 9090 transport: http description: MCP adapter for Coveo Search Pages API — In-App. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: create-inappwidget description: Create InAppWidget hints: readOnly: false destructive: false idempotent: false call: search-pages-in-app.post with: organizationID: tools.organizationID body: tools.body outputParameters: - type: object mapping: $. - name: update-inappwidget description: Update InAppWidget hints: readOnly: false destructive: false idempotent: true call: search-pages-in-app.put with: organizationID: tools.organizationID pageID: tools.pageID body: tools.body outputParameters: - type: object mapping: $. - name: list-inappwidgets description: List InAppWidgets hints: readOnly: true destructive: false idempotent: true call: search-pages-in-app.get with: organizationID: tools.organizationID name: tools.name outputParameters: - type: object mapping: $. - name: list-inappwidgets-ids description: List InAppWidgets by Ids hints: readOnly: true destructive: false idempotent: false call: search-pages-in-app.post with: organizationID: tools.organizationID payload: tools.payload outputParameters: - type: object mapping: $. - name: list-inappwidgets-project-id description: List InAppWidgets by Project ID hints: readOnly: true destructive: false idempotent: true call: search-pages-in-app.get with: organizationID: tools.organizationID projectid: tools.projectid outputParameters: - type: object mapping: $. - name: get-inappwidget-loader description: Get InAppWidget Loader hints: readOnly: true destructive: false idempotent: true call: search-pages-in-app.get with: organizationID: tools.organizationID pageID: tools.pageID access_token: tools.access_token outputParameters: - type: object mapping: $.