### Install PIM SDK and UI Packages Source: https://docs.struct.com/developer/app-integration/quickstart.md Installs the required Struct SDK and UI packages for PIM integration. ```bash npm install @structdk/extension-sdk @structdk/ui @structdk/struct-icon ``` -------------------------------- ### Install the Extensions SDK package Source: https://docs.struct.com/developer/app-integration/how-to-use-the-extensions-sdk-package.md Install the SDK package using npm. This is the first step to integrate your app with Struct PIM. ```bash npm install @structdk/extension-sdk ``` -------------------------------- ### Install Struct SDK Packages Source: https://docs.struct.com/tutorials/guides/how-to-use-app-integration/how-to-set-up-and-edit-an-app-integration.md Install the necessary Struct SDK packages for UI, icons, and core extension functionality. ```bash npm install @structdk/ui @structdk/struct-icon @structdk/extension-sdk ``` -------------------------------- ### Install Struct.App.Api.Client NuGet Package Source: https://docs.struct.com/tutorials/guides/how-to-use-struct-pims-api/setting-up-the-environment.md Use this command to install the Struct.App.Api.Client NuGet package. Ensure you are in the correct project directory in your terminal. ```csharp dotnet add package Struct.App.Api.Client --version 4.0.7 ``` -------------------------------- ### Query Documentation with Ask and Goal Parameters Source: https://docs.struct.com/reference/settings/data-models/product-structures/general-settings.md Perform an HTTP GET request to query this documentation dynamically. Use the 'ask' parameter for specific questions and the optional 'goal' parameter to guide the AI towards a broader objective. ```http GET https://docs.struct.com/reference/settings/data-models/product-structures/general-settings.md?ask=&goal= ``` -------------------------------- ### Install Struct.App.Api.Models NuGet Package Source: https://docs.struct.com/tutorials/guides/how-to-use-struct-pims-api/setting-up-the-environment.md Use this command to install the Struct.App.Api.Models NuGet package. This is the final step in the installation process. ```csharp dotnet add package Struct.App.Api.Models --version 4.0.7 ``` -------------------------------- ### Install Dependencies Source: https://docs.struct.com/tutorials/guides/how-to-use-app-integration/how-to-set-up-and-edit-an-app-integration.md Install project dependencies using npm. Ensure all necessary packages are downloaded before running the development server. ```bash npm install ``` -------------------------------- ### Create and Navigate Project Directory Source: https://docs.struct.com/tutorials/guides/how-to-use-app-integration/how-to-set-up-and-edit-an-app-integration.md Use these bash commands to create a new project directory and navigate into it. ```bash mkdir my-pim-integration cd my-pim-integration ``` -------------------------------- ### Get Child Folders Source: https://docs.struct.com/api-reference/endpoints/assetfolders.md Retrieves all child folders of a specified folder. To get root folders, use an empty GUID. ```APIDOC ## GET /v1/assetfolders/{folderUid}/children ### Description Get all child folders of a folder. Use empty Guid to get root folders (00000000-0000-0000-0000-000000000000). ### Method GET ### Endpoint /v1/assetfolders/{folderUid}/children ### Parameters #### Path Parameters - **folderUid** (string) - Required - Unique identifier of the folder. Use an empty GUID for root folders. ``` -------------------------------- ### Get Built Publication OpenAPI Specification Source: https://docs.struct.com/api-reference/endpoints/publications.md This OpenAPI 3.0.1 specification defines the GET endpoint for retrieving a prebuilt publication using its task GUID. ```json { "openapi": "3.0.1", "info": { "title": "Struct PIM Public API", "version": "1.0" }, "tags": [ { "name": "Publications", "description": "Generate publications from template setup in PIM." } ], "security": [ { "ApiKey": [] } ], "components": { "securitySchemes": { "ApiKey": { "type": "apiKey", "description": "", "name": "Authorization", "in": "header" } } }, "paths": { "/v1/publications/buildresult/{taskGuid}": { "get": { "tags": [ "Publications" ], "summary": "Get built publication", "description": "Use this method to get a prebuilt publication.", "parameters": [ { "name": "taskGuid", "in": "path", "description": "Task Id", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "OK" } } } } } } ``` -------------------------------- ### Run Development Server Source: https://docs.struct.com/tutorials/guides/how-to-use-app-integration/how-to-set-up-and-edit-an-app-integration.md Start the development server using npm. This command allows you to run the app locally and integrate it with the PIM using the provided localhost URL. ```bash npm run dev ``` -------------------------------- ### Get Publication Task Status Source: https://docs.struct.com/api-reference/endpoints/publications.md Retrieves the task status of a publication using its task GUID. Use this method to get the task status of a publication. ```json { "openapi": "3.0.1", "info": { "title": "Struct PIM Public API", "version": "1.0" }, "tags": [ { "name": "Publications", "description": "Generate publications from template setup in PIM." } ], "security": [ { "ApiKey": [] } ], "components": { "securitySchemes": { "ApiKey": { "type": "apiKey", "description": "", "name": "Authorization", "in": "header" } } }, "paths": { "/v1/publications/buildstatus/{taskGuid}": { "get": { "tags": [ "Publications" ], "summary": "Get publication task status", "description": "Use this method to get the task status of a publication.", "parameters": [ { "name": "taskGuid", "in": "path", "description": "Task Id", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { } } } } } } } } } ``` -------------------------------- ### Initialize TypeScript Project with Vite Source: https://docs.struct.com/developer/app-integration/quickstart.md Sets up a new TypeScript project using Vite. Choose 'vanilla' for the framework and 'TypeScript' for the variant when prompted. ```bash mkdir my-pim-integration cd my-pim-integration npm create vite@latest . ``` -------------------------------- ### Get Publication Task Status Source: https://docs.struct.com/api-reference/endpoints/publications.md Retrieves the task status of a publication using its task GUID. ```APIDOC ## Get publication task status ### Description Use this method to get the task status of a publication. ### Method GET ### Endpoint /v1/publications/buildstatus/{taskGuid} ### Parameters #### Path Parameters - **taskGuid** (string) - Required - The unique identifier for the publication task. ### Response #### Success Response (200) - (object) - An empty object indicating success. The actual status details might be elsewhere or implied. ``` -------------------------------- ### Get a specific Enrichment Insight Source: https://docs.struct.com/api-reference/endpoints/enrichmentinsightsetups.md Retrieves the details of a specific Enrichment Insight setup by its unique identifier. ```APIDOC ## GET /v1/enrichmentinsightsetups/{uid} ### Description Retrieves the details of a specific Enrichment Insight setup. ### Method GET ### Endpoint /v1/enrichmentinsightsetups/{uid} ### Parameters #### Path Parameters - **uid** (string) - Required - Unique id of Enrichment Insight ### Response #### Success Response (200) - **Uid** (string) - Unique id of enrichment insight setup - **EntityType** (integer) - Enum representing each supported entity type in enrichment insights engine (10: Category, 20: Product, 30: Variant, 50: VariantGroup) - **Alias** (string) - Unique alias of this insight setup - **Label** (string) - Presented name of this enrichment insight setup - **Setup** (array) - Setup of required fields for each configuration available to this insight setup ``` -------------------------------- ### Get all Enrichment Insights Source: https://docs.struct.com/api-reference/endpoints/enrichmentinsightsetups.md Retrieves all available Enrichment Insight Setups. This endpoint is available from version 3.5.0. ```APIDOC ## GET /v1/enrichmentinsightsetups ### Description Retrieves all available Enrichment Insight Setups. This endpoint is available from version 3.5.0. ### Method GET ### Endpoint /v1/enrichmentinsightsetups ### Response #### Success Response (200) - **Array of EnrichmentInsightSetup objects**: Each object contains details about an enrichment insight setup, including its UID, entity type, alias, label, and setup configuration. ### Response Example ```json [ { "Uid": "a1b2c3d4-e5f6-7890-1234-567890abcdef", "EntityType": 20, "Alias": "product_fulfillment", "Label": "Product Fulfillment Insight", "Setup": [ { "ConfigurationUid": "f0e9d8c7-b6a5-4321-0987-fedcba098765", "CategoryId": null, "RequiredData": [ { "Type": "Attribute", "DataReference": "product_name" }, { "Type": "Attribute", "DataReference": "product_description" } ] } ] } ] ``` ``` -------------------------------- ### Configure CreateWizard and CopyWizard Source: https://docs.struct.com/tutorials/guides/how-to-use-struct-pims-api/working-with-product-models-using-the-api.md Set up the CreateWizard and CopyWizard for a guided, step-by-step product data entry flow. This configuration improves data consistency and user experience. ```csharp ProductConfiguration = new ProductConfiguration { NameConfiguration = new NameConfiguration { NamePattern = "{0}", NameAttributes = new List { new Guid("de5572ed-1fb5-4192-a9ca-db73140f4cf5") } }, CreateWizard = new WizardSetup { Uid = Guid.NewGuid(), Steps = new List { new DynamicWizardStepSetup { Uid = Guid.NewGuid(), Headline = "Step 1", Description = "Basic product details", Properties = new List { new AttributeWizardPropertySetup { Uid = new Guid("30995d23-9492-4467-ab13-faa565afd579"), PropertyUid = newGuid, Mandatory = true }, ... } }, ... } }, CopyWizard = new WizardSetup { Uid = Guid.NewGuid(), Steps = new List { new DynamicWizardStepSetup { Uid = Guid.NewGuid(), Headline = "Step A", Description = "Select base product", Properties = new List { new AttributeWizardPropertySetup { Uid = Guid.NewGuid(), PropertyUid = new Guid("30995d23-9492-4467-ab13-faa565afd579"), Mandatory = true }, ... } }, ... } }, ... } ``` -------------------------------- ### Get All Enrichment Insights Source: https://docs.struct.com/api-reference/endpoints/enrichmentinsightsetups.md Retrieves a list of all available enrichment insight setups. This endpoint is available from v.3.5.0. ```json { "openapi": "3.0.1", "info": { "title": "Struct PIM Public API", "version": "1.0" }, "tags": [ { "name": "EnrichmentInsightSetups", "description": "Enrichment insight setups are used to define insights that are continuously calculated for products, variants or categories in the system.\r\nThe Enrichment insight setup defines which data is required for an entity to be considered 100% fulfilled for the insight setup in question." } ], "security": [ { "ApiKey": [] } ], "components": { "securitySchemes": { "ApiKey": { "type": "apiKey", "description": "", "name": "Authorization", "in": "header" } }, "schemas": { "Struct.App.Api.Models.EnrichmentInsight.EnrichmentInsightSetup": { "type": "object", "properties": { "Uid": { "type": "string", "description": "Unique id of enrichment insight setup", "format": "uuid" }, "EntityType": { "$ref": "#/components/schemas/Struct.App.Api.Models.EnrichmentInsight.EntityType" }, "Alias": { "type": "string", "description": "Unique alias of this insight setup", "nullable": true }, "Label": { "type": "string", "description": "Presented name of this enrichment insight setup", "nullable": true }, "Setup": { "type": "array", "items": { "$ref": "#/components/schemas/Struct.App.Api.Models.EnrichmentInsight.ConfigurationInsightSetup" }, "description": "Setup of required fields for each configuration available to this insight setup (One for each product structure or each catalogue depnding on the entity type)", "nullable": true } }, "additionalProperties": false, "description": "Model defining setup of an enrichment insight" }, "Struct.App.Api.Models.EnrichmentInsight.EntityType": { "enum": [ 10, 20, 30, 50 ], "type": "integer", "description": "Enum representing each supported entity type in enrichment insights engine \n\n- `10` = **Category**: Category reference\n- `20` = **Product**: Product reference\n- `30` = **Variant**: Variant reference\n- `50` = **VariantGroup**: Variant group reference", "format": "int32" }, "Struct.App.Api.Models.EnrichmentInsight.ConfigurationInsightSetup": { "type": "object", "properties": { "ConfigurationUid": { "type": "string", "description": "Uid of configuration these required data accounts for (if entity type of insights setup is category, \r\nthis will be the uid of a catalogue. For variants and products this should hold the uid of a product structure)", "format": "uuid", "nullable": true }, "CategoryId": { "type": "integer", "description": "Id of selected category which is chosen for the insight", "format": "int32", "nullable": true }, "RequiredData": { "type": "array", "items": { "$ref": "#/components/schemas/Struct.App.Api.Models.EnrichmentInsight.InsightDataReference" }, "description": "List of data references that are required for this insight to be 100% for entities using the configuration in question", "nullable": true } }, "additionalProperties": false, "description": "Model defining required field for a configuration (being either a catalogue uid or a product structure uid)" }, "Struct.App.Api.Models.EnrichmentInsight.InsightDataReference": { "type": "object", "properties": { "Type": { "type": "string", "description": "Type of data reference", "nullable": true }, "DataReference": { "type": "string", "description": "The data reference itself", "nullable": true } }, "additionalProperties": false, "description": "Model representing an insights data reference" } } }, "paths": { "/v1/enrichmentinsightsetups": { "get": { "tags": [ "EnrichmentInsightSetups" ], "summary": "Get all Enrichment Insights", "description": "#Available from v.3.5.0", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Struct.App.Api.Models.EnrichmentInsight.EnrichmentInsightSetup" } } } } } } } } } } ``` -------------------------------- ### Querying Documentation with Ask and Goal Parameters Source: https://docs.struct.com/reference/settings/data-models/product-structures/model-setup/properties/property-types.md Demonstrates how to query the documentation dynamically using HTTP GET requests with 'ask' and 'goal' query parameters. This is useful for retrieving specific information or context not explicitly present on the page. ```HTTP GET https://docs.struct.com/reference/settings/data-models/product-structures/model-setup/properties/property-types.md?ask=&goal= ``` -------------------------------- ### OpenAPI Specification for Enrichment Insight Setups Source: https://docs.struct.com/api-reference/endpoints/enrichmentinsightsetups.md This OpenAPI 3.0.1 specification defines the API endpoints for Enrichment Insight Setups, including schemas for entity types and data references, and the GET request for available data references. ```json { "openapi": "3.0.1", "info": { "title": "Struct PIM Public API", "version": "1.0" }, "tags": [ { "name": "EnrichmentInsightSetups", "description": "Enrichment insight setups are used to define insights that are continuously calculated for products, variants or categories in the system.\r\nThe Enrichment insight setup defines which data is required for an entity to be considered 100% fulfilled for the insight setup in question." } ], "security": [ { "ApiKey": [] } ], "components": { "securitySchemes": { "ApiKey": { "type": "apiKey", "description": "", "name": "Authorization", "in": "header" } }, "schemas": { "Struct.App.Domain.Shared.Entity.StructEntityType": { "enum": [ 10, 20, 30, 50, 60 ], "type": "integer", "description": "\n\n- `10` = **Category**\n- `20` = **Product**\n- `30` = **Variant**\n- `50` = **VariantGroup**\n- `60` = **Asset**", "format": "int32" }, "Struct.App.Api.Models.EnrichmentInsight.DetailedInsightDataReference": { "type": "object", "properties": { "Name": { "type": "string", "description": "Name of data reference", "nullable": true }, "Type": { "type": "string", "description": "Type of data reference", "nullable": true }, "DataReference": { "type": "string", "description": "The data reference itself", "nullable": true } }, "additionalProperties": false, "description": "Model representing detailed information on an insights data reference" } } }, "paths": { "/v1/enrichmentinsightsetups/{entityType}/availabledatareferences": { "get": { "tags": [ "EnrichmentInsightSetups" ], "summary": "Get available data references for a specific entity type", "description": "#Available from v.3.5.0", "parameters": [ { "name": "entityType", "in": "path", "description": "Type of entity (Category, Product or Variant)", "required": true, "schema": { "$ref": "#/components/schemas/Struct.App.Domain.Shared.Entity.StructEntityType" } }, { "name": "configurationUid", "in": "query", "description": "Uid of configuration (product structure or catalogue) to get available data references for", "schema": { "type": "string", "format": "uuid" } }, { "name": "categoryId", "in": "query", "description": "CategoryId to get data references for", "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Struct.App.Api.Models.EnrichmentInsight.DetailedInsightDataReference" } } } } } } } } } } ``` -------------------------------- ### Query Documentation Dynamically Source: https://docs.struct.com/reference/settings/integration/webhooks/webhook-details/advanced-event-settings/additional-trigger-options.md Use this HTTP GET request to ask questions about the documentation. Include a specific 'ask' parameter for your question and an optional 'goal' parameter for broader context. The response will provide a direct answer and relevant excerpts. ```http GET https://docs.struct.com/reference/settings/integration/webhooks/webhook-details/advanced-event-settings/additional-trigger-options.md?ask=&goal= ``` -------------------------------- ### Get Query Fields for Variants Source: https://docs.struct.com/api-reference/endpoints/variants.md Retrieves a list of all available query fields that can be used for filtering and sorting variants in the PIM installation. ```APIDOC ## GET /v1/variants/queryfields ### Description Get all available query fields in the PIM installation. ### Method GET ### Endpoint /v1/variants/queryfields ### Response #### Success Response (200) - **field** (object) - Description of the queryable field, including its UID, Name, and whether it SupportsSorting. ``` -------------------------------- ### Query Documentation Dynamically Source: https://docs.struct.com/reference/settings/data-governance/business-rules/business-rule-details/triggers.md Use this HTTP GET request to ask questions about the documentation. Include the 'ask' parameter for your question and optionally the 'goal' parameter for broader context. ```http GET https://docs.struct.com/reference/settings/data-governance/business-rules/business-rule-details/triggers.md?ask=&goal= ``` -------------------------------- ### Get Asset Type Information Source: https://docs.struct.com/api-reference/endpoints/assettypes.md Retrieves information about available asset types. This can include details about variants, attributes, classifications, and dynamic setups. ```APIDOC ## GET /api/assettypes ### Description Retrieves a list of available asset types and their configurations. ### Method GET ### Endpoint /api/assettypes ### Parameters None ### Response #### Success Response (200) - **AssetType**: An object containing details about the asset type. - **VariantsTabSetup**: Configuration for the variants tab. - **AttributesOnCategoryTabSetup**: Configuration for attributes on the category tab. - **ClassificationsTabSetup**: Configuration for classifications tab. - **DynamicTabSetup**: Configuration for dynamic tabs. #### Response Example ```json { "AssetType": { "VariantsTabSetup": "...", "AttributesOnCategoryTabSetup": "...", "ClassificationsTabSetup": "...", "DynamicTabSetup": "..." } } ``` ``` -------------------------------- ### Get Child Asset Folders Source: https://docs.struct.com/api-reference/endpoints/assetfolders.md Retrieves all child folders for a given folder UID. Use the empty GUID (00000000-0000-0000-0000-000000000000) to fetch root folders. ```json { "openapi": "3.0.1", "info": { "title": "Struct PIM Public API", "version": "1.0" }, "tags": [ { "name": "AssetFolders", "description": "Assets are files that can be stored in the system and referenced on products, variants, categories and global list values. Assets uploaded to the system are assigned a URL based on the assets file name.\r\nEach image asset can be auto-scaled, cropped and formatted by adding parameters to the URL of the asset. Thus, you should only upload an image once in the highest quality you will need it and the system will take care of any scaling automatically.\r\nAssets are organized in folders, which can be nested within each other." } ], "security": [ { "ApiKey": [] } ], "components": { "securitySchemes": { "ApiKey": { "type": "apiKey", "description": "", "name": "Authorization", "in": "header" } }, "schemas": { "Struct.App.Api.Models.Asset.AssetFolderModel": { "type": "object", "properties": { "Uid": { "type": "string", "description": "Unique identifier of the folder", "format": "uuid" }, "Name": { "type": "string", "description": "Name of the folder", "nullable": true }, "ParentUid": { "type": "string", "description": "Unique identifier of the parent folder", "format": "uuid", "nullable": true }, "IsPrivate": { "type": "boolean", "description": "Indicates whether files in this folder can only be accessed by authenticated users and not via public urls" }, "ViewPermission": { "type": "string", "description": "Unique identifier of permission required to view files in this folder", "format": "uuid", "nullable": true }, "CreatePermission": { "type": "string", "description": "Unique identifier of permission required to create files in this folder", "format": "uuid", "nullable": true }, "DeletePermission": { "type": "string", "description": "Unique identifier of permission required to Delete files in this folder", "format": "uuid", "nullable": true }, "Path": { "type": "array", "items": { "$ref": "#/components/schemas/Struct.App.Api.Models.Asset.AssetFolderPath" }, "description": "The path to the folder", "nullable": true }, "CreateBy": { "type": "string", "description": "The user who created the folder", "nullable": true }, "LastModifiedBy": { "type": "string", "description": "The user who last modified the folder", "nullable": true }, "Created": { "type": "string", "description": "The timestamp when the folder was created", "format": "date-time" }, "LastModified": { "type": "string", "description": "The timestamp when the folder was last modified", "format": "date-time" } }, "additionalProperties": false, "description": "Represents a folder in the mediabank" }, "Struct.App.Api.Models.Asset.AssetFolderPath": { "type": "object", "properties": { "Uid": { "type": "string", "description": "Unique id of folder", "format": "uuid" }, "ParentUid": { "type": "string", "description": "Unique id of parent folder", "format": "uuid", "nullable": true }, "Name": { "type": "string", "description": "Presented name of folder", "nullable": true } }, "additionalProperties": false, "description": "Represents a folder path in the asset system" }, "Microsoft.AspNetCore.Mvc.ProblemDetails": { "type": "object", "properties": { "Type": { "type": "string", "nullable": true }, "Title": { "type": "string", "nullable": true }, "Status": { "type": "integer", "format": "int32", "nullable": true }, "Detail": { "type": "string", "nullable": true }, "Instance": { "type": "string", "nullable": true } }, "additionalProperties": {}, "description": "Represents an error response" } } }, "paths": { "/v1/assetfolders/{folderUid}/children": { "get": { "tags": [ "AssetFolders" ], "summary": "Get all child folders of a folder. Use empty Guid to get root folders (00000000-0000-0000-0000-000000000000).", "parameters": [ { "name": "folderUid", "in": "path", "description": "", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Struct.App.Api.Models.Asset.AssetFolderModel" } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails" } } } } } } } } } ``` -------------------------------- ### Initialize Product Model with Structure and Variation (C#) Source: https://docs.struct.com/tutorials/guides/how-to-use-struct-pims-api/use-of-product-endpoints.md Initializes a new product model, setting the ProductStructureUid and VariationDefinitionUid obtained from previous steps. This is a basic setup before adding more details. ```csharp CreateProductModel productModelToBeCreated = new() { ProductStructureUid = clothingProductStructure.Uid, VariationDefinitionUid = clothingVariation.Uid, }; ``` -------------------------------- ### Query Documentation Dynamically Source: https://docs.struct.com/reference/publication/publication-translation.md Use this HTTP GET request to ask questions about the documentation. Include an 'ask' parameter for your question and an optional 'goal' parameter for broader context. The response includes an answer, excerpts, and sources. ```http GET https://docs.struct.com/reference/publication/publication-translation.md?ask=&goal= ``` -------------------------------- ### Get Queryable Fields for Variants Source: https://docs.struct.com/api-reference/endpoints/variants.md Retrieves a list of all fields that can be used for querying variants in the PIM installation. This is useful for understanding available filtering and sorting options. ```json {"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Variants","description":"Variants are sub elements of products that define different variations a product exist in, ex. different colors, sizes etc.\r\nVariants cannot exist on its own as they need to be attached to a product.\r\nVariants have defining attributes which defines the attributes variants of a product vary on, ex. color and size, with and length etc."}],"security":[{"ApiKey":[]}], ``` ```json "components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"schemas":{"Struct.App.Api.Models.Shared.QueryableField":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of field in PIM","nullable":true},"Name":{"type":"string","description":"The display name of the field","nullable":true},"SupportsSorting":{"type":"boolean","description":"If true field can be used for sorting"}},"additionalProperties":false,"description":"Representation of a queryable field in PIM"}}},"paths":{"/v1/variants/queryfields":{"get":{"tags":["Variants"],"summary":"Get all available query fields in the PIM installation","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.QueryableField"}}}}}}}}}} ``` -------------------------------- ### Get Queryable Fields Source: https://docs.struct.com/api-reference/endpoints/categories.md Retrieves a list of all fields that can be used for querying categories within the PIM installation. This is useful for understanding the available filtering and sorting options. ```APIDOC ## GET /v1/categories/queryablefields ### Description Get all available query fields in the PIM installation. ### Method GET ### Endpoint /v1/categories/queryablefields ### Parameters ### Request Example ### Response #### Success Response (200) - **Uid** (string) - Unique id of field in PIM - **Name** (string) - The display name of the field - **SupportsSorting** (boolean) - If true field can be used for sorting #### Response Example ```json [ { "Uid": "string", "Name": "string", "SupportsSorting": true } ] ``` ``` -------------------------------- ### Querying Documentation with Ask and Goal Parameters Source: https://docs.struct.com/tutorials/guides/how-to-use-enrichment-insights/how-to-set-up-and-edit-an-enrichment.md Use this HTTP GET request to dynamically query the documentation. The 'ask' parameter specifies your question, and the optional 'goal' parameter provides context for the desired outcome. ```bash GET https://docs.struct.com/tutorials/guides/how-to-use-enrichment-insights/how-to-set-up-and-edit-an-enrichment.md?ask=&goal= ```