{
  "info": {
    "name": "Avut PIM Public API",
    "description": "Server-to-server customer API for products, media, structures, feeds, imports, search, and tariff lookup. Keep API keys out of browser code; permissive browser CORS is not supported. Internal/operator endpoints are intentionally excluded.\n\nGenerated from src/lib/public-api-catalog.ts and src/lib/public-openapi-spec.ts.",
    "version": "2026-03",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{apiKey}}",
        "type": "string"
      }
    ]
  },
  "event": [
    {
      "listen": "prerequest",
      "script": {
        "type": "text/javascript",
        "exec": [
          "if (!pm.collectionVariables.get('apiKey')) {",
          "  console.warn('Set the apiKey collection variable before sending requests.');",
          "}"
        ]
      }
    }
  ],
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://api.avut.io",
      "type": "string",
      "description": "Avut PIM Public API base URL."
    },
    {
      "key": "apiKey",
      "value": "",
      "type": "string",
      "description": "Tenant-scoped Avut PIM API key."
    },
    {
      "key": "id",
      "value": "7f4319e6-d3e4-4531-a619-8b9507a8a1c0",
      "type": "string",
      "description": "Resource UUID."
    },
    {
      "key": "componentId",
      "value": "8a542af7-e4f5-4642-b72a-9ca618b9b2d1",
      "type": "string",
      "description": "Bundle component UUID."
    },
    {
      "key": "relationId",
      "value": "9b653b08-f506-4753-c83b-adb729cac3e2",
      "type": "string",
      "description": "Product relation UUID."
    },
    {
      "key": "linkId",
      "value": "ac764c19-0617-4864-d94c-bec83adbd4f3",
      "type": "string",
      "description": "Media link UUID."
    },
    {
      "key": "itemId",
      "value": "bd875d2a-1728-4975-e05d-cfd94bece504",
      "type": "string",
      "description": "Assortment item UUID."
    },
    {
      "key": "key",
      "value": "sample-key",
      "type": "string",
      "description": "Attribute key."
    },
    {
      "key": "type",
      "value": "product-groups",
      "type": "string",
      "description": "Structure type."
    }
  ],
  "item": [
    {
      "name": "Products",
      "item": [
        {
          "name": "GET List products",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "List products\n\nScope: read.\n\nSuccess responses:\n- 200: Resource returned.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/products?limit=100&status=active&include_i18n=false",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "products"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "100",
                  "description": "Maximum records to return. Defaults to 50 and is capped at 100 without expansions or 25 when expand is used.",
                  "disabled": false
                },
                {
                  "key": "cursor",
                  "value": "",
                  "description": "Pagination cursor returned as nextCursor from the previous page.",
                  "disabled": true
                },
                {
                  "key": "search",
                  "value": "",
                  "description": "Case-insensitive product search across supported product identifiers and text fields.",
                  "disabled": true
                },
                {
                  "key": "filters",
                  "value": "",
                  "description": "JSON-encoded advanced product filters using the same filter clauses supported by the product list.",
                  "disabled": true
                },
                {
                  "key": "includeArchived",
                  "value": "",
                  "description": "Legacy compatibility flag that includes archived rows. Prefer status=archived or status=all for new integrations.",
                  "disabled": true
                },
                {
                  "key": "sku",
                  "value": "",
                  "description": "Optional comma-separated list of exact SKUs to return. The list is capped at 100 SKUs.",
                  "disabled": true
                },
                {
                  "key": "status",
                  "value": "active",
                  "description": "Product status filter. Defaults to active.",
                  "disabled": false
                },
                {
                  "key": "updated_since",
                  "value": "",
                  "description": "Return products updated after this ISO 8601 timestamp.",
                  "disabled": true
                },
                {
                  "key": "updated_before",
                  "value": "",
                  "description": "Return products updated at or before this ISO 8601 timestamp.",
                  "disabled": true
                },
                {
                  "key": "include_i18n",
                  "value": "false",
                  "description": "Set true to include localized/translatable values in the response.",
                  "disabled": false
                },
                {
                  "key": "expand",
                  "value": "",
                  "description": "Comma-separated linked data to include: media, relations, collections, bundle_components, assortment_items, variants, packaging, or all.",
                  "disabled": true
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "POST Create product",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Create a product. Manage product packaging and relations through their dedicated product sub-resource endpoints after the product exists.\n\nScope: write.\n\nSuccess responses:\n- 201: Resource created.\n\nExpected errors:\n- 400: The product payload is invalid or missing required fields.\n- 409: A product with the same SKU or external identifier already exists.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/products",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "products"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"sku\": \"JACKET-NORDIC-001\",\n  \"name\": \"Nordic performance jacket\",\n  \"name_i18n\": {\n    \"en\": \"Nordic performance jacket\",\n    \"nb\": \"Nordisk skalljakke\"\n  },\n  \"status\": \"draft\",\n  \"product_kind\": \"standard\",\n  \"description\": {\n    \"en\": \"Lightweight shell jacket for changing weather.\"\n  },\n  \"eu_antidumping_declarations\": [],\n  \"no_preferential_duty_confirmations\": []\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "GET List changed products",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Returns products that have product change-log entries after a timestamp. Use this as the first step in an integration delta sync: page until nextCursor is null, then store the returned until value as the next sync watermark.\n\nScope: read.\n\nSuccess responses:\n- 200: Resource returned.\n\nExpected errors:\n- 400: since, until, status, or cursor is invalid.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/products/changes?since=&status=active&limit=100",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "products",
                "changes"
              ],
              "query": [
                {
                  "key": "since",
                  "value": "",
                  "description": "Return products with changes after this ISO 8601 timestamp.",
                  "disabled": false
                },
                {
                  "key": "until",
                  "value": "",
                  "description": "Optional upper ISO 8601 timestamp for the change window. When omitted, the API uses the request time and returns it in the response.",
                  "disabled": true
                },
                {
                  "key": "status",
                  "value": "active",
                  "description": "Product status filter. Defaults to active. Use all to include archived and draft products.",
                  "disabled": false
                },
                {
                  "key": "include_fields",
                  "value": "false",
                  "description": "Set true to include changed field paths per product.",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "100",
                  "description": "Maximum records to return. Defaults to 100 and is capped at 500.",
                  "disabled": false
                },
                {
                  "key": "cursor",
                  "value": "",
                  "description": "Pagination cursor returned as nextCursor from the previous page.",
                  "disabled": true
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "GET Get product",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Get product\n\nScope: read.\n\nSuccess responses:\n- 200: Resource returned.\n\nExpected errors:\n- 404: Product not found.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/products/{{id}}?include_i18n=false",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "products",
                "{{id}}"
              ],
              "query": [
                {
                  "key": "include_i18n",
                  "value": "false",
                  "description": "Set true to include localized/translatable values in the response.",
                  "disabled": false
                },
                {
                  "key": "expand",
                  "value": "",
                  "description": "Comma-separated linked data to include: media, relations, collections, bundle_components, assortment_items, variants, packaging, or all.",
                  "disabled": true
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "PATCH Update product",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Update product\n\nScope: write.\n\nSuccess responses:\n- 200: Resource updated.\n\nExpected errors:\n- 400: The update payload is invalid.\n- 404: Product not found.\n- 409: The update conflicts with another product identifier.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/products/{{id}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "products",
                "{{id}}"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Nordic performance jacket\",\n  \"description\": {\n    \"en\": \"Lightweight shell jacket for changing weather.\"\n  },\n  \"status\": \"active\",\n  \"product_kind\": \"standard\",\n  \"eu_antidumping_declarations\": [],\n  \"no_preferential_duty_confirmations\": [],\n  \"attributes\": {\n    \"sample_color\": \"Black\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "DELETE Archive product",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Archives the product by setting archived_at. The product row is not permanently deleted and can be restored if its SKU is still available.\n\nScope: write.\n\nSuccess responses:\n- 200: Product archived and returned.\n\nExpected errors:\n- 404: Product not found.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/products/{{id}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "products",
                "{{id}}"
              ]
            }
          },
          "response": []
        },
        {
          "name": "POST Restore archived product",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Restores an archived product by clearing archived_at. If another product now uses the same SKU, the restore is rejected with SKU_COLLISION.\n\nScope: write.\n\nSuccess responses:\n- 200: Product restored and returned.\n\nExpected errors:\n- 404: Product not found.\n- 409: The archived product SKU is already in use.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/products/{{id}}/restore",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "products",
                "{{id}}",
                "restore"
              ]
            }
          },
          "response": []
        },
        {
          "name": "DELETE Delete product permanently",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Permanently deletes an archived product and its product-scoped history. This cannot be undone. The request is blocked unless the product is archived first, and is also blocked when the product has variants or is used as a bundle component.\n\nScope: write.\n\nSuccess responses:\n- 200: Product permanently deleted.\n\nExpected errors:\n- 404: Product not found.\n- 409: Product cannot be deleted permanently yet.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/products/{{id}}/permanent",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "products",
                "{{id}}",
                "permanent"
              ]
            }
          },
          "response": []
        },
        {
          "name": "GET Get product changed fields",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Returns product field changes from the product change log for integration delta sync. Use latest mode for one row per changed field, or events mode for every change event.\n\nScope: read.\n\nSuccess responses:\n- 200: Resource returned.\n\nExpected errors:\n- 400: since, until, or cursor is invalid.\n- 404: Product not found.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/products/{{id}}/changes?since=&limit=100",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "products",
                "{{id}}",
                "changes"
              ],
              "query": [
                {
                  "key": "since",
                  "value": "",
                  "description": "Return changes after this ISO 8601 timestamp.",
                  "disabled": false
                },
                {
                  "key": "until",
                  "value": "",
                  "description": "Optional upper ISO 8601 timestamp for the change window.",
                  "disabled": true
                },
                {
                  "key": "mode",
                  "value": "",
                  "description": "Change output mode. latest returns one row per changed field; events returns each change event.",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "100",
                  "description": "Maximum records to return. Defaults to 100 and is capped at 500.",
                  "disabled": false
                },
                {
                  "key": "cursor",
                  "value": "",
                  "description": "Pagination cursor returned as nextCursor from the previous page.",
                  "disabled": true
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "GET Get product attributes",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Get product attributes\n\nScope: read.\n\nSuccess responses:\n- 200: Resource returned.\n\nExpected errors:\n- 404: Product not found.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/products/{{id}}/attributes?include_i18n=false",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "products",
                "{{id}}",
                "attributes"
              ],
              "query": [
                {
                  "key": "include_i18n",
                  "value": "false",
                  "description": "Set true to include localized/translatable values in the response.",
                  "disabled": false
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "PATCH Update product attributes",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Update product attributes\n\nScope: write.\n\nSuccess responses:\n- 200: Resource updated.\n\nExpected errors:\n- 400: One or more attribute values are invalid for the attribute type.\n- 404: Product or attribute not found.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/products/{{id}}/attributes",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "products",
                "{{id}}",
                "attributes"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"attributes\": {\n    \"sample_color\": \"Black\",\n    \"sample_material\": \"Recycled polyester\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "GET List product relations",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "List product relations\n\nScope: read.\n\nSuccess responses:\n- 200: Resource returned.\n\nExpected errors:\n- 404: Product not found.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/products/{{id}}/relations?include_i18n=false",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "products",
                "{{id}}",
                "relations"
              ],
              "query": [
                {
                  "key": "include_i18n",
                  "value": "false",
                  "description": "Set true to include localized/translatable values in the response.",
                  "disabled": false
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "POST Create product relation",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Create product relation\n\nScope: write.\n\nSuccess responses:\n- 201: Resource created.\n\nExpected errors:\n- 400: The relation type or target product is invalid.\n- 404: Source product, target product, or relation type not found.\n- 409: The relation already exists.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/products/{{id}}/relations",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "products",
                "{{id}}",
                "relations"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"related_product_id\": \"{{relatedProductId}}\",\n  \"relation_type_id\": \"{{relationTypeId}}\",\n  \"sort_order\": 0\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "PATCH Update product relation",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Update product relation\n\nScope: write.\n\nSuccess responses:\n- 200: Resource updated.\n\nExpected errors:\n- 404: Product relation not found.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/products/{{id}}/relations/{{relationId}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "products",
                "{{id}}",
                "relations",
                "{{relationId}}"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"relation_type_id\": \"{{relationTypeId}}\",\n  \"sort_order\": 0\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "DELETE Delete product relation",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Delete product relation\n\nScope: write.\n\nSuccess responses:\n- 200: Resource deleted or archived.\n\nExpected errors:\n- 404: Product relation not found.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/products/{{id}}/relations/{{relationId}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "products",
                "{{id}}",
                "relations",
                "{{relationId}}"
              ]
            }
          },
          "response": []
        },
        {
          "name": "GET List product bundle components",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Returns the components contained in a bundle product, plus bundles where this product is used as a component.\n\nScope: read.\n\nSuccess responses:\n- 200: Resource returned.\n\nExpected errors:\n- 404: Product not found.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/products/{{id}}/bundle-components",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "products",
                "{{id}}",
                "bundle-components"
              ]
            }
          },
          "response": []
        },
        {
          "name": "POST Add or update bundle component",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Adds a sellable standalone product or variant to a standalone bundle product. Parent products and nested bundles are rejected.\n\nScope: write.\n\nSuccess responses:\n- 200: Bundle component created or updated.\n\nExpected errors:\n- 400: The bundle product, component product, or quantity is invalid.\n- 404: Product not found.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/products/{{id}}/bundle-components",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "products",
                "{{id}}",
                "bundle-components"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"component_product_id\": \"{{componentProductIdOrSku}}\",\n  \"quantity\": 1,\n  \"sort_order\": 0\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "DELETE Remove bundle component",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Remove bundle component\n\nScope: write.\n\nSuccess responses:\n- 200: Bundle component removed.\n\nExpected errors:\n- 404: Product or bundle component not found.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/products/{{id}}/bundle-components/{{componentId}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "products",
                "{{id}}",
                "bundle-components",
                "{{componentId}}"
              ]
            }
          },
          "response": []
        },
        {
          "name": "GET List product assortment contents",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "List product assortment contents\n\nScope: read.\n\nSuccess responses:\n- 200: Resource returned.\n\nExpected errors:\n- 404: Product not found.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/products/{{id}}/assortment-items",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "products",
                "{{id}}",
                "assortment-items"
              ]
            }
          },
          "response": []
        },
        {
          "name": "PATCH Replace product assortment contents",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Replace product assortment contents\n\nScope: write.\n\nSuccess responses:\n- 200: Resource updated.\n\nExpected errors:\n- 400: Assortment content values are invalid.\n- 404: Product not found.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/products/{{id}}/assortment-items",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "products",
                "{{id}}",
                "assortment-items"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"metadata\": {\n    \"description\": \"Contains one small and one medium item packed as one sellable assortment.\",\n    \"descriptionI18n\": {\n      \"nb\": \"Inneholder en small og en medium pakket som ett salgbart sett.\"\n    }\n  },\n  \"items\": [\n    {\n      \"itemType\": \"size\",\n      \"label\": \"Size M\",\n      \"sku\": \"SET-A123-M\",\n      \"gtin\": \"1234567890123\",\n      \"quantity\": 1,\n      \"share_percent\": 33.33,\n      \"description\": \"Medium item in the set\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "GET Get product packaging roles",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Get product packaging roles\n\nScope: read.\n\nSuccess responses:\n- 200: Resource returned.\n\nExpected errors:\n- 404: Product not found.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/products/{{id}}/packaging",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "products",
                "{{id}}",
                "packaging"
              ]
            }
          },
          "response": []
        },
        {
          "name": "PATCH Update product packaging roles",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Update product packaging roles\n\nScope: write.\n\nSuccess responses:\n- 200: Resource updated.\n\nExpected errors:\n- 400: Packaging role, quantity, GTIN, or dimension values are invalid.\n- 404: Product, packaging level, or packaging type not found.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/products/{{id}}/packaging",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "products",
                "{{id}}",
                "packaging"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"roles\": [\n    {\n      \"colliIndex\": 0,\n      \"colliLabel\": \"Colli 1\",\n      \"colliDescription\": null,\n      \"roleCode\": \"consumer_unit\",\n      \"typeCode\": \"polybag\",\n      \"quantityToConsumerUnit\": 1,\n      \"gtin\": \"1234567890123\",\n      \"gtinDescription\": \"Consumer unit barcode\",\n      \"additionalGtins\": [\n        \"1234567890124\"\n      ],\n      \"additionalGtinDescriptions\": [\n        \"Alternate barcode\"\n      ],\n      \"length\": 45,\n      \"width\": 35,\n      \"height\": 8,\n      \"dimensionUnit\": \"cm\",\n      \"volumeSource\": \"derived\",\n      \"netWeight\": 0.9,\n      \"grossWeight\": 1,\n      \"weightUnit\": \"kg\"\n    },\n    {\n      \"colliIndex\": 1,\n      \"colliLabel\": \"Colli 2\",\n      \"colliDescription\": \"Second physical package\",\n      \"roleCode\": \"master_carton\",\n      \"typeCode\": \"brown_box\",\n      \"quantityToConsumerUnit\": 12,\n      \"length\": 60,\n      \"width\": 40,\n      \"height\": 30,\n      \"dimensionUnit\": \"cm\",\n      \"volumeSource\": \"derived\",\n      \"grossWeight\": 8.4,\n      \"weightUnit\": \"kg\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "GET List product media",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "List product media\n\nScope: read.\n\nSuccess responses:\n- 200: Resource returned.\n\nExpected errors:\n- 400: The variant id is invalid for this product.\n- 404: Product or variant not found.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/products/{{id}}/media",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "products",
                "{{id}}",
                "media"
              ],
              "query": [
                {
                  "key": "variant_id",
                  "value": "",
                  "description": "Optional child variant product id for variant-specific media. Use only when {id} is the parent product; omit for product-level media.",
                  "disabled": true
                },
                {
                  "key": "resolve",
                  "value": "",
                  "description": "Set true to resolve inherited variant media fallback.",
                  "disabled": true
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "POST Link product media",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Link product media\n\nScope: write.\n\nSuccess responses:\n- 201: Resource created.\n\nExpected errors:\n- 400: The asset, URL, role, or variant scope is invalid.\n- 404: Product, variant, or media asset not found.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/products/{{id}}/media",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "products",
                "{{id}}",
                "media"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"asset_id\": \"{{assetId}}\",\n  \"role\": \"primary\",\n  \"sort_index\": 0,\n  \"alt_text\": \"Front view of Nordic performance jacket\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "PATCH Update product media link",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Update product media link\n\nScope: write.\n\nSuccess responses:\n- 200: Resource updated.\n\nExpected errors:\n- 404: Product or media link not found.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/products/{{id}}/media/{{linkId}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "products",
                "{{id}}",
                "media",
                "{{linkId}}"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"role\": \"primary\",\n  \"sort_index\": 0,\n  \"alt_text\": \"Front view\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "DELETE Unlink media from product",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Unlink media from product\n\nScope: write.\n\nSuccess responses:\n- 200: Resource deleted or archived.\n\nExpected errors:\n- 404: Product or media link not found.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/products/{{id}}/media/{{linkId}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "products",
                "{{id}}",
                "media",
                "{{linkId}}"
              ]
            }
          },
          "response": []
        },
        {
          "name": "GET List product collections",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Returns reusable product collections. Collections can be manual, rule-based, or mixed.\n\nScope: read.\n\nSuccess responses:\n- 200: Resource returned.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/product-collections?status=active",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "product-collections"
              ],
              "query": [
                {
                  "key": "status",
                  "value": "active",
                  "description": "Collection status filter. Valid values: active, archived, all.",
                  "disabled": false
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "POST Create product collection",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Create product collection\n\nScope: write.\n\nSuccess responses:\n- 200: Product collection created.\n\nExpected errors:\n- 400: The collection payload is invalid.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/product-collections",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "product-collections"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Winter campaign\",\n  \"code\": \"winter-campaign\",\n  \"description\": \"Products for the winter launch.\",\n  \"mode\": \"manual\",\n  \"status\": \"active\",\n  \"rules\": {}\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "GET Get product collection",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Get product collection\n\nScope: read.\n\nSuccess responses:\n- 200: Resource returned.\n\nExpected errors:\n- 404: Product collection not found.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/product-collections/{{id}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "product-collections",
                "{{id}}"
              ]
            }
          },
          "response": []
        },
        {
          "name": "PATCH Update product collection",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Updates collection metadata, status, mode, or rules. Manual members are managed with the products subresource.\n\nScope: write.\n\nSuccess responses:\n- 200: Resource updated.\n\nExpected errors:\n- 400: The collection payload is invalid.\n- 404: Product collection not found.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/product-collections/{{id}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "product-collections",
                "{{id}}"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Winter campaign\",\n  \"status\": \"active\",\n  \"mode\": \"mixed\",\n  \"rules\": {\n    \"includeCollectionIds\": [\n      \"79c33e3a-6c43-4d1d-8fa9-766d2c3d6327\"\n    ],\n    \"brandIds\": [\n      \"4ff7a9d0-4db1-4ba4-964c-b2d3cab8d8d8\"\n    ],\n    \"attributeRules\": [\n      {\n        \"attributeKey\": \"season\",\n        \"operator\": \"equals\",\n        \"value\": \"Winter\"\n      }\n    ]\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "DELETE Archive product collection",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Archive product collection\n\nScope: write.\n\nSuccess responses:\n- 200: Collection archived.\n\nExpected errors:\n- 404: Product collection not found.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/product-collections/{{id}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "product-collections",
                "{{id}}"
              ]
            }
          },
          "response": []
        },
        {
          "name": "GET List products in collection",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Returns manual members plus rule-matched products for rule-based and mixed collections.\n\nScope: read.\n\nSuccess responses:\n- 200: Resource returned.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/product-collections/{{id}}/products",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "product-collections",
                "{{id}}",
                "products"
              ],
              "query": [
                {
                  "key": "search",
                  "value": "",
                  "description": "Optional product search used by the app when adding members.",
                  "disabled": true
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "POST Add products to collection",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Adds manual product members. Rule-matched products are controlled by collection rules.\n\nScope: write.\n\nSuccess responses:\n- 200: Collection members updated.\n\nExpected errors:\n- 400: The productIds payload is invalid.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/product-collections/{{id}}/products",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "product-collections",
                "{{id}}",
                "products"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"productIds\": [\n    \"e112ef8d-22a2-4599-a4cf-0527db82bd40\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "DELETE Remove products from collection",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Removes manual members. Products can still appear if they match the collection rules.\n\nScope: write.\n\nSuccess responses:\n- 200: Collection members updated.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/product-collections/{{id}}/products",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "product-collections",
                "{{id}}",
                "products"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"productIds\": [\n    \"e112ef8d-22a2-4599-a4cf-0527db82bd40\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "GET List collections for product",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Returns product collections where the product is included manually or by rules.\n\nScope: read.\n\nSuccess responses:\n- 200: Resource returned.\n\nExpected errors:\n- 404: Product not found.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/products/{{id}}/collections",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "products",
                "{{id}}",
                "collections"
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Media",
      "item": [
        {
          "name": "GET List media assets",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "List media assets\n\nScope: read.\n\nSuccess responses:\n- 200: Resource returned.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/media/assets?status=active",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "media",
                "assets"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "",
                  "description": "Zero-based page number. Defaults to 0.",
                  "disabled": true
                },
                {
                  "key": "pageSize",
                  "value": "",
                  "description": "Number of records to return. Defaults to 48 and is capped at 200.",
                  "disabled": true
                },
                {
                  "key": "q",
                  "value": "",
                  "description": "Optional text search across media URL/storage key, alt text, linked product name, SKU, and variant name/SKU.",
                  "disabled": true
                },
                {
                  "key": "sort",
                  "value": "",
                  "description": "Sort order. Valid values: newest, oldest, size, role.",
                  "disabled": true
                },
                {
                  "key": "roles",
                  "value": "",
                  "description": "Comma-separated media roles to filter by.",
                  "disabled": true
                },
                {
                  "key": "status",
                  "value": "active",
                  "description": "Comma-separated asset statuses to filter by.",
                  "disabled": false
                },
                {
                  "key": "quality",
                  "value": "",
                  "description": "Comma-separated media quality filters.",
                  "disabled": true
                },
                {
                  "key": "linked",
                  "value": "",
                  "description": "Link status filter. Valid values: linked, unlinked.",
                  "disabled": true
                },
                {
                  "key": "variant",
                  "value": "",
                  "description": "Variant scope filter. Valid values: product, variant.",
                  "disabled": true
                },
                {
                  "key": "duplicates",
                  "value": "",
                  "description": "Set true to return only assets with duplicate matches.",
                  "disabled": true
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "GET Get media asset",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Get media asset\n\nScope: read.\n\nSuccess responses:\n- 200: Resource returned.\n\nExpected errors:\n- 404: Media asset not found.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/media/assets/{{id}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "media",
                "assets",
                "{{id}}"
              ]
            }
          },
          "response": []
        },
        {
          "name": "GET List media collections",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "List media collections\n\nScope: read.\n\nSuccess responses:\n- 200: Resource returned.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/media/collections?status=active",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "media",
                "collections"
              ],
              "query": [
                {
                  "key": "status",
                  "value": "active",
                  "description": "Collection status filter. Valid values: active, archived, all.",
                  "disabled": false
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "POST Create media collection",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Create media collection\n\nScope: write.\n\nSuccess responses:\n- 201: Resource created.\n\nExpected errors:\n- 400: The collection payload is invalid.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/media/collections",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "media",
                "collections"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Spring campaign\",\n  \"description\": \"Assets for spring product launches.\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "GET Get media collection",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Get media collection\n\nScope: read.\n\nSuccess responses:\n- 200: Resource returned.\n\nExpected errors:\n- 404: Media collection not found.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/media/collections/{{id}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "media",
                "collections",
                "{{id}}"
              ]
            }
          },
          "response": []
        },
        {
          "name": "PATCH Update media collection",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Update media collection\n\nScope: write.\n\nSuccess responses:\n- 200: Resource updated.\n\nExpected errors:\n- 400: The collection payload is invalid.\n- 404: Media collection not found.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/media/collections/{{id}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "media",
                "collections",
                "{{id}}"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Spring campaign\",\n  \"description\": \"Primary assets for spring product launches.\",\n  \"status\": \"active\",\n  \"rules\": {\n    \"query\": \"jacket\",\n    \"roles\": [\n      \"primary\"\n    ],\n    \"sort\": \"newest\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "GET Get media collection manifest",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Returns the paginated asset manifest generated from a media collection's rules.\n\nScope: read.\n\nSuccess responses:\n- 200: Resource returned.\n\nExpected errors:\n- 404: Media collection not found.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/media/collections/{{id}}/manifest",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "media",
                "collections",
                "{{id}}",
                "manifest"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "",
                  "description": "Zero-based page number. Defaults to 0.",
                  "disabled": true
                },
                {
                  "key": "pageSize",
                  "value": "",
                  "description": "Number of assets to return. Defaults to 96 and is capped at 500.",
                  "disabled": true
                }
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Structures",
      "item": [
        {
          "name": "GET List structure records by type",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "List structure records by type\n\nScope: read.\n\nSuccess responses:\n- 200: Resource returned.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/structures/{{type}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "structures",
                "{{type}}"
              ]
            }
          },
          "response": []
        },
        {
          "name": "POST Create structure record by type",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Create structure record by type\n\nScope: write.\n\nSuccess responses:\n- 201: Resource created.\n\nExpected errors:\n- 400: The structure type or payload is invalid.\n- 409: A structure record with the same key already exists.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/structures/{{type}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "structures",
                "{{type}}"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Outerwear\",\n  \"code\": \"outerwear\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "PATCH Update structure record by type",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Update structure record by type\n\nScope: write.\n\nSuccess responses:\n- 200: Resource updated.\n\nExpected errors:\n- 400: The structure type or update payload is invalid.\n- 404: Structure record not found.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/structures/{{type}}/{{id}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "structures",
                "{{type}}",
                "{{id}}"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Outerwear\",\n  \"code\": \"outerwear\",\n  \"isActive\": true\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "DELETE Delete structure record by type",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Delete structure record by type\n\nScope: write.\n\nSuccess responses:\n- 200: Resource deleted or archived.\n\nExpected errors:\n- 404: Structure record not found.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/structures/{{type}}/{{id}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "structures",
                "{{type}}",
                "{{id}}"
              ]
            }
          },
          "response": []
        },
        {
          "name": "GET List categories",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "List categories\n\nScope: read.\n\nSuccess responses:\n- 200: Resource returned.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/structures/categories",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "structures",
                "categories"
              ]
            }
          },
          "response": []
        },
        {
          "name": "POST Create category",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Create category\n\nScope: write.\n\nSuccess responses:\n- 201: Resource created.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/structures/categories",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "structures",
                "categories"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Outdoor\",\n  \"name_i18n\": {\n    \"nb\": \"Friluft\"\n  },\n  \"code\": \"outdoor\",\n  \"parentId\": null,\n  \"isActive\": true\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "PATCH Update category",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Update category\n\nScope: write.\n\nSuccess responses:\n- 200: Resource updated.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/structures/categories/{{id}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "structures",
                "categories",
                "{{id}}"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Outdoor\",\n  \"name_i18n\": {\n    \"nb\": \"Friluft\"\n  },\n  \"code\": \"outdoor\",\n  \"parentId\": null,\n  \"isActive\": true\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "DELETE Delete category",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Delete category\n\nScope: write.\n\nSuccess responses:\n- 200: Resource deleted or archived.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/structures/categories/{{id}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "structures",
                "categories",
                "{{id}}"
              ]
            }
          },
          "response": []
        },
        {
          "name": "GET List variant models",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "List variant models\n\nScope: read.\n\nSuccess responses:\n- 200: Resource returned.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/structures/variants",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "structures",
                "variants"
              ]
            }
          },
          "response": []
        },
        {
          "name": "POST Create variant model",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Create variant model\n\nScope: write.\n\nSuccess responses:\n- 201: Resource created.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/structures/variants",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "structures",
                "variants"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Size\",\n  \"name_i18n\": {\n    \"nb\": \"Storrelse\"\n  },\n  \"code\": \"size\",\n  \"isActive\": true,\n  \"dimensions\": [\n    {\n      \"name\": \"Size\",\n      \"type\": \"size\",\n      \"options\": [\n        {\n          \"value\": \"M\"\n        }\n      ]\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "GET Get variant model",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Get variant model\n\nScope: read.\n\nSuccess responses:\n- 200: Resource returned.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/structures/variants/{{id}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "structures",
                "variants",
                "{{id}}"
              ]
            }
          },
          "response": []
        },
        {
          "name": "PATCH Update variant model",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Update variant model\n\nScope: write.\n\nSuccess responses:\n- 200: Resource updated.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/structures/variants/{{id}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "structures",
                "variants",
                "{{id}}"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Size\",\n  \"name_i18n\": {\n    \"nb\": \"Storrelse\"\n  },\n  \"code\": \"size\",\n  \"isActive\": true,\n  \"dimensions\": [\n    {\n      \"name\": \"Size\",\n      \"type\": \"size\",\n      \"options\": [\n        {\n          \"value\": \"M\"\n        }\n      ]\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "DELETE Delete variant model",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Delete variant model\n\nScope: write.\n\nSuccess responses:\n- 200: Resource deleted or archived.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/structures/variants/{{id}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "structures",
                "variants",
                "{{id}}"
              ]
            }
          },
          "response": []
        },
        {
          "name": "GET List product relation types",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "List product relation types\n\nScope: read.\n\nSuccess responses:\n- 200: Resource returned.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/structures/relation-types",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "structures",
                "relation-types"
              ]
            }
          },
          "response": []
        },
        {
          "name": "POST Create product relation type",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Create product relation type\n\nScope: write.\n\nSuccess responses:\n- 201: Resource created.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/structures/relation-types",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "structures",
                "relation-types"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Accessory\",\n  \"code\": \"accessory\",\n  \"direction\": \"one_way\",\n  \"reverseLabel\": \"Accessory for\",\n  \"sort_order\": 0,\n  \"isActive\": true\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "PATCH Update product relation type",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Update product relation type\n\nScope: write.\n\nSuccess responses:\n- 200: Resource updated.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/structures/relation-types/{{id}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "structures",
                "relation-types",
                "{{id}}"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Accessory\",\n  \"code\": \"accessory\",\n  \"direction\": \"one_way\",\n  \"reverseLabel\": \"Accessory for\",\n  \"sort_order\": 0,\n  \"isActive\": true\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "DELETE Delete product relation type",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Delete product relation type\n\nScope: write.\n\nSuccess responses:\n- 200: Resource deleted or archived.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/structures/relation-types/{{id}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "structures",
                "relation-types",
                "{{id}}"
              ]
            }
          },
          "response": []
        },
        {
          "name": "GET List packaging levels",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "List packaging levels\n\nScope: read.\n\nSuccess responses:\n- 200: Resource returned.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/structures/packaging-levels",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "structures",
                "packaging-levels"
              ]
            }
          },
          "response": []
        },
        {
          "name": "POST Create packaging level",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Create packaging level\n\nScope: write.\n\nSuccess responses:\n- 201: Resource created.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/structures/packaging-levels",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "structures",
                "packaging-levels"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Case\",\n  \"code\": \"case\",\n  \"roleId\": \"4b6dbf24-e3b8-4a53-a56c-4209f950698b\",\n  \"sortOrder\": 0,\n  \"isActive\": true,\n  \"capabilities\": {\n    \"identifiers\": true,\n    \"quantityRelation\": true,\n    \"dimensions\": true,\n    \"weights\": true,\n    \"volume\": true,\n    \"logistics\": false\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "PATCH Update packaging level",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Update packaging level\n\nScope: write.\n\nSuccess responses:\n- 200: Resource updated.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/structures/packaging-levels/{{id}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "structures",
                "packaging-levels",
                "{{id}}"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Case\",\n  \"code\": \"case\",\n  \"roleId\": \"4b6dbf24-e3b8-4a53-a56c-4209f950698b\",\n  \"sortOrder\": 0,\n  \"isActive\": true,\n  \"capabilities\": {\n    \"identifiers\": true,\n    \"quantityRelation\": true,\n    \"dimensions\": true,\n    \"weights\": true,\n    \"volume\": true,\n    \"logistics\": false\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "DELETE Delete packaging level",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Delete packaging level\n\nScope: write.\n\nSuccess responses:\n- 200: Resource deleted or archived.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/structures/packaging-levels/{{id}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "structures",
                "packaging-levels",
                "{{id}}"
              ]
            }
          },
          "response": []
        },
        {
          "name": "GET List packaging role sets",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "List packaging role sets\n\nScope: read.\n\nSuccess responses:\n- 200: Resource returned.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/structures/packaging-role-sets",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "structures",
                "packaging-role-sets"
              ]
            }
          },
          "response": []
        },
        {
          "name": "POST Create packaging role set",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Create packaging role set\n\nScope: write.\n\nSuccess responses:\n- 201: Resource created.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/structures/packaging-role-sets",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "structures",
                "packaging-role-sets"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Default packaging\",\n  \"code\": \"default-packaging\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "PATCH Update packaging role set",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Update packaging role set\n\nScope: write.\n\nSuccess responses:\n- 200: Resource updated.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/structures/packaging-role-sets/{{id}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "structures",
                "packaging-role-sets",
                "{{id}}"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Default packaging\",\n  \"code\": \"default-packaging\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "DELETE Delete packaging role set",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Delete packaging role set\n\nScope: write.\n\nSuccess responses:\n- 200: Resource deleted or archived.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/structures/packaging-role-sets/{{id}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "structures",
                "packaging-role-sets",
                "{{id}}"
              ]
            }
          },
          "response": []
        },
        {
          "name": "GET List product templates",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "List product templates\n\nScope: read.\n\nSuccess responses:\n- 200: Resource returned.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/structures/product-templates",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "structures",
                "product-templates"
              ]
            }
          },
          "response": []
        },
        {
          "name": "POST Create product template",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Create product template\n\nScope: write.\n\nSuccess responses:\n- 200: product template created.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/structures/product-templates",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "structures",
                "product-templates"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Outdoor products\",\n  \"attributeKeys\": [\n    \"sample_color\"\n  ],\n  \"attributeLayout\": \"horizontal\",\n  \"attributeSplit\": 5,\n  \"textLayout\": \"horizontal\",\n  \"textSplit\": 5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "GET Get product template",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Get product template\n\nScope: read.\n\nSuccess responses:\n- 200: Resource returned.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/structures/product-templates/{{id}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "structures",
                "product-templates",
                "{{id}}"
              ]
            }
          },
          "response": []
        },
        {
          "name": "PATCH Update product template",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Update product template\n\nScope: write.\n\nSuccess responses:\n- 200: Resource updated.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/structures/product-templates/{{id}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "structures",
                "product-templates",
                "{{id}}"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Outdoor products\",\n  \"attributeKeys\": [\n    \"sample_color\"\n  ],\n  \"attributeLayout\": \"horizontal\",\n  \"attributeSplit\": 5,\n  \"textLayout\": \"horizontal\",\n  \"textSplit\": 5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "DELETE Delete product template",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Delete product template\n\nScope: write.\n\nSuccess responses:\n- 200: Resource deleted or archived.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/structures/product-templates/{{id}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "structures",
                "product-templates",
                "{{id}}"
              ]
            }
          },
          "response": []
        },
        {
          "name": "GET List attributes",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "List attributes\n\nScope: read.\n\nSuccess responses:\n- 200: Resource returned.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/attributes",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "attributes"
              ]
            }
          },
          "response": []
        },
        {
          "name": "POST Create attribute",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Create attribute\n\nScope: write.\n\nSuccess responses:\n- 201: Resource created.\n\nExpected errors:\n- 400: The attribute definition is invalid.\n- 409: An attribute with the same key already exists.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/attributes",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "attributes"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"key\": \"sample_color\",\n  \"label\": \"Sample color\",\n  \"type\": \"text\",\n  \"text_mode\": \"single_line\",\n  \"attribute_group\": \"sample_content\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "GET Get attribute",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Get attribute\n\nScope: read.\n\nSuccess responses:\n- 200: Resource returned.\n\nExpected errors:\n- 404: Attribute not found.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/attributes/{{key}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "attributes",
                "{{key}}"
              ]
            }
          },
          "response": []
        },
        {
          "name": "PATCH Update attribute",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Update attribute\n\nScope: write.\n\nSuccess responses:\n- 200: Resource updated.\n\nExpected errors:\n- 400: The attribute update payload is invalid.\n- 404: Attribute not found.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/attributes/{{key}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "attributes",
                "{{key}}"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"label\": \"Sample color\",\n  \"type\": \"text\",\n  \"text_mode\": \"single_line\",\n  \"attribute_group\": \"sample_content\",\n  \"required\": false\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "DELETE Delete attribute",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Delete attribute\n\nScope: write.\n\nSuccess responses:\n- 200: Resource deleted or archived.\n\nExpected errors:\n- 404: Attribute not found.\n- 409: The attribute is still used by products, templates, or imports.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/attributes/{{key}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "attributes",
                "{{key}}"
              ]
            }
          },
          "response": []
        },
        {
          "name": "GET List value lists",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "List value lists\n\nScope: read.\n\nSuccess responses:\n- 200: Resource returned.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/value-lists",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "value-lists"
              ]
            }
          },
          "response": []
        },
        {
          "name": "POST Create value list",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Create value list\n\nScope: write.\n\nSuccess responses:\n- 201: Resource created.\n\nExpected errors:\n- 400: The value list payload is invalid.\n- 409: A value list with the same key already exists.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/value-lists",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "value-lists"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"key\": \"sample_colors\",\n  \"name\": \"Sample colors\",\n  \"name_i18n\": {\n    \"en\": \"Sample colors\",\n    \"nb\": \"Eksempelfarger\"\n  },\n  \"values\": [\n    {\n      \"value\": \"black\",\n      \"label\": \"Black\",\n      \"label_i18n\": {\n        \"en\": \"Black\",\n        \"nb\": \"Svart\"\n      },\n      \"is_active\": true\n    },\n    {\n      \"value\": \"blue\",\n      \"label\": \"Blue\",\n      \"label_i18n\": {\n        \"en\": \"Blue\",\n        \"nb\": \"Bla\"\n      },\n      \"is_active\": true\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "GET Get value list",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Get value list\n\nScope: read.\n\nSuccess responses:\n- 200: Resource returned.\n\nExpected errors:\n- 404: Value list not found.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/value-lists/{{id}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "value-lists",
                "{{id}}"
              ]
            }
          },
          "response": []
        },
        {
          "name": "PATCH Update value list",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Update value list\n\nScope: write.\n\nSuccess responses:\n- 200: Resource updated.\n\nExpected errors:\n- 400: The value list update payload is invalid.\n- 404: Value list not found.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/value-lists/{{id}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "value-lists",
                "{{id}}"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Sample colors\",\n  \"name_i18n\": {\n    \"en\": \"Sample colors\",\n    \"nb\": \"Eksempelfarger\"\n  },\n  \"is_active\": true,\n  \"values\": [\n    {\n      \"value\": \"black\",\n      \"label\": \"Black\",\n      \"label_i18n\": {\n        \"en\": \"Black\",\n        \"nb\": \"Svart\"\n      },\n      \"is_active\": true\n    },\n    {\n      \"value\": \"blue\",\n      \"label\": \"Blue\",\n      \"label_i18n\": {\n        \"en\": \"Blue\",\n        \"nb\": \"Bla\"\n      },\n      \"is_active\": true\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "DELETE Delete value list",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Delete value list\n\nScope: write.\n\nSuccess responses:\n- 200: Resource deleted or archived.\n\nExpected errors:\n- 404: Value list not found.\n- 409: The value list is still used by attributes or products.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/value-lists/{{id}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "value-lists",
                "{{id}}"
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Feeds",
      "item": [
        {
          "name": "GET List feeds",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "List feeds\n\nScope: read.\n\nSuccess responses:\n- 200: Resource returned.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/feeds",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "feeds"
              ]
            }
          },
          "response": []
        },
        {
          "name": "POST Create feed",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Create feed\n\nScope: write.\n\nSuccess responses:\n- 201: Resource created.\n\nExpected errors:\n- 400: The feed configuration is invalid.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/feeds",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "feeds"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Marketplace product feed\",\n  \"description\": \"Daily product feed for marketplace channel.\",\n  \"outputFormat\": \"CSV\",\n  \"deliveryMethod\": \"Manual\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "GET Get feed",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Get feed\n\nScope: read.\n\nSuccess responses:\n- 200: Resource returned.\n\nExpected errors:\n- 404: Feed not found.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/feeds/{{id}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "feeds",
                "{{id}}"
              ]
            }
          },
          "response": []
        },
        {
          "name": "PATCH Update feed",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Update feed\n\nScope: write.\n\nSuccess responses:\n- 200: Resource updated.\n\nExpected errors:\n- 400: The feed update payload is invalid.\n- 404: Feed not found.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/feeds/{{id}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "feeds",
                "{{id}}"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Marketplace product feed\",\n  \"description\": \"Daily product feed for marketplace channel.\",\n  \"outputFormat\": \"CSV\",\n  \"deliveryMethod\": \"Manual\",\n  \"scheduleType\": \"manual\",\n  \"scheduleEnabled\": false,\n  \"selectionRules\": [\n    {\n      \"ruleType\": \"product_kind\",\n      \"operator\": \"in\",\n      \"value\": [\n        \"standard\",\n        \"bundle\",\n        \"assortment\"\n      ]\n    }\n  ],\n  \"mappingRules\": [\n    {\n      \"sourceField\": \"sku\",\n      \"destinationField\": \"sku\"\n    },\n    {\n      \"sourceField\": \"name\",\n      \"destinationField\": \"title\",\n      \"locale\": \"en\"\n    },\n    {\n      \"sourceField\": \"product_kind\",\n      \"destinationField\": \"product_kind\"\n    },\n    {\n      \"sourceField\": \"category_paths\",\n      \"destinationField\": \"category_paths\",\n      \"transform\": {\n        \"join\": \" | \"\n      }\n    },\n    {\n      \"sourceField\": \"bundle_components\",\n      \"destinationField\": \"bundle_components\"\n    },\n    {\n      \"sourceField\": \"assortment_items\",\n      \"destinationField\": \"assortment_items\"\n    },\n    {\n      \"sourceField\": \"colli\",\n      \"destinationField\": \"colli\"\n    },\n    {\n      \"sourceField\": \"relations\",\n      \"destinationField\": \"relations\"\n    },\n    {\n      \"sourceField\": \"product_collection_codes\",\n      \"destinationField\": \"product_collection_codes\"\n    }\n  ],\n  \"validationRules\": [\n    {\n      \"ruleType\": \"bundle_has_components\"\n    },\n    {\n      \"ruleType\": \"assortment_has_items\"\n    },\n    {\n      \"ruleType\": \"category_required\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "DELETE Delete feed",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Delete feed\n\nScope: write.\n\nSuccess responses:\n- 200: Resource deleted or archived.\n\nExpected errors:\n- 404: Feed not found.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/feeds/{{id}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "feeds",
                "{{id}}"
              ]
            }
          },
          "response": []
        },
        {
          "name": "POST Run feed now",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Run feed now\n\nScope: write.\n\nSuccess responses:\n- 200: Feed run started or returned from its idempotent result.\n\nExpected errors:\n- 404: Feed not found.\n- 409: A feed run is already queued or running.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/feeds/{{id}}/run",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "feeds",
                "{{id}}",
                "run"
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Imports",
      "item": [
        {
          "name": "GET List import runs",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "List import runs\n\nScope: read.\n\nSuccess responses:\n- 200: Resource returned.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/import-runs",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "import-runs"
              ]
            }
          },
          "response": []
        },
        {
          "name": "GET Get import run",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Get import run\n\nScope: read.\n\nSuccess responses:\n- 200: Resource returned.\n\nExpected errors:\n- 404: Import run not found.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/import-runs/{{id}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "import-runs",
                "{{id}}"
              ]
            }
          },
          "response": []
        },
        {
          "name": "POST Queue product import job",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Queue normalized product import rows for background processing. This endpoint does not accept CSV or Excel files; the caller sends product rows as JSON. Use this for larger product imports where the caller should receive a job id and poll import runs instead of waiting for the full import to complete in the request.\n\nScope: write.\n\nSuccess responses:\n- 202: Product import job accepted and queued.\n\nExpected errors:\n- 400: The product import job payload is invalid.\n- 503: Background import processing is temporarily unavailable.\n- 413: The product import is too large for a single request.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/imports/jobs",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "imports",
                "jobs"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"rows\": [\n    {\n      \"rowIndex\": 1,\n      \"sku\": \"API-IMPORT-JOB-{{$timestamp}}\",\n      \"name\": \"API import job product\",\n      \"status\": \"active\",\n      \"productKind\": \"assortment\",\n      \"assortmentDescription\": \"Contains one small and one medium item packed as one sellable assortment.\"\n    }\n  ],\n  \"sourceFilename\": \"api-product-import.json\",\n  \"identifierKey\": \"sku\",\n  \"importMode\": \"upsert\",\n  \"validation\": {\n    \"status\": \"valid\",\n    \"errors\": 0,\n    \"total\": 1\n  },\n  \"mappingSummary\": {\n    \"mappedFieldsCount\": 4,\n    \"attributesCount\": 0,\n    \"ignoredFieldsCount\": 0\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "POST Apply product import rows",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Apply normalized product import rows immediately in the request. This endpoint does not accept CSV or Excel files; the caller sends product rows as JSON together with validation metadata. Use this for small product imports where the caller can wait for the request to complete. For larger imports, prefer Queue product import job.\n\nScope: write.\n\nSuccess responses:\n- 200: Product import rows applied.\n\nExpected errors:\n- 400: The product import apply request is invalid.\n- 429: The product import apply rate limit was exceeded.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/imports/apply",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "imports",
                "apply"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"rows\": [\n    {\n      \"rowIndex\": 1,\n      \"sku\": \"API-IMPORT-APPLY-{{$timestamp}}\",\n      \"name\": \"API import apply product\",\n      \"status\": \"active\",\n      \"productKind\": \"bundle\",\n      \"productGroup\": \"bundles\"\n    }\n  ],\n  \"sourceFilename\": \"api-product-import.json\",\n  \"identifierKey\": \"sku\",\n  \"importMode\": \"upsert\",\n  \"validation\": {\n    \"status\": \"valid\",\n    \"errors\": 0,\n    \"total\": 1\n  },\n  \"mappingSummary\": {\n    \"mappedFieldsCount\": 3,\n    \"attributesCount\": 0,\n    \"ignoredFieldsCount\": 0\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "POST Validate product import rows",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Validate normalized product import rows before applying or queueing a product import. This endpoint does not accept CSV or Excel files and does not write product data; it returns validation errors and warnings for the proposed JSON rows.\n\nScope: write.\n\nSuccess responses:\n- 200: Product import rows validated.\n\nExpected errors:\n- 400: The product import rows or mapping metadata are invalid.\n- 413: The product import rows exceed the accepted size or row limit.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/imports/products/validate",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "imports",
                "products",
                "validate"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"importMode\": \"upsert\",\n  \"rows\": [\n    {\n      \"rowIndex\": 1,\n      \"sku\": \"API-IMPORT-VALIDATE-{{$timestamp}}\",\n      \"name\": \"API import validation product\",\n      \"status\": \"active\",\n      \"productKind\": \"standard\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "POST Validate product collection import rows",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Validate flat product collection membership rows before applying them. This endpoint does not accept CSV or Excel files; send parsed rows as JSON.\n\nScope: write.\n\nSuccess responses:\n- 200: Product collection rows validated.\n\nExpected errors:\n- 400: The product collection import rows are invalid.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/imports/product-collections/validate",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "imports",
                "product-collections",
                "validate"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"rows\": [\n    {\n      \"rowIndex\": 1,\n      \"collection_code\": \"winter-campaign\",\n      \"collection_name\": \"Winter campaign\",\n      \"product_sku\": \"KIT-WINTER-ACCESSORY\",\n      \"action\": \"add\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "POST Apply product collection import rows",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Adds or removes products in collections from flat rows. Add collection_name to create a missing manual collection.\n\nScope: write.\n\nSuccess responses:\n- 200: Product collection rows applied.\n\nExpected errors:\n- 400: Validation failed.\n- 429: The product collection import apply rate limit was exceeded.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/imports/product-collections/apply",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "imports",
                "product-collections",
                "apply"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"rows\": [\n    {\n      \"rowIndex\": 1,\n      \"collection_code\": \"winter-campaign\",\n      \"collection_name\": \"Winter campaign\",\n      \"product_sku\": \"KIT-WINTER-ACCESSORY\",\n      \"action\": \"add\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "POST Validate product bundle import rows",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Validate normalized JSON rows for product bundle data. This endpoint does not accept CSV or Excel files.\n\nScope: write.\n\nSuccess responses:\n- 200: product bundle import rows validated.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/imports/product-bundles/validate",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "imports",
                "product-bundles",
                "validate"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"mode\": \"upsert\",\n  \"rows\": [\n    {\n      \"rowIndex\": 1,\n      \"bundle_sku\": \"BUNDLE-001\",\n      \"component_sku\": \"PRODUCT-001\",\n      \"quantity\": \"1\",\n      \"sort_order\": \"0\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "POST Apply product bundle import rows",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Apply normalized JSON rows for product bundle data. This endpoint does not accept CSV or Excel files.\n\nScope: write.\n\nSuccess responses:\n- 200: product bundle import rows applied.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/imports/product-bundles/apply",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "imports",
                "product-bundles",
                "apply"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"mode\": \"upsert\",\n  \"rows\": [\n    {\n      \"rowIndex\": 1,\n      \"bundle_sku\": \"BUNDLE-001\",\n      \"component_sku\": \"PRODUCT-001\",\n      \"quantity\": \"1\",\n      \"sort_order\": \"0\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "POST Validate product assortment import rows",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Validate normalized JSON rows for product assortment data. This endpoint does not accept CSV or Excel files.\n\nScope: write.\n\nSuccess responses:\n- 200: product assortment import rows validated.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/imports/product-assortments/validate",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "imports",
                "product-assortments",
                "validate"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"rows\": [\n    {\n      \"rowIndex\": 1,\n      \"product_sku\": \"ASSORTMENT-001\",\n      \"item_type\": \"product\",\n      \"label\": \"Included product\",\n      \"item_sku\": \"PRODUCT-001\",\n      \"quantity\": \"1\",\n      \"sort_order\": \"0\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "POST Apply product assortment import rows",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Apply normalized JSON rows for product assortment data. This endpoint does not accept CSV or Excel files.\n\nScope: write.\n\nSuccess responses:\n- 200: product assortment import rows applied.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/imports/product-assortments/apply",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "imports",
                "product-assortments",
                "apply"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"rows\": [\n    {\n      \"rowIndex\": 1,\n      \"product_sku\": \"ASSORTMENT-001\",\n      \"item_type\": \"product\",\n      \"label\": \"Included product\",\n      \"item_sku\": \"PRODUCT-001\",\n      \"quantity\": \"1\",\n      \"sort_order\": \"0\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "POST Validate product packaging import rows",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Validate normalized JSON rows for product packaging data. This endpoint does not accept CSV or Excel files.\n\nScope: write.\n\nSuccess responses:\n- 200: product packaging import rows validated.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/imports/product-packaging/validate",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "imports",
                "product-packaging",
                "validate"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"rows\": [\n    {\n      \"rowIndex\": 1,\n      \"product_sku\": \"PRODUCT-001\",\n      \"colli\": \"1\",\n      \"role_code\": \"consumer_unit\",\n      \"type_code\": \"each\",\n      \"quantity\": \"1\",\n      \"dimension_unit\": \"cm\",\n      \"weight_unit\": \"kg\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "POST Apply product packaging import rows",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Apply normalized JSON rows for product packaging data. This endpoint does not accept CSV or Excel files.\n\nScope: write.\n\nSuccess responses:\n- 200: product packaging import rows applied.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/imports/product-packaging/apply",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "imports",
                "product-packaging",
                "apply"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"rows\": [\n    {\n      \"rowIndex\": 1,\n      \"product_sku\": \"PRODUCT-001\",\n      \"colli\": \"1\",\n      \"role_code\": \"consumer_unit\",\n      \"type_code\": \"each\",\n      \"quantity\": \"1\",\n      \"dimension_unit\": \"cm\",\n      \"weight_unit\": \"kg\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "POST Validate product relation import rows",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Validate normalized JSON rows for product relation data. This endpoint does not accept CSV or Excel files.\n\nScope: write.\n\nSuccess responses:\n- 200: product relation import rows validated.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/imports/product-relations/validate",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "imports",
                "product-relations",
                "validate"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"mode\": \"upsert\",\n  \"rows\": [\n    {\n      \"rowIndex\": 1,\n      \"source_sku\": \"PRODUCT-001\",\n      \"target_sku\": \"PRODUCT-002\",\n      \"relation_type_code\": \"accessory\",\n      \"sort_order\": \"0\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "POST Apply product relation import rows",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Apply normalized JSON rows for product relation data. This endpoint does not accept CSV or Excel files.\n\nScope: write.\n\nSuccess responses:\n- 200: product relation import rows applied.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/imports/product-relations/apply",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "imports",
                "product-relations",
                "apply"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"mode\": \"upsert\",\n  \"rows\": [\n    {\n      \"rowIndex\": 1,\n      \"source_sku\": \"PRODUCT-001\",\n      \"target_sku\": \"PRODUCT-002\",\n      \"relation_type_code\": \"accessory\",\n      \"sort_order\": \"0\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Search",
      "item": [
        {
          "name": "GET Global search",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Global search\n\nScope: read.\n\nSuccess responses:\n- 200: Resource returned.\n\nExpected errors:\n- 400: The search query is invalid or too short.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/search?q=&limit=100",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "search"
              ],
              "query": [
                {
                  "key": "q",
                  "value": "",
                  "description": "Search query.",
                  "disabled": false
                },
                {
                  "key": "limit",
                  "value": "100",
                  "description": "Maximum total results to return. Defaults to 40 and is capped at 200.",
                  "disabled": false
                }
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Tariff",
      "item": [
        {
          "name": "GET Resolve tariff compliance signals",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Checks supplied tariff codes for compliance signals. Send eu_taric_code to check whether an EU TARIC code has anti-dumping/countervailing context. Send no_tariff_code to check whether a Norwegian tariff code has high-duty risk. The endpoint does not classify products; it evaluates the codes you provide.\n\nScope: read.\n\nSuccess responses:\n- 200: Resource returned.\n\nExpected errors:\n- 400: One or more tariff codes are missing or invalid.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/tariff/signals",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "tariff",
                "signals"
              ],
              "query": [
                {
                  "key": "eu_taric_code",
                  "value": "",
                  "description": "EU TARIC code to check for anti-dumping/countervailing context. Required if you want the anti_dumping signal.",
                  "disabled": true
                },
                {
                  "key": "no_tariff_code",
                  "value": "",
                  "description": "Norwegian Tolltariff code to check for high-duty risk. Required if you want the high_duty signal.",
                  "disabled": true
                },
                {
                  "key": "anti_dumping_declared",
                  "value": "",
                  "description": "EU-only. Set false when you want to know if the supplied eu_taric_code appears to need anti-dumping review and no declaration is registered. Set true when the caller already has a declaration.",
                  "disabled": true
                },
                {
                  "key": "taric_additional_codes",
                  "value": "",
                  "description": "EU-only. Comma-separated TARIC additional codes already known or declared for the product, for example B999.",
                  "disabled": true
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "GET Lookup tariff code",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "description": "Returns deterministic tariff data for a supplied EU TARIC or Norwegian Tolltariff code. Use this endpoint to resolve descriptions, hierarchy, duties, measures, and optional compliance signals for a code you already have. This endpoint does not classify or suggest tariff codes.\n\nScope: read.\n\nSuccess responses:\n- 200: Resource returned.\n\nExpected errors:\n- 400: The code or source is missing or invalid.\n- 503: Tariff index is not available.",
            "url": {
              "raw": "{{baseUrl}}/api/v1/tariff/lookup?code=",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "tariff",
                "lookup"
              ],
              "query": [
                {
                  "key": "code",
                  "value": "",
                  "description": "Tariff code or hierarchy level to look up. TARIC accepts 2, 4, 6, 8, or 10 digits. Norwegian tariff accepts 2, 4, 6, or 8 digits. Full duty/measure details are only available from commodity-level codes.",
                  "disabled": false
                },
                {
                  "key": "source",
                  "value": "",
                  "description": "Tariff source to search. Valid values: taric, no, all. Defaults to all.",
                  "disabled": true
                },
                {
                  "key": "include_duties",
                  "value": "",
                  "description": "Set true to include Norwegian duty/rate details when source includes no. Defaults to true.",
                  "disabled": true
                },
                {
                  "key": "include_measures",
                  "value": "",
                  "description": "Set true to include EU TARIC measure details when source includes taric. Defaults to true.",
                  "disabled": true
                },
                {
                  "key": "include_preferential",
                  "value": "",
                  "description": "Set true to include Norwegian preferential agreement data when source includes no. Defaults to include_duties.",
                  "disabled": true
                },
                {
                  "key": "include_signals",
                  "value": "",
                  "description": "Set true to include the same high-duty and anti-dumping compliance signals returned by /tariff/signals. Defaults to false.",
                  "disabled": true
                }
              ]
            }
          },
          "response": []
        }
      ]
    }
  ]
}
