{
  "info": {
    "_postman_id": "93572758-bb61-4f06-b72c-4dc4b8f5f7cc",
    "name": "Sales Layer REST APIs",
    "description": "Postman collection for testing the Sales Layer DAM and Catalog REST APIs (v2.0).\n\nThis collection covers at least one example of every endpoint exposed by the current OpenAPI specifications. Requests are grouped to match the API reference: setup checks first, then the DAM REST API, then the Catalog REST API organized by resource (Metadata, Products, Variants, Categories, Custom Entities).\n\nHow to use:\n1. Import the companion environment 'Sales Layer API - Template'.\n2. Set the apiKey secret value in the environment.\n3. Run read-only requests first (Setup checks and any GET request).\n4. Run write requests (Create/Update/Delete) only against a test account.\n\nField names such as prod_ref, prod_title, cat_ref, or frmt_ref are examples. Confirm the writable fields available for your account using the matching $metadata endpoint before sending Create or Update requests.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "apikey",
    "apikey": [
      {
        "key": "key",
        "value": "X-API-KEY",
        "type": "string"
      },
      {
        "key": "value",
        "value": "{{apiKey}}",
        "type": "string"
      },
      {
        "key": "in",
        "value": "header",
        "type": "string"
      }
    ]
  },
  "event": [
    {
      "listen": "prerequest",
      "script": {
        "type": "text/javascript",
        "exec": [
          "const apiKey = pm.environment.get('apiKey');",
          "if (!apiKey) {",
          "  console.warn('Set the apiKey secret variable in the selected Sales Layer Postman environment before sending authenticated requests.');",
          "}"
        ]
      }
    }
  ],
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://api2.saleslayer.com"
    },
    {
      "key": "acceptLanguage",
      "value": "en"
    }
  ],
  "item": [
    {
      "name": "Setup checks",
      "description": "Start here after importing the environment. These read-only requests verify the base URL, authentication, and basic API availability without modifying data.",
      "item": [
        {
          "name": "Catalog service metadata",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{acceptLanguage}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/catalog/rest/Catalog/$metadata",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "catalog",
                "rest",
                "Catalog",
                "$metadata"
              ]
            },
            "description": "Returns Catalog API metadata. Use this as a first connectivity and authentication check."
          },
          "response": []
        },
        {
          "name": "DAM list first page",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/dam/image?$top=10",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "dam",
                "image"
              ],
              "query": [
                {
                  "key": "$top",
                  "value": "10"
                }
              ]
            },
            "description": "Lists the first DAM image records. This is a read-only check against the DAM API."
          },
          "response": []
        }
      ]
    },
    {
      "name": "DAM REST API v2.0",
      "description": "Requests for the current DAM image endpoints defined by the OpenAPI specification: GET /dam/image and DELETE /dam/image/{id}.",
      "item": [
        {
          "name": "List images with pagination",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/dam/image?$skip=0&$top=20",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "dam",
                "image"
              ],
              "query": [
                {
                  "key": "$skip",
                  "value": "0"
                },
                {
                  "key": "$top",
                  "value": "20"
                }
              ]
            },
            "description": "Retrieves DAM images using limit and offset pagination. Maximum page size is 100."
          },
          "response": []
        },
        {
          "name": "Filter processed JPG images",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/dam/image?$filter=fileType eq 'jpg' and status eq 'Ok'&$orderby=createdOn desc&$top=20",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "dam",
                "image"
              ],
              "query": [
                {
                  "key": "$filter",
                  "value": "fileType eq 'jpg' and status eq 'Ok'"
                },
                {
                  "key": "$orderby",
                  "value": "createdOn desc"
                },
                {
                  "key": "$top",
                  "value": "20"
                }
              ]
            },
            "description": "Example combining DAM filtering, sorting, and page size. The status value 'Ok' selects images that finished processing."
          },
          "response": []
        },
        {
          "name": "Delete image (write)",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/dam/image/{{damImageId}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "dam",
                "image",
                "{{damImageId}}"
              ]
            },
            "description": "Deletes a DAM image by id. Set damImageId to a controlled test image. A successful delete returns 204 No Content. If the image is currently being processed, the API returns 409 Conflict."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Catalog REST API v2.0",
      "description": "Examples for every Catalog API resource under /catalog/rest/Catalog, grouped by resource. Use the Metadata requests to discover account-specific fields before building production queries or write payloads.",
      "item": [
        {
          "name": "Metadata",
          "description": "Schema discovery endpoints. These return the structure of each resource for the current account. Always read metadata before selecting fields, filtering, or building Create and Update payloads.",
          "item": [
            {
              "name": "Catalog model metadata",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{acceptLanguage}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/catalog/rest/Catalog/$metadata",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "catalog",
                    "rest",
                    "Catalog",
                    "$metadata"
                  ]
                },
                "description": "Returns the public metadata of the entire Catalog model, including every resource and the relationships between them."
              },
              "response": []
            },
            {
              "name": "Products metadata",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{acceptLanguage}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/catalog/rest/Catalog/Products/$metadata",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "catalog",
                    "rest",
                    "Catalog",
                    "Products",
                    "$metadata"
                  ]
                },
                "description": "Returns the JSON Schema describing the Product model for the current account."
              },
              "response": []
            },
            {
              "name": "Variants metadata",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{acceptLanguage}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/catalog/rest/Catalog/Variants/$metadata",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "catalog",
                    "rest",
                    "Catalog",
                    "Variants",
                    "$metadata"
                  ]
                },
                "description": "Returns the JSON Schema describing the Variant model for the current account."
              },
              "response": []
            },
            {
              "name": "Categories metadata",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{acceptLanguage}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/catalog/rest/Catalog/Categories/$metadata",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "catalog",
                    "rest",
                    "Catalog",
                    "Categories",
                    "$metadata"
                  ]
                },
                "description": "Returns the JSON Schema describing the Category model for the current account."
              },
              "response": []
            },
            {
              "name": "Custom Entities metadata",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{acceptLanguage}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/catalog/rest/Catalog/CustomEntities/$metadata",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "catalog",
                    "rest",
                    "Catalog",
                    "CustomEntities",
                    "$metadata"
                  ]
                },
                "description": "Returns the JSON Schema describing all available Custom Entities for the account. Use it to discover the denominators available for customEntityDenominator."
              },
              "response": []
            },
            {
              "name": "Custom Entity metadata (by denominator)",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{acceptLanguage}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/catalog/rest/Catalog/CustomEntities('{{customEntityDenominator}}')/$metadata",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "catalog",
                    "rest",
                    "Catalog",
                    "CustomEntities('{{customEntityDenominator}}')",
                    "$metadata"
                  ]
                },
                "description": "Returns the JSON Schema describing a single Custom Entity referenced by its denominator. Set customEntityDenominator first."
              },
              "response": []
            },
            {
              "name": "Points of Sale metadata",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{acceptLanguage}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/catalog/rest/Catalog/PointsOfSale/$metadata",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "catalog",
                    "rest",
                    "Catalog",
                    "PointsOfSale",
                    "$metadata"
                  ]
                },
                "description": "Returns the public metadata of the Point of Sale model for the current account."
              },
              "response": []
            }
          ]
        },
        {
          "name": "Products",
          "description": "Create, read, update, delete, and track changelog for products. Includes access to products within categories and attribute sets. Confirm writable fields with the Products metadata request before sending Create or Update payloads.",
          "item": [
            {
              "name": "List products",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{acceptLanguage}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/catalog/rest/Catalog/Products?$select=prod_ref,prod_title&$top=20",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "catalog",
                    "rest",
                    "Catalog",
                    "Products"
                  ],
                  "query": [
                    {
                      "key": "$select",
                      "value": "prod_ref,prod_title"
                    },
                    {
                      "key": "$top",
                      "value": "20"
                    }
                  ]
                },
                "description": "Lists products with a compact selected field set."
              },
              "response": []
            },
            {
              "name": "Filter products by title",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{acceptLanguage}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/catalog/rest/Catalog/Products?$select=prod_ref,prod_title&$filter=contains(prod_title,'EC')&$orderby=prod_ref asc&$top=20",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "catalog",
                    "rest",
                    "Catalog",
                    "Products"
                  ],
                  "query": [
                    {
                      "key": "$select",
                      "value": "prod_ref,prod_title"
                    },
                    {
                      "key": "$filter",
                      "value": "contains(prod_title,'EC')"
                    },
                    {
                      "key": "$orderby",
                      "value": "prod_ref asc"
                    },
                    {
                      "key": "$top",
                      "value": "20"
                    }
                  ]
                },
                "description": "Example Catalog query combining the contains string function, sorting, and field selection on the Products list."
              },
              "response": []
            },
            {
              "name": "Get product by identifier",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{acceptLanguage}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/catalog/rest/Catalog/Products({{catalogProductIdentifier}})",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "catalog",
                    "rest",
                    "Catalog",
                    "Products({{catalogProductIdentifier}})"
                  ]
                },
                "description": "Retrieves a single product. Set catalogProductIdentifier to a valid product identifier from the account."
              },
              "response": []
            },
            {
              "name": "List products in category",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{acceptLanguage}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/catalog/rest/Catalog/Categories({{catalogCategoryIdentifier}})/Products?$select=prod_ref,prod_title&$top=20",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "catalog",
                    "rest",
                    "Catalog",
                    "Categories({{catalogCategoryIdentifier}})",
                    "Products"
                  ],
                  "query": [
                    {
                      "key": "$select",
                      "value": "prod_ref,prod_title"
                    },
                    {
                      "key": "$top",
                      "value": "20"
                    }
                  ]
                },
                "description": "Lists the products associated with a category. Set catalogCategoryIdentifier first."
              },
              "response": []
            },
            {
              "name": "Get product in category",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{acceptLanguage}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/catalog/rest/Catalog/Categories({{catalogCategoryIdentifier}})/Products({{catalogProductIdentifier}})",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "catalog",
                    "rest",
                    "Catalog",
                    "Categories({{catalogCategoryIdentifier}})",
                    "Products({{catalogProductIdentifier}})"
                  ]
                },
                "description": "Retrieves a single product within the context of a given category. Set catalogCategoryIdentifier and catalogProductIdentifier first."
              },
              "response": []
            },
            {
              "name": "List products in attribute set",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{acceptLanguage}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/catalog/rest/Catalog/AttributeSets({{attributeSetIdentifier}})/Products?$select=prod_ref,prod_title&$top=20",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "catalog",
                    "rest",
                    "Catalog",
                    "AttributeSets({{attributeSetIdentifier}})",
                    "Products"
                  ],
                  "query": [
                    {
                      "key": "$select",
                      "value": "prod_ref,prod_title"
                    },
                    {
                      "key": "$top",
                      "value": "20"
                    }
                  ]
                },
                "description": "Lists the products associated with an attribute set. Set attributeSetIdentifier first."
              },
              "response": []
            },
            {
              "name": "Create product (write)",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "if (pm.response.code === 200 || pm.response.code === 201) {",
                      "  let id;",
                      "  const loc = pm.response.headers.get('Location');",
                      "  if (loc) { const m = loc.match(/\\((\\d+)\\)/); if (m) { id = m[1]; } }",
                      "  if (!id) { try { const b = pm.response.json(); id = b.id || (b.value && (b.value.id || b.value.prod_id)); } catch (e) {} }",
                      "  if (id) { pm.environment.set('catalogProductIdentifier', String(id)); }",
                      "}"
                    ]
                  }
                }
              ],
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{acceptLanguage}}"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"prod_ref\": \"POSTMAN-PROD-001\",\n  \"prod_title\": {\n    \"en\": \"Postman sample product\"\n  },\n  \"cat_id\": \"{{catalogCategoryIdentifier}}\"\n}"
                },
                "url": {
                  "raw": "{{baseUrl}}/catalog/rest/Catalog/Products",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "catalog",
                    "rest",
                    "Catalog",
                    "Products"
                  ]
                },
                "description": "Creates a new product. The fields shown are examples; replace them with the writable fields exposed by the Products metadata for your account. On success, the created identifier is stored in catalogProductIdentifier so the Get, Update, and Delete requests can run next. Use a test account only."
              },
              "response": []
            },
            {
              "name": "Update product (write)",
              "request": {
                "method": "PATCH",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{acceptLanguage}}"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"prod_title\": {\n    \"en\": \"Updated from Postman\"\n  }\n}"
                },
                "url": {
                  "raw": "{{baseUrl}}/catalog/rest/Catalog/Products({{catalogProductIdentifier}})",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "catalog",
                    "rest",
                    "Catalog",
                    "Products({{catalogProductIdentifier}})"
                  ]
                },
                "description": "Partially updates an existing product. Send only the fields to change. The cat_id field accepts a single integer or an array of integers for multi-category assignment. Set catalogProductIdentifier first. Use a test account only."
              },
              "response": []
            },
            {
              "name": "Delete product (write)",
              "request": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/catalog/rest/Catalog/Products({{catalogProductIdentifier}})",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "catalog",
                    "rest",
                    "Catalog",
                    "Products({{catalogProductIdentifier}})"
                  ]
                },
                "description": "Deletes a product by identifier. A successful delete returns 204 No Content. Set catalogProductIdentifier first. Use a test account only."
              },
              "response": []
            },
            {
              "name": "Products changelog",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{acceptLanguage}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/catalog/rest/Catalog/Products/Changelog?$top=20",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "catalog",
                    "rest",
                    "Catalog",
                    "Products",
                    "Changelog"
                  ],
                  "query": [
                    {
                      "key": "$top",
                      "value": "20"
                    }
                  ]
                },
                "description": "Reads recent Product changelog entries for the account. Use it for incremental synchronization."
              },
              "response": []
            },
            {
              "name": "Product changelog by identifier",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{acceptLanguage}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/catalog/rest/Catalog/Products({{catalogProductIdentifier}})/Changelog?$top=20",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "catalog",
                    "rest",
                    "Catalog",
                    "Products({{catalogProductIdentifier}})",
                    "Changelog"
                  ],
                  "query": [
                    {
                      "key": "$top",
                      "value": "20"
                    }
                  ]
                },
                "description": "Reads changelog entries for a single product. Set catalogProductIdentifier first."
              },
              "response": []
            }
          ]
        },
        {
          "name": "Variants",
          "description": "Create, read, update, delete, and track changelog for product variants. Includes access to variants within a product. Confirm writable fields with the Variants metadata request before sending Create or Update payloads.",
          "item": [
            {
              "name": "List variants",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{acceptLanguage}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/catalog/rest/Catalog/Variants?$select=frmt_ref&$top=20",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "catalog",
                    "rest",
                    "Catalog",
                    "Variants"
                  ],
                  "query": [
                    {
                      "key": "$select",
                      "value": "frmt_ref"
                    },
                    {
                      "key": "$top",
                      "value": "20"
                    }
                  ]
                },
                "description": "Lists variants using a compact selected field set."
              },
              "response": []
            },
            {
              "name": "Get variant by identifier",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{acceptLanguage}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/catalog/rest/Catalog/Variants({{catalogVariantIdentifier}})",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "catalog",
                    "rest",
                    "Catalog",
                    "Variants({{catalogVariantIdentifier}})"
                  ]
                },
                "description": "Retrieves a single variant. Set catalogVariantIdentifier to a valid variant identifier from the account."
              },
              "response": []
            },
            {
              "name": "List variants in product",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{acceptLanguage}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/catalog/rest/Catalog/Products({{catalogProductIdentifier}})/Variants?$select=frmt_ref&$top=20",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "catalog",
                    "rest",
                    "Catalog",
                    "Products({{catalogProductIdentifier}})",
                    "Variants"
                  ],
                  "query": [
                    {
                      "key": "$select",
                      "value": "frmt_ref"
                    },
                    {
                      "key": "$top",
                      "value": "20"
                    }
                  ]
                },
                "description": "Lists the variants associated with a product. Set catalogProductIdentifier first."
              },
              "response": []
            },
            {
              "name": "Get variant in product",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{acceptLanguage}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/catalog/rest/Catalog/Products({{catalogProductIdentifier}})/Variants({{catalogVariantIdentifier}})",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "catalog",
                    "rest",
                    "Catalog",
                    "Products({{catalogProductIdentifier}})",
                    "Variants({{catalogVariantIdentifier}})"
                  ]
                },
                "description": "Retrieves a single variant within the context of a given product. Set catalogProductIdentifier and catalogVariantIdentifier first."
              },
              "response": []
            },
            {
              "name": "Create variant (write)",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "if (pm.response.code === 200 || pm.response.code === 201) {",
                      "  let id;",
                      "  const loc = pm.response.headers.get('Location');",
                      "  if (loc) { const m = loc.match(/\\((\\d+)\\)/); if (m) { id = m[1]; } }",
                      "  if (!id) { try { const b = pm.response.json(); id = b.id || (b.value && (b.value.id || b.value.frmt_id)); } catch (e) {} }",
                      "  if (id) { pm.environment.set('catalogVariantIdentifier', String(id)); }",
                      "}"
                    ]
                  }
                }
              ],
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{acceptLanguage}}"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"frmt_ref\": \"POSTMAN-VAR-001\",\n  \"prod_id\": \"{{catalogProductIdentifier}}\"\n}"
                },
                "url": {
                  "raw": "{{baseUrl}}/catalog/rest/Catalog/Variants",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "catalog",
                    "rest",
                    "Catalog",
                    "Variants"
                  ]
                },
                "description": "Creates a new variant. The fields shown are examples; replace them with the writable fields exposed by the Variants metadata for your account. prod_id links the variant to its parent product. On success, the created identifier is stored in catalogVariantIdentifier. Use a test account only."
              },
              "response": []
            },
            {
              "name": "Update variant (write)",
              "request": {
                "method": "PATCH",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{acceptLanguage}}"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"frmt_ref\": \"POSTMAN-VAR-001-UPDATED\"\n}"
                },
                "url": {
                  "raw": "{{baseUrl}}/catalog/rest/Catalog/Variants({{catalogVariantIdentifier}})",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "catalog",
                    "rest",
                    "Catalog",
                    "Variants({{catalogVariantIdentifier}})"
                  ]
                },
                "description": "Partially updates an existing variant. Send only the fields to change. Set catalogVariantIdentifier first. Use a test account only."
              },
              "response": []
            },
            {
              "name": "Delete variant (write)",
              "request": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/catalog/rest/Catalog/Variants({{catalogVariantIdentifier}})",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "catalog",
                    "rest",
                    "Catalog",
                    "Variants({{catalogVariantIdentifier}})"
                  ]
                },
                "description": "Deletes a variant by identifier. A successful delete returns 204 No Content. Set catalogVariantIdentifier first. Use a test account only."
              },
              "response": []
            },
            {
              "name": "Variants changelog",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{acceptLanguage}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/catalog/rest/Catalog/Variants/Changelog?$top=20",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "catalog",
                    "rest",
                    "Catalog",
                    "Variants",
                    "Changelog"
                  ],
                  "query": [
                    {
                      "key": "$top",
                      "value": "20"
                    }
                  ]
                },
                "description": "Reads recent Variant changelog entries for the account."
              },
              "response": []
            },
            {
              "name": "Variant changelog by identifier",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{acceptLanguage}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/catalog/rest/Catalog/Variants({{catalogVariantIdentifier}})/Changelog?$top=20",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "catalog",
                    "rest",
                    "Catalog",
                    "Variants({{catalogVariantIdentifier}})",
                    "Changelog"
                  ],
                  "query": [
                    {
                      "key": "$top",
                      "value": "20"
                    }
                  ]
                },
                "description": "Reads changelog entries for a single variant. Set catalogVariantIdentifier first."
              },
              "response": []
            }
          ]
        },
        {
          "name": "Categories",
          "description": "Create, read, update, delete, and track changelog for categories. Confirm writable fields with the Categories metadata request before sending Create or Update payloads.",
          "item": [
            {
              "name": "List categories",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{acceptLanguage}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/catalog/rest/Catalog/Categories?$select=cat_id,cat_title,cat_ref&$top=20",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "catalog",
                    "rest",
                    "Catalog",
                    "Categories"
                  ],
                  "query": [
                    {
                      "key": "$select",
                      "value": "cat_id,cat_title,cat_ref"
                    },
                    {
                      "key": "$top",
                      "value": "20"
                    }
                  ]
                },
                "description": "Lists categories with a compact selected field set."
              },
              "response": []
            },
            {
              "name": "List categories with products",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{acceptLanguage}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/catalog/rest/Catalog/Categories?$select=cat_id,cat_title,cat_ref&$expand=Products&$top=20",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "catalog",
                    "rest",
                    "Catalog",
                    "Categories"
                  ],
                  "query": [
                    {
                      "key": "$select",
                      "value": "cat_id,cat_title,cat_ref"
                    },
                    {
                      "key": "$expand",
                      "value": "Products"
                    },
                    {
                      "key": "$top",
                      "value": "20"
                    }
                  ]
                },
                "description": "Lists categories and expands the Products embedded collection where available. Demonstrates the $expand parameter."
              },
              "response": []
            },
            {
              "name": "Get category by identifier",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{acceptLanguage}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/catalog/rest/Catalog/Categories({{catalogCategoryIdentifier}})",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "catalog",
                    "rest",
                    "Catalog",
                    "Categories({{catalogCategoryIdentifier}})"
                  ]
                },
                "description": "Retrieves a single category. Set catalogCategoryIdentifier to a valid category identifier from the account."
              },
              "response": []
            },
            {
              "name": "Create category (write)",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "if (pm.response.code === 200 || pm.response.code === 201) {",
                      "  let id;",
                      "  const loc = pm.response.headers.get('Location');",
                      "  if (loc) { const m = loc.match(/\\((\\d+)\\)/); if (m) { id = m[1]; } }",
                      "  if (!id) { try { const b = pm.response.json(); id = b.id || (b.value && (b.value.id || b.value.cat_id)); } catch (e) {} }",
                      "  if (id) { pm.environment.set('catalogCategoryIdentifier', String(id)); }",
                      "}"
                    ]
                  }
                }
              ],
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{acceptLanguage}}"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"cat_ref\": \"POSTMAN-CAT-001\",\n  \"cat_title\": {\n    \"en\": \"Postman sample category\"\n  },\n  \"cat_description\": {\n    \"en\": \"Created from the Sales Layer Postman collection\"\n  }\n}"
                },
                "url": {
                  "raw": "{{baseUrl}}/catalog/rest/Catalog/Categories",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "catalog",
                    "rest",
                    "Catalog",
                    "Categories"
                  ]
                },
                "description": "Creates a new category. The fields shown are examples; replace them with the writable fields exposed by the Categories metadata for your account. On success, the created identifier is stored in catalogCategoryIdentifier. Use a test account only."
              },
              "response": []
            },
            {
              "name": "Update category (write)",
              "request": {
                "method": "PATCH",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{acceptLanguage}}"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"cat_title\": {\n    \"en\": \"Updated category from Postman\"\n  }\n}"
                },
                "url": {
                  "raw": "{{baseUrl}}/catalog/rest/Catalog/Categories({{catalogCategoryIdentifier}})",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "catalog",
                    "rest",
                    "Catalog",
                    "Categories({{catalogCategoryIdentifier}})"
                  ]
                },
                "description": "Partially updates an existing category. Send only the fields to change. Set catalogCategoryIdentifier first. Use a test account only."
              },
              "response": []
            },
            {
              "name": "Delete category (write)",
              "request": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/catalog/rest/Catalog/Categories({{catalogCategoryIdentifier}})",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "catalog",
                    "rest",
                    "Catalog",
                    "Categories({{catalogCategoryIdentifier}})"
                  ]
                },
                "description": "Deletes a category by identifier. A successful delete returns 204 No Content. Set catalogCategoryIdentifier first. Use a test account only."
              },
              "response": []
            },
            {
              "name": "Categories changelog",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{acceptLanguage}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/catalog/rest/Catalog/Categories/Changelog?$top=20",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "catalog",
                    "rest",
                    "Catalog",
                    "Categories",
                    "Changelog"
                  ],
                  "query": [
                    {
                      "key": "$top",
                      "value": "20"
                    }
                  ]
                },
                "description": "Reads recent Category changelog entries for the account."
              },
              "response": []
            },
            {
              "name": "Category changelog by identifier",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{acceptLanguage}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/catalog/rest/Catalog/Categories({{catalogCategoryIdentifier}})/Changelog?$top=20",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "catalog",
                    "rest",
                    "Catalog",
                    "Categories({{catalogCategoryIdentifier}})",
                    "Changelog"
                  ],
                  "query": [
                    {
                      "key": "$top",
                      "value": "20"
                    }
                  ]
                },
                "description": "Reads changelog entries for a single category. Set catalogCategoryIdentifier first."
              },
              "response": []
            }
          ]
        },
        {
          "name": "Custom Entities",
          "description": "Create, read, update, delete, and track changelog for custom entity items. All requests require customEntityDenominator. Confirm writable fields with the Custom Entity metadata (by denominator) request before sending Create or Update payloads.",
          "item": [
            {
              "name": "List custom entity items",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{acceptLanguage}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/catalog/rest/Catalog/CustomEntities('{{customEntityDenominator}}')?$top=20",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "catalog",
                    "rest",
                    "Catalog",
                    "CustomEntities('{{customEntityDenominator}}')"
                  ],
                  "query": [
                    {
                      "key": "$top",
                      "value": "20"
                    }
                  ]
                },
                "description": "Lists items of a custom entity collection. Set customEntityDenominator first. Use the Custom Entities metadata request to discover available denominators."
              },
              "response": []
            },
            {
              "name": "Create custom entity item (write)",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "if (pm.response.code === 200 || pm.response.code === 201) {",
                      "  let id;",
                      "  const loc = pm.response.headers.get('Location');",
                      "  if (loc) { const m = loc.match(/\\((\\d+)\\)/); if (m) { id = m[1]; } }",
                      "  if (!id) { try { const b = pm.response.json(); id = b.id || (b.value && b.value.id); } catch (e) {} }",
                      "  if (id) { pm.environment.set('customEntityItemId', String(id)); }",
                      "}"
                    ]
                  }
                }
              ],
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{acceptLanguage}}"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"title\": {\n    \"en\": \"Postman sample item\"\n  }\n}"
                },
                "url": {
                  "raw": "{{baseUrl}}/catalog/rest/Catalog/CustomEntities('{{customEntityDenominator}}')",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "catalog",
                    "rest",
                    "Catalog",
                    "CustomEntities('{{customEntityDenominator}}')"
                  ]
                },
                "description": "Creates a new item in a custom entity collection. The body fields depend entirely on the custom entity definition; replace them with the writable fields exposed by the Custom Entity metadata (by denominator) for your account. On success, the created identifier is stored in customEntityItemId. Use a test account only."
              },
              "response": []
            },
            {
              "name": "Update custom entity item (write)",
              "request": {
                "method": "PATCH",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{acceptLanguage}}"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"title\": {\n    \"en\": \"Updated item from Postman\"\n  }\n}"
                },
                "url": {
                  "raw": "{{baseUrl}}/catalog/rest/Catalog/CustomEntities('{{customEntityDenominator}}')/item({{customEntityItemId}})",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "catalog",
                    "rest",
                    "Catalog",
                    "CustomEntities('{{customEntityDenominator}}')",
                    "item({{customEntityItemId}})"
                  ]
                },
                "description": "Partially updates a custom entity item. Send only the fields to change. Set customEntityDenominator and customEntityItemId first. Use a test account only."
              },
              "response": []
            },
            {
              "name": "Delete custom entity item (write)",
              "request": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/catalog/rest/Catalog/CustomEntities('{{customEntityDenominator}}')/item({{customEntityItemId}})",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "catalog",
                    "rest",
                    "Catalog",
                    "CustomEntities('{{customEntityDenominator}}')",
                    "item({{customEntityItemId}})"
                  ]
                },
                "description": "Deletes a custom entity item. A successful delete returns 204 No Content. Set customEntityDenominator and customEntityItemId first. Use a test account only."
              },
              "response": []
            },
            {
              "name": "Custom entity changelog",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{acceptLanguage}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/catalog/rest/Catalog/CustomEntities('{{customEntityDenominator}}')/Changelog?$top=20",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "catalog",
                    "rest",
                    "Catalog",
                    "CustomEntities('{{customEntityDenominator}}')",
                    "Changelog"
                  ],
                  "query": [
                    {
                      "key": "$top",
                      "value": "20"
                    }
                  ]
                },
                "description": "Reads recent changelog entries for all items of a custom entity type. Set customEntityDenominator first."
              },
              "response": []
            },
            {
              "name": "Custom entity item changelog",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{acceptLanguage}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/catalog/rest/Catalog/CustomEntities('{{customEntityDenominator}}')/Changelog({{customEntityItemId}})?$top=20",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "catalog",
                    "rest",
                    "Catalog",
                    "CustomEntities('{{customEntityDenominator}}')",
                    "Changelog({{customEntityItemId}})"
                  ],
                  "query": [
                    {
                      "key": "$top",
                      "value": "20"
                    }
                  ]
                },
                "description": "Reads changelog entries for a single custom entity item. Set customEntityDenominator and customEntityItemId first."
              },
              "response": []
            }
          ]
        }
      ]
    }
  ]
}
