openapi: 3.0.1
info:
title: Coveo Activity Activities Configuration API
description: API for Coveo Platform
termsOfService: https://www.coveo.com/en/support/terms-agreements
contact:
name: Coveo
url: https://connect.coveo.com/s/discussions
version: 1.0.0
servers:
- url: https://platform.cloud.coveo.com
description: Coveo public API endpoint
security:
- oauth2:
- full
tags:
- name: Configuration
paths:
/rest/organizations/{organizationId}/searchinterfaces:
get:
operationId: get-all-interface-config
summary: List Search Interface Configurations
description: Lists the search interface configurations in a [Coveo organization](https://docs.coveo.com/en/185/).
tags:
- Configuration
parameters:
- $ref: '#/components/parameters/organization-id'
- $ref: '#/components/parameters/filter'
- $ref: '#/components/parameters/order'
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/perPage'
responses:
'200':
description: Ok
post:
operationId: create-interface-config
summary: Create Search Interface Configuration
description: Creates a search interface configuration in a [Coveo organization](https://docs.coveo.com/en/185/).
tags:
- Configuration
parameters:
- $ref: '#/components/parameters/organization-id'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/interface-config'
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/interface-config-id'
/rest/organizations/{organizationId}/searchinterfaces/projects/interfaces:
get:
operationId: get-project-interface-config
summary: List Search Interface Configurations in a Project
description: Lists the search interface configurations in a [Coveo organization](https://docs.coveo.com/en/185/) and a [project](https://docs.coveo.com/en/n7ef0517/manage-an-organization/manage-projects).
tags:
- Configuration
parameters:
- $ref: '#/components/parameters/organization-id'
- $ref: '#/components/parameters/filter'
- $ref: '#/components/parameters/order'
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/perPage'
- $ref: '#/components/parameters/projectId'
responses:
'200':
description: Ok
/rest/organizations/{organizationId}/searchinterfaces/{interfaceId}:
get:
operationId: get-interface-config
summary: Show Search Interface Configuration
description: Shows a search interface configuration in a [Coveo organization](https://docs.coveo.com/en/185/).
tags:
- Configuration
parameters:
- $ref: '#/components/parameters/organization-id'
- $ref: '#/components/parameters/interface-id'
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/interface-config-id'
'404':
description: Not Found
put:
operationId: update-interface-config
summary: Update Search Interface Configuration
description: Updates a search interface configuration in a [Coveo organization](https://docs.coveo.com/en/185/).
tags:
- Configuration
parameters:
- $ref: '#/components/parameters/organization-id'
- $ref: '#/components/parameters/interface-id'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/interface-config'
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/interface-config-id'
'404':
description: Not Found
delete:
operationId: delete-interface-config
summary: Delete Search Interface Configuration
description: Deletes a search interface configuration in a [Coveo organization](https://docs.coveo.com/en/185/).
tags:
- Configuration
parameters:
- $ref: '#/components/parameters/organization-id'
- $ref: '#/components/parameters/interface-id'
responses:
'204':
description: No Content
'404':
description: Not Found
/rest/organizations/{organizationId}/searchinterfaces/{interfaceId}/accesses:
get:
operationId: get-interface-access
summary: List Search Interface Accesses
description: Lists the accesses to a target search interface in a [Coveo organization](https://docs.coveo.com/en/185/).
tags:
- Configuration
parameters:
- $ref: '#/components/parameters/organization-id'
- $ref: '#/components/parameters/interface-id'
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/interface-access'
'404':
description: Not Found
put:
operationId: update-interface-access
summary: Update Search Interface Accesses
description: Updates the accesses to a target search interface in a [Coveo organization](https://docs.coveo.com/en/185/).
tags:
- Configuration
parameters:
- $ref: '#/components/parameters/organization-id'
- $ref: '#/components/parameters/interface-id'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/interface-access'
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/interface-access'
'404':
description: Not Found
/rest/organizations/{organizationId}/searchinterfaces/{interfaceId}/accesses/users:
get:
operationId: get-interface-user-access
summary: List Search Interface User Accesses
description: Lists the accesses to a target search interface in a [Coveo organization](https://docs.coveo.com/en/185/).
tags:
- Configuration
parameters:
- $ref: '#/components/parameters/organization-id'
- $ref: '#/components/parameters/interface-id'
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/interface-user-list'
'404':
description: Not Found
put:
operationId: update-interface-user-access
summary: Update Search Interface User Accesses
description: Updates the accesses to a target search interface in a [Coveo organization](https://docs.coveo.com/en/185/).
tags:
- Configuration
parameters:
- $ref: '#/components/parameters/organization-id'
- $ref: '#/components/parameters/interface-id'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/interface-user-list'
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/interface-user-list'
'404':
description: Not Found
post:
operationId: add-interface-user-access
summary: Add Search Interface User Accesses
description: Adds user accesses to a target search interface in a [Coveo organization](https://docs.coveo.com/en/185/).
tags:
- Configuration
parameters:
- $ref: '#/components/parameters/organization-id'
- $ref: '#/components/parameters/interface-id'
- $ref: '#/components/parameters/notify'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/interface-add-user'
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/interface-user-list'
'404':
description: Not Found
components:
schemas:
interface-config:
type: object
properties:
name:
type: string
description: A short descriptive name to help manage search pages.
example: ExStore
title:
type: string
description: The title of the search interface configuration. Will be displayed as the HTML page title.
example: My example store search page
facets:
type: array
description: The list of facets to display in the search interface.
items:
properties:
field:
type: string
description: The [field](https://docs.coveo.com/en/200) on which the facet is based.
label:
type: string
description: The label of the facet.
example:
- field: source
label: Source
- field: objecttype
label: Object Type
sortCriteria:
type: array
description: The array of sort criteria the end user can select when interacting with the search interface.
items:
properties:
by:
type: string
description: 'The kind of sort criterion. Required.
**Allowed values:**
- `relevancy`
- `date`
- `field`: sort based on the values of a target field, which you need to specify in the `field` parameter.'
enum:
- relevancy
- date
- field
label:
type: string
description: The label of the sort criterion. Required.
field:
type: string
description: The [field](https://docs.coveo.com/en/200) on which the sort is based. Required when `by` value is `field`, and ignored otherwise.
Must be [sortable in the index](https://docs.coveo.com/en/1833/index-content/add-or-edit-a-field#sortable).
order:
type: string
enum:
- ASC
- DESC
description: 'The sort direction, if applicable.
Default behaviour is a follows:
- If the `by` value is `relevancy`, this parameter does not apply.
- If the `by` value is `date`, the default value is `DESC`.
- If the `by` value is anything else, the default value is `ASC`.
**Allowed values:**
- `ASC`: ascending
- `DESC`: descending'
required:
- by
- label
example:
- by: relevancy
label: Relevance
- by: date
label: Date
order: DESC
- by: field
label: Price
field: price
order: ASC
accesses:
$ref: '#/components/schemas/interface-access'
content:
$ref: '#/components/schemas/interface-content'
layout:
type: string
enum:
- LIST
- GRID
required:
- name
interface-config-id:
type: object
properties:
id:
type: string
description: The unique identifier of the search interface configuration.
example: 123e4567-e89b-12d3-a456-426614174000
name:
type: string
description: A short descriptive name to help manage search pages.
example: ExStore
facets:
type: array
description: The list of facets to display in the search interface.
items:
properties:
field:
type: string
description: The [field](https://docs.coveo.com/en/200) on which the facet is based.
label:
type: string
description: The label of the facet.
example:
- field: source
label: Source
- field: objecttype
label: Object Type
sortCriteria:
type: array
description: The array of sort criteria the end user can select when interacting with the search interface.
items:
properties:
by:
type: string
description: 'The kind of sort criterion. Required.
**Allowed values:**
- `relevancy`
- `date`
- `field`: sort based on the values of a target field, which you need to specify in the `field` parameter.'
enum:
- relevancy
- date
- field
label:
type: string
description: The label of the sort criterion. Required.
field:
type: string
description: The [field](https://docs.coveo.com/en/200) on which the sort is based. Required when `by` value is `field`, and ignored otherwise.
Must be [sortable in the index](https://docs.coveo.com/en/1833/index-content/add-or-edit-a-field#sortable).
order:
type: string
enum:
- ASC
- DESC
description: 'The sort direction, if applicable.
Default behaviour is a follows:
- If the `by` value is `relevancy`, this parameter does not apply.
- If the `by` value is `date`, the default value is `DESC`.
- If the `by` value is anything else, the default value is `ASC`.
**Allowed values:**
- `ASC`: ascending
- `DESC`: descending'
required:
- by
- label
example:
- by: relevancy
label: Relevance
- by: date
label: Date
order: DESC
- by: field
label: Price
field: price
order: ASC
accesses:
$ref: '#/components/schemas/interface-access'
content:
$ref: '#/components/schemas/interface-pipeline-content'
created:
type: string
format: date-time
description: The creation timestamp. (ISO 8601)
example: '2021-12-31T12:46:00.000Z'
createdBy:
type: string
description: The creator principal.
example: jdoe@gmail.com-google
updated:
type: string
format: date-time
description: The last update timestamp. (ISO 8601)
example: '2001-12-31T13:03:00.000Z'
updatedBy:
type: string
description: The last updater principal.
example: jdoe@gmail.com-google
required:
- id
- name
interface-content:
type: object
properties:
pipeline:
type: string
description: The unique identifier of the query pipeline enforced in search requests.
example: 8652e601-fdc3-4ec9-90f8-510763ec0956
sources:
type: array
description: The list of sources with which to filter items in search requests. Only items from target sources may be returned.
example:
- sourceNameA
- sourceNameB
items:
type: string
interface-add-user:
type: object
properties:
users:
$ref: '#/components/schemas/interface-user-list'
message:
type: string
description: Message to send as part of email notifications, when `notify` is set to `true`.
example: Hey, check out this new search page
required: false
interface-user-list:
type: array
description: The list of users that are allowed to access the search interface.
example:
- alice@example.com
- bob@example.com
items:
type: string
interface-pipeline-content:
type: object
properties:
pipeline:
type: string
description: The unique identifier of the query pipeline enforced in search requests.
example: 8652e601-fdc3-4ec9-90f8-510763ec0956
interface-access:
type: object
properties:
users:
$ref: '#/components/schemas/interface-user-list'
domains:
type: array
description: The list of domains that are allowed to access the search interface.
example:
- example.com
- sample.com
items:
type: string
sharingLinkEnabled:
type: boolean
example: true
sharingDomainEnabled:
type: boolean
example: true
parameters:
order:
name: order
description: 'The sort direction of the results.
Possible values:
- `asc`: ascending order
- `desc`: descending order'
in: query
schema:
type: string
enum:
- asc
- desc
notify:
name: notify
description: Whether to send an email notification to new search page users.
example: false
in: query
schema:
type: boolean
organization-id:
name: organizationId
description: The unique identifier of the target [organization](https://docs.coveo.com/en/185/).
example: mycoveocloudv2organizationg8tp8wu3
in: path
required: true
schema:
type: string
filter:
name: filter
description: A substring that must appear in a search interface configuration name for this configuration to appear in results.
example: Store
in: query
schema:
type: string
page:
name: page
description: The 0-based number of the page of configurations to list.
in: query
schema:
type: integer
minimum: 0
maximum: 100
interface-id:
name: interfaceId
description: The unique identifier of the target search interface.
example: 123e4567-e89b-12d3-a456-426614174000
in: path
required: true
schema:
type: string
perPage:
name: perPage
description: The maximum number of configurations to include per page.
in: query
schema:
type: integer
minimum: 0
maximum: 20
projectId:
name: projectId
description: The id of the project to which the resource belongs.
in: query
schema:
type: string
securitySchemes:
oauth2:
type: oauth2
flows:
authorizationCode:
authorizationUrl: https://platform.cloud.coveo.com/oauth/authorize
tokenUrl: https://platform.cloud.coveo.com/oauth/token
scopes:
full: required