openapi: 3.0.1
info:
title: Coveo Activity Activities Catalog Configurations 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: Catalog Configurations
paths:
/rest/organizations/{organizationId}/catalogconfigurations/{configurationId}:
get:
tags:
- Catalog Configurations
summary: Show Catalog Configuration
description: 'Shows a catalog configuration in an [organization](https://docs.coveo.com/en/185/).**Required privilege:** Catalogs - View
Privilege required
```
{"owner":"COMMERCE","targetDomain":"CATALOG","type":"VIEW","targetId":"*"}
```
'
operationId: getCatalogConfiguration
parameters:
- name: organizationId
in: path
description: The unique identifier of the target [organization](https://docs.coveo.com/en/185/).
**Example:** `acmecorporation8tp8wu3`
required: true
schema:
type: string
- name: configurationId
in: path
description: The unique identifier of the catalog configuration to show.
**Example:** `644e1dd7-2a7f-18fb-b8ed-ed78c3f92c2b`
required: true
schema:
type: string
format: uuid
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/CatalogConfigurationModelWithAssociatedCatalogs'
x-pretty-name: getCatalogConfiguration
x-required-privilege:
owner: COMMERCE
targetDomain: CATALOG
type: VIEW
targetId: '*'
x-required-privileges:
- owner: COMMERCE
targetDomain: CATALOG
type: VIEW
targetId: '*'
x-ui-operation-id: /rest/organizations/paramId/catalogconfigurations/paramId_get
put:
tags:
- Catalog Configurations
summary: Update Catalog Configuration
description: 'Updates a catalog configuration in an [organization](https://docs.coveo.com/en/185/).**Required privilege:** Catalogs - Edit
Privilege required
```
{"owner":"COMMERCE","targetDomain":"CATALOG","type":"EDIT","targetId":"*"}
```
'
operationId: updateCatalogConfiguration
parameters:
- name: organizationId
in: path
description: The unique identifier of the target [organization](https://docs.coveo.com/en/185/).
**Example:** `acmecorporation8tp8wu3`
required: true
schema:
type: string
- name: configurationId
in: path
description: The unique identifier of the catalog configuration to update.
**Example:** `644e1dd7-2a7f-18fb-b8ed-ed78c3f92c2b`
required: true
schema:
type: string
format: uuid
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateCatalogConfigurationModel'
required: true
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/CatalogConfigurationModelWithAssociatedCatalogs'
x-pretty-name: updateCatalogConfiguration
x-required-privilege:
owner: COMMERCE
targetDomain: CATALOG
type: EDIT
targetId: '*'
x-required-privileges:
- owner: COMMERCE
targetDomain: CATALOG
type: EDIT
targetId: '*'
x-ui-operation-id: /rest/organizations/paramId/catalogconfigurations/paramId_put
delete:
tags:
- Catalog Configurations
summary: Delete Catalog Configuration
description: 'Deletes a catalog configuration in an [organization](https://docs.coveo.com/en/185/).**Required privilege:** Catalogs - Edit
Privilege required
```
{"owner":"COMMERCE","targetDomain":"CATALOG","type":"EDIT","targetId":"*"}
```
'
operationId: deleteCatalogConfiguration
parameters:
- name: organizationId
in: path
description: The unique identifier of the target [organization](https://docs.coveo.com/en/185/).
**Example:** `acmecorporation8tp8wu3`
required: true
schema:
type: string
- name: configurationId
in: path
description: The unique identifier of the catalog configuration to delete.
**Example:** `644e1dd7-2a7f-18fb-b8ed-ed78c3f92c2b`
required: true
schema:
type: string
format: uuid
responses:
'204':
description: No Content
x-pretty-name: deleteCatalogConfiguration
x-required-privilege:
owner: COMMERCE
targetDomain: CATALOG
type: EDIT
targetId: '*'
x-required-privileges:
- owner: COMMERCE
targetDomain: CATALOG
type: EDIT
targetId: '*'
x-ui-operation-id: /rest/organizations/paramId/catalogconfigurations/paramId_delete
/rest/organizations/{organizationId}/catalogconfigurations:
get:
tags:
- Catalog Configurations
summary: List Catalog Configurations
description: 'Lists the catalog configuration of an [organization](https://docs.coveo.com/en/185/).**Required privilege:** Catalogs - View
Privilege required
```
{"owner":"COMMERCE","targetDomain":"CATALOG","type":"VIEW","targetId":"*"}
```
'
operationId: getCatalogConfigurations
parameters:
- name: organizationId
in: path
description: The unique identifier of the target [organization](https://docs.coveo.com/en/185/).
**Example:** `acmecorporation8tp8wu3`
required: true
schema:
type: string
- name: page
in: query
description: The 0-based index number of the page of catalog configurations to retrieve.**Minimum:** `0`**Default:** `0`
required: false
schema:
minimum: 0
type: integer
format: int32
default: 0
- name: pageSize
in: query
description: The number of catalog configurations to list per page.**Minimum:** `1`**Maximum:** `1000`**Default:** `10`
required: false
schema:
maximum: 1000
minimum: 1
type: integer
format: int32
default: 10
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/CommercePageModelCatalogConfigurationModelWithAssociatedCatalogs'
x-pretty-name: getCatalogConfigurations
x-required-privilege:
owner: COMMERCE
targetDomain: CATALOG
type: VIEW
targetId: '*'
x-required-privileges:
- owner: COMMERCE
targetDomain: CATALOG
type: VIEW
targetId: '*'
x-ui-operation-id: /rest/organizations/paramId/catalogconfigurations_get
post:
tags:
- Catalog Configurations
summary: Create Configuration
description: 'Creates a catalog configuration in an [organization](https://docs.coveo.com/en/185/).**Required privilege:** Catalogs - Edit
Privilege required
```
{"owner":"COMMERCE","targetDomain":"CATALOG","type":"EDIT","targetId":"*"}
```
'
operationId: createCatalogConfiguration
parameters:
- name: organizationId
in: path
description: The unique identifier of the target [organization](https://docs.coveo.com/en/185/).
**Example:** `acmecorporation8tp8wu3`
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateCatalogConfigurationV1Model'
required: true
responses:
'201':
description: Created
content:
'*/*':
schema:
$ref: '#/components/schemas/CreateCatalogConfigurationModel'
x-pretty-name: createCatalogConfiguration
x-required-privilege:
owner: COMMERCE
targetDomain: CATALOG
type: EDIT
targetId: '*'
x-required-privileges:
- owner: COMMERCE
targetDomain: CATALOG
type: EDIT
targetId: '*'
x-ui-operation-id: /rest/organizations/paramId/catalogconfigurations_post
/rest/organizations/{organizationId}/catalogconfigurations/source/{sourceId}:
get:
tags:
- Catalog Configurations
summary: Show Catalog Configuration from a Source ID
description: 'Shows a catalog configurationfrom a Source Id in an [organization](https://docs.coveo.com/en/185/).**Required privilege:** Catalogs - View
Privilege required
```
{"owner":"COMMERCE","targetDomain":"CATALOG","type":"VIEW","targetId":"*"}
```
'
operationId: getCatalogConfigurationFromSource
parameters:
- name: organizationId
in: path
description: The unique identifier of the target [organization](https://docs.coveo.com/en/185/).
**Example:** `acmecorporation8tp8wu3`
required: true
schema:
type: string
- name: sourceId
in: path
description: A source containing the product content of the catalog
required: true
schema:
type: string
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/CatalogIdAndConfigurationModel'
x-pretty-name: getCatalogConfigurationFromSource
x-required-privilege:
owner: COMMERCE
targetDomain: CATALOG
type: VIEW
targetId: '*'
x-required-privileges:
- owner: COMMERCE
targetDomain: CATALOG
type: VIEW
targetId: '*'
x-ui-operation-id: /rest/organizations/paramId/catalogconfigurations/source/paramId_get
components:
schemas:
CatalogIdAndConfigurationModel:
type: object
properties:
catalogId:
type: string
description: The unique identifier of the catalog. Ignored when included in the body of a POST or PUT request.
format: uuid
example: 644e1dd7-2a7f-18fb-b8ed-ed78c3f92c2b
catalogConfiguration:
$ref: '#/components/schemas/CatalogConfigurationModel'
CommercePageModelCatalogConfigurationModelWithAssociatedCatalogs:
required:
- items
- totalEntries
- totalPages
type: object
properties:
items:
type: array
description: The retrieved page of items.
items:
$ref: '#/components/schemas/CatalogConfigurationModelWithAssociatedCatalogs'
totalEntries:
type: integer
description: The total number of results that match the query.
format: int64
totalPages:
type: integer
description: The total number of pages of items available.
format: int32
description: Page
CreateAvailabilityHierarchyModel:
required:
- availableSkusField
- objectType
type: object
properties:
objectType:
maxLength: 255
minLength: 1
type: string
description: The `objecttype` [field](https://docs.coveo.com/200/) value that marks an indexed [item](https://docs.coveo.com/210/) as a representation of an _availability channel_ in the catalog.
example: Store
idField:
maxLength: 255
minLength: 1
pattern: '[a-z][a-z0-9_]*'
type: string
description: The name of a [field](https://docs.coveo.com/200/) that provides a unique identifier for each indexed [item](https://docs.coveo.com/210/) marked as a representation of a _product_ in the catalog.
example: productid
availableSkusField:
maxLength: 255
minLength: 1
pattern: '[a-z][a-z0-9_]*'
type: string
description: The name of a multi-value [field](https://docs.coveo.com/200/) that lists the available SKUs of each indexed [item](https://docs.coveo.com/210/) marked as a representation of an _availability channel_ in the catalog.
example: availableskus
description: '[Deprecated - use `configuration.availability` instead]. The configuration that allows indexed [items](https://docs.coveo.com/210/) representing distinct _variants_ in the catalog to be identified as such.'
CreateProductHierarchyModel:
required:
- idField
- objectType
type: object
properties:
objectType:
maxLength: 255
minLength: 1
type: string
description: The `objecttype` [field](https://docs.coveo.com/200/) value that marks an indexed [item](https://docs.coveo.com/210/) as a representation of a _product_ in the catalog.
example: Product
idField:
maxLength: 255
minLength: 1
type: string
description: The name of a [field](https://docs.coveo.com/200/) that provides a unique identifier for each indexed [item](https://docs.coveo.com/210/) marked as a representation of a _product_ in the catalog.
example: productid
description: '[Deprecated - use `configuration.product` instead]. The configuration that allows indexed [items](https://docs.coveo.com/210/)representing distinct _products_ in the catalog to be identified as such.'
CreateCatalogConfigurationModel:
required:
- name
- product
type: object
properties:
id:
type: string
description: The unique identifier of the catalog configuration.
format: uuid
readOnly: true
example: 644e1dd7-2a7f-18fb-b8ed-ed78c3f92c2b
name:
maxLength: 50
minLength: 1
type: string
description: A name for the configuration.
example: ACME Configuration
product:
$ref: '#/components/schemas/CreateProductHierarchyModel'
variant:
$ref: '#/components/schemas/CreateVariantHierarchyModel'
availability:
$ref: '#/components/schemas/CreateAvailabilityHierarchyModel'
fieldsMapping:
type: object
additionalProperties:
type: string
description: The standard fields mapping for the configuration
example: '{"ec_name":"title","ec_price":"prix"}'
description: The standard fields mapping for the configuration
example:
ec_name: title
ec_price: prix
availabilityFilterStrategy:
type: string
description: Strategy for filtering availabilities when executing a search.
**Default:** `ALWAYS`
The current supported strategies are `ALWAYS` and `WHEN_SPECIFIED`.
`ALWAYS` will perform the search filtering by availabilities and it will only return items with availabilities.
`WHEN_SPECIFIED` will only perform the search filtering by availabilities if an availabilityId is specified in the query, otherwise it won't filter by availabilities and it will return all items.
enum:
- ALWAYS
- WHEN_SPECIFIED
description: The catalog configuration to update.
AvailabilityHierarchyModel:
required:
- availableSkusField
- objectType
type: object
properties:
objectType:
maxLength: 255
minLength: 1
type: string
description: The `objecttype` [field](https://docs.coveo.com/200/) value that marks an indexed [item](https://docs.coveo.com/210/) as a representation of an _availability channel_ in the catalog.
example: Store
idField:
maxLength: 255
minLength: 1
pattern: '[a-z][a-z0-9_]*'
type: string
description: The name of a [field](https://docs.coveo.com/200/) that provides a unique identifier for each indexed [item](https://docs.coveo.com/210/) marked as a representation of a _product_ in the catalog.
example: productid
availableSkusField:
maxLength: 255
minLength: 1
pattern: '[a-z][a-z0-9_]*'
type: string
description: The name of a multi-value [field](https://docs.coveo.com/200/) that lists the available SKUs of each indexed [item](https://docs.coveo.com/210/) marked as a representation of an _availability channel_ in the catalog.
example: availableskus
fields:
uniqueItems: true
type: array
description: The [fields](https://docs.coveo.com/200/) that are folded when performing a [nested query](https://docs.coveo.com/220/) for _availability channels_. In a [search interface](https://docs.coveo.com/2741/), a [facet](https://docs.coveo.com/198/) based on any of those fields transforms its [`aq`](https://docs.coveo.com/175/) override to match _availability channels_ rather than _products_.
example:
- storeid
- city
items:
type: string
description: The [fields](https://docs.coveo.com/200/) that are folded when performing a [nested query](https://docs.coveo.com/220/) for _availability channels_. In a [search interface](https://docs.coveo.com/2741/), a [facet](https://docs.coveo.com/198/) based on any of those fields transforms its [`aq`](https://docs.coveo.com/175/) override to match _availability channels_ rather than _products_.
example: '["storeid","city"]'
description: '[Deprecated - use `configuration.availability` instead]. The configuration that allows indexed [items](https://docs.coveo.com/210/) representing distinct _variants_ in the catalog to be identified as such.'
CatalogIdentityModelWithSources:
required:
- name
type: object
properties:
id:
type: string
description: The unique identifier of the catalog. Ignored when included in the body of a POST or PUT request.
format: uuid
example: 644e1dd7-2a7f-18fb-b8ed-ed78c3f92c2b
name:
maxLength: 50
minLength: 1
type: string
description: A unique name for the catalog.
example: ACME Corp Full Catalog
sourceId:
type: string
description: A source containing the product content of the catalog
example: acmecorporation8tp8wu3-qwpdaajjq3ahak5wlq7adhciuq
availabilitySourceId:
type: string
description: A source containing the availability objects for the catalog
example: acmecorporation8tp8wu3-wj6vgp4x7ov6mfaw5a0w3dnve
description: The catalogs associated to the configuration
CatalogConfigurationModel:
required:
- name
- product
type: object
properties:
id:
type: string
description: The unique identifier of the catalog configuration.
format: uuid
readOnly: true
example: 644e1dd7-2a7f-18fb-b8ed-ed78c3f92c2b
name:
maxLength: 50
minLength: 1
type: string
description: A name for the configuration.
example: ACME Configuration
product:
$ref: '#/components/schemas/ProductHierarchyModel'
variant:
$ref: '#/components/schemas/VariantHierarchyModel'
availability:
$ref: '#/components/schemas/AvailabilityHierarchyModel'
fieldsMapping:
type: object
additionalProperties:
type: string
description: The standard fields mapping for the configuration
example: '{"ec_name":"title","ec_price":"prix"}'
description: The standard fields mapping for the configuration
example:
ec_name: title
ec_price: prix
availabilityFilterStrategy:
type: string
description: Strategy for filtering availabilities when executing a search.
**Default:** `ALWAYS`
The current supported strategies are `ALWAYS` and `WHEN_SPECIFIED`.
`ALWAYS` will perform the search filtering by availabilities and it will only return items with availabilities.
`WHEN_SPECIFIED` will only perform the search filtering by availabilities if an availabilityId is specified in the query, otherwise it won't filter by availabilities and it will return all items.
enum:
- ALWAYS
- WHEN_SPECIFIED
description: The catalog configuration.
CreateCatalogConfigurationV1Model:
required:
- name
- product
type: object
properties:
name:
maxLength: 50
minLength: 1
type: string
example: ACME Configuration
product:
$ref: '#/components/schemas/CreateProductHierarchyModel'
variant:
$ref: '#/components/schemas/CreateVariantHierarchyModel'
availability:
$ref: '#/components/schemas/CreateAvailabilityHierarchyModel'
fieldsMapping:
type: object
additionalProperties:
type: string
example: '{"ec_name":"title","ec_price":"prix"}'
example:
ec_name: title
ec_price: prix
availabilityFilterStrategy:
type: string
description: Strategy for filtering availabilities when executing a search.
**Default:** `ALWAYS`
The current supported strategies are `ALWAYS` and `WHEN_SPECIFIED`.
`ALWAYS` will perform the search filtering by availabilities and it will only return items with availabilities.
`WHEN_SPECIFIED` will only perform the search filtering by availabilities if an availabilityId is specified in the query, otherwise it won't filter by availabilities and it will return all items.
enum:
- ALWAYS
- WHEN_SPECIFIED
description: The catalog configuration to create.
VariantHierarchyModel:
required:
- idField
- objectType
type: object
properties:
objectType:
maxLength: 255
minLength: 1
type: string
description: The `objecttype` [field](https://docs.coveo.com/200/) value that marks an indexed [item](https://docs.coveo.com/210/) as a representation of a _variant_ in the catalog.
example: Variant
idField:
maxLength: 255
minLength: 1
pattern: '[a-z][a-z0-9_]*'
type: string
description: The name of a [field](https://docs.coveo.com/200/) that provides a unique identifier for each indexed [item](https://docs.coveo.com/210/) marked as a representation of a _variant_ in the catalog.
example: sku
fields:
uniqueItems: true
type: array
description: The [fields](https://docs.coveo.com/200/) that are folded when performing a [nested query](https://docs.coveo.com/220/) for _variants_. In a [search interface](https://docs.coveo.com/2741/), a [facet](https://docs.coveo.com/198/) based on any of those fields transforms its [`aq`](https://docs.coveo.com/175/) override to match _variants_ rather than _products_.
example:
- color
- size
items:
type: string
description: The [fields](https://docs.coveo.com/200/) that are folded when performing a [nested query](https://docs.coveo.com/220/) for _variants_. In a [search interface](https://docs.coveo.com/2741/), a [facet](https://docs.coveo.com/198/) based on any of those fields transforms its [`aq`](https://docs.coveo.com/175/) override to match _variants_ rather than _products_.
example: '["color","size"]'
description: '[Deprecated - use `configuration.variant` instead]. The configuration that allows indexed [items](https://docs.coveo.com/210/) representing distinct _variants_ in the catalog to be identified as such.'
CreateVariantHierarchyModel:
required:
- idField
- objectType
type: object
properties:
objectType:
maxLength: 255
minLength: 1
type: string
description: The `objecttype` [field](https://docs.coveo.com/200/) value that marks an indexed [item](https://docs.coveo.com/210/) as a representation of a _variant_ in the catalog.
example: Variant
idField:
maxLength: 255
minLength: 1
pattern: '[a-z][a-z0-9_]*'
type: string
description: The name of a [field](https://docs.coveo.com/200/) that provides a unique identifier for each indexed [item](https://docs.coveo.com/210/) marked as a representation of a _variant_ in the catalog.
example: sku
description: '[Deprecated - use `configuration.variant` instead]. The configuration that allows indexed [items](https://docs.coveo.com/210/) representing distinct _variants_ in the catalog to be identified as such.'
CatalogConfigurationModelWithAssociatedCatalogs:
required:
- name
- product
type: object
properties:
id:
type: string
description: The unique identifier of the catalog configuration.
format: uuid
readOnly: true
example: 644e1dd7-2a7f-18fb-b8ed-ed78c3f92c2b
name:
maxLength: 50
minLength: 1
type: string
description: A name for the configuration.
example: ACME Configuration
product:
$ref: '#/components/schemas/CreateProductHierarchyModel'
variant:
$ref: '#/components/schemas/CreateVariantHierarchyModel'
availability:
$ref: '#/components/schemas/CreateAvailabilityHierarchyModel'
fieldsMapping:
type: object
additionalProperties:
type: string
description: The standard fields mapping for the configuration
example: '{"ec_name":"title","ec_price":"prix"}'
description: The standard fields mapping for the configuration
example:
ec_name: title
ec_price: prix
availabilityFilterStrategy:
type: string
description: Strategy for filtering availabilities when executing a search.
**Default:** `ALWAYS`
The current supported strategies are `ALWAYS` and `WHEN_SPECIFIED`.
`ALWAYS` will perform the search filtering by availabilities and it will only return items with availabilities.
`WHEN_SPECIFIED` will only perform the search filtering by availabilities if an availabilityId is specified in the query, otherwise it won't filter by availabilities and it will return all items.
enum:
- ALWAYS
- WHEN_SPECIFIED
associatedCatalogs:
type: array
description: The catalogs associated to the configuration
items:
$ref: '#/components/schemas/CatalogIdentityModelWithSources'
ProductHierarchyModel:
required:
- idField
- objectType
type: object
properties:
objectType:
maxLength: 255
minLength: 1
type: string
description: The `objecttype` [field](https://docs.coveo.com/200/) value that marks an indexed [item](https://docs.coveo.com/210/) as a representation of a _product_ in the catalog.
example: Product
idField:
maxLength: 255
minLength: 1
type: string
description: The name of a [field](https://docs.coveo.com/200/) that provides a unique identifier for each indexed [item](https://docs.coveo.com/210/) marked as a representation of a _product_ in the catalog.
example: productid
fields:
uniqueItems: true
type: array
description: The [fields](https://docs.coveo.com/200/) that only seen on _products_ objects in the catalog.
example:
- color
- size
items:
type: string
description: The [fields](https://docs.coveo.com/200/) that only seen on _products_ objects in the catalog.
example: '["color","size"]'
description: '[Deprecated - use `configuration.product` instead]. The configuration that allows indexed [items](https://docs.coveo.com/210/)representing distinct _products_ in the catalog to be identified as such.'
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