Find Configuration API

The Find Configuration API enables you to programmatically define and manage search attribute settings—such as searchable, storable, and filterable—for product and content attributes within Find. It eliminates the need for manual configuration through the Find Portal’s Search Attribute table.

Key capabilities include:

  • Programmatic retrieval and update of attribute configurations
  • Real-time validation prior to saving changes
  • Automated setup of product and content attribute settings
  • A scalable framework designed to support broader configuration management

The Configuration API uses Modules and Sections to organize and manage configuration settings.

Modules

Each module represents a logical application area. For example, the available module is findconfig.

Sections

Each module contains configuration sections. Each section includes:

Field Description
id Unique identifier for the section.
name Predefined section name.
version Section version number.
properties Set of properties or attribute configurations.

Example Section Object

Copy
{
  "id": 29,
  "name": "productSearchAttributes",
  "version": 1,
  "properties": {
    "prop1": "a",
    "prop2": "b"
  }

Section Types

  • Section Configuration API – Retrieve and modify section properties.
  • Section Validation API – Validate configuration data before saving.

Configuration API for Search Attributes

Available sections within the findconfig module:

Section Name Description
productSearchAttributes Configuration of Find product attributes
contentSearchAttributes Configuration of Find reference content attributes

Each Site ID includes one instance of each section type. Default canonical attributes are preconfigured, and users can add custom attributes as needed.

Refer to the Find documentation for details: Find: Search Attributes Documentation.

Workflow

  1. List available sections
  2. Retrieve a specific section
  3. Edit JSON configuration
  4. PUT the updated section (validated automatically)

API Endpoints

List Sections

Method GET
Endpoint <HOST>/findconfig/v1/section/productSearchAttributes
Example http://localhost:6453/findconfig/v1/section/productSearchAttributes
Copy
[
                {
                "id": 4,
                "uuid": "8d9be02e-8f10-4d7c-a465-9c91c481b7c4",
                "name": "productSearchAttributes",
                "version": 0,
                "sectionDefinitionId": 0,
                "siteId": 158
                },
                {
                "id": 5,
                "uuid": "8d9be3R1-8f10-4d7c-a465-9c91c481b3R1",
                "name": "contentSearchAttributes",
                "version": 1
                }
        ]

Get Section

Method GET
Endpoint <HOST>/findconfig/v1/section/productSearchAttributes/{SECTION_ID}
Example http://localhost:6453/findconfig/v1/section/productSearchAttributes/4

Example Response:

Copy
{
                "id": 4,
                "uuid": "8d9be02e-8f10-4d7c-a465-9c91c481b7c4",
                "name": "productSearchAttributes",
                "version": 0,
                "sectionDefinitionId": 0,
                "properties": [
                {
                "fieldName": "ingredients",
                "dataType": "STRING",
                "attributeType": "PRODUCT",
                "attributes": {
                "filterable": true,
                "entityDetectible": true,
                "regionAware": true,
                "facetable": true,
                "storable": true,
                "sortable": false,
                "multiValued": true,
                "searchable": true
                },
                "displayName": "Ingredients",
                "isCanonical": false,
                "resettableStatus": "RESETTABLE"
                }
                ],
                "siteId": 158
        }

Update Section

Method PUT
Endpoint <HOST>/findconfig/v1/section/productSearchAttributes/{SECTION_ID}
Example http://localhost:6453/findconfig/v1/section/productSearchAttributes/4

Example Request

Copy
{
                "id": 4,
                "uuid": "8d9be02e-8f10-4d7c-a465-9c91c481b7c4",
                "name": "productSearchAttributes",
                "version": 0,
                "sectionDefinitionId": 0,
                "properties": [
                {
                "fieldName": "ingredients",
                "dataType": "STRING",
                "attributeType": "PRODUCT",
                "attributes": {
                "filterable": false,
                "entityDetectible": true,
                "regionAware": true,
                "facetable": false,
                "storable": true,
                "sortable": false,
                "multiValued": true,
                "searchable": true
                },
                "displayName": "Ingredients",
                "isCanonical": false,
                "resettableStatus": "RESETTABLE"
                }
                ],
                "siteId": 158
        }

Response Codes:

  • 200 OK – Successfully updated; returns updated JSON.
  • 400 Bad Request – Validation failed; returns error details.
Copy
{
                "code": 400,
                "details": "Attributes Failed Validation: ingredients must not be multivalued and sortable",
                "message": "Bad Request",
                "status": "error"
        }

Validation Rules

Rule Error Message
Entity detectable attribute must be searchable and facetable entity detectable must also be searchable and facetable
Facetable attribute must be filterable <attribute> must be filterable when facetable
Canonical product attributes must be single-valued (except product_category_name, product_category_external_id) All canonical attributes must be single valued except product_category_name, product_category_external_id
Multi-valued attributes cannot be sortable Only single values attributes may be sortable
product_external_id and content_external_id must be filterable and storable <attribute> must be filterable and storable
Image attributes must be storable <attribute> must be storable