{
  "info": {
    "_postman_id": "cfd45809-e1fa-412d-843b-83bcf27ad386",
    "name": "Price2Spy API",
    "description": "Official Postman collection for integrating with the Price2Spy REST API using HMAC authentication.\n\nThis collection contains ready-to-use examples for product, URL, pricing, metadata, and configuration management endpoints, including automated HMAC request signing and practical request examples for faster onboarding and testing.\n\nNote:  \nExample values used in request bodies (brands, categories, suppliers, SKUs, metadata, etc.) should be replaced with values from your own Price2Spy account.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
    "_exporter_id": "27958011",
    "_collection_link": "https://go.postman.co/collection/27958011-cfd45809-e1fa-412d-843b-83bcf27ad386?source=collection_link"
  },
  "item": [
    {
      "name": "Products",
      "item": [
        {
          "name": "/v1/get-current-pricing-data",
          "item": [
            {
              "name": "getCurrentPricingData - Active Products Filter",
              "request": {
                "method": "POST",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n    \"active\": true\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/get-current-pricing-data",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "get-current-pricing-data"
                  ]
                },
                "description": "Retrieves pricing data for all active products"
              },
              "response": []
            },
            {
              "name": "getCurrentPricingData - Brand Filter",
              "request": {
                "method": "POST",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n    \"brandName\": \"SAMSUNG\"\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/get-current-pricing-data",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "get-current-pricing-data"
                  ]
                },
                "description": "Retrieves pricing data for all products belonging to the provided brand using LIKE search behaviour."
              },
              "response": []
            },
            {
              "name": "getCurrentPricingData - Category Filter",
              "request": {
                "method": "POST",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"categoryName\": \"TV\"\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/get-current-pricing-data",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "get-current-pricing-data"
                  ]
                },
                "description": "Retrieves pricing data for all products belonging to the provided categoria using LIKE search behaviour."
              },
              "response": []
            },
            {
              "name": "getCurrentPricingData - Date Range Fillter",
              "request": {
                "method": "POST",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"dateChangeFrom\": \"2026-05-01 00:00:00\",\r\n  \"dateChangeTo\": \"2026-05-31 23:59:59\"\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/get-current-pricing-data",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "get-current-pricing-data"
                  ]
                },
                "description": "Returns pricing data for products with detected price or availability changes within the specified timeframe."
              },
              "response": []
            },
            {
              "name": "getCurrentPricingData - Advanced Filtering",
              "request": {
                "method": "POST",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"dateChangeFrom\": \"2026-05-01 00:00:00\",\r\n  \"dateChangeTo\": \"2026-05-31 23:59:59\"\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/get-current-pricing-data",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "get-current-pricing-data"
                  ]
                },
                "description": "Returns pricing data for products matching all provided filter criteria within the specified change timeframe."
              },
              "response": []
            }
          ],
          "description": "Returns current pricing and availability data for products matching the provided search criteria.\n\nAt least one search filter must be provided.\n\n**Search behavior:**\n\n- Multiple filters are combined using logical AND\n    \n- If searchMode is omitted, the default value is LIKE\n    \n- LIKE returns all products containing the searched value\n    \n- EQUAL returns only exact matches\n    \n\n**Common filters:**\n\n- productId (int)\n    \n- productName (string)\n    \n- brandName (string)\n    \n- brandId (int)\n    \n- categoryName (string)\n    \n- categoryId (int)\n    \n- supplierName (string)\n    \n- supplierId (int)\n    \n- sku (string)\n    \n- internalId (string)\n    \n- active (boolean)\n    \n- url (string)\n    \n\n**Date filters:**\n\n- dateChangeFrom (\"yyyy-MM-dd HH:mm\")\n    \n- dateChangeTo (\"yyyy-MM-dd HH:mm\")\n    \n\n**Note:**\n\n- When using dateChangeFrom/dateChangeTo filters, the response will contain only measurement records within the specified timeframe.\n    \n- Additional captured fields may be returned depending on account configuration and site setup."
        },
        {
          "name": "/v1/get-products",
          "item": [
            {
              "name": "getProducts - Active Products Filter",
              "request": {
                "method": "POST",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"active\": true\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/get-products",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "get-products"
                  ]
                },
                "description": "Returns all active products in account."
              },
              "response": []
            },
            {
              "name": "getProducts - Brand Filter",
              "request": {
                "method": "POST",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"brandName\": \"SAMSUNG\"\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/get-products",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "get-products"
                  ]
                },
                "description": "Returns all products belonging to the provided brand using LIKE search behaviour."
              },
              "response": []
            },
            {
              "name": "getProducts - Category Filter",
              "request": {
                "method": "POST",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"categoryName\": \"TV\"\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/get-products",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "get-products"
                  ]
                },
                "description": "Returns all products belonging to the provided categoria using LIKE search behaviour."
              },
              "response": []
            },
            {
              "name": "getProducts - Category Exact Match",
              "request": {
                "method": "POST",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"categoryName\": \"TV\",\r\n  \"searchMode\": \"EQUAL\"\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/get-products",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "get-products"
                  ]
                },
                "description": "Returns all products belonging to the provided categoria using EQUAL search behaviour."
              },
              "response": []
            },
            {
              "name": "getProducts - Advanced Filtering",
              "request": {
                "method": "POST",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"active\": true,\r\n  \"brandName\": \"SAMSUNG\",\r\n  \"categoryName\": \"TV\",\r\n  \"sku\": \"123456789\"\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/get-products",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "get-products"
                  ]
                },
                "description": "Returns products matching all provided filter criteria using logical AND conditions."
              },
              "response": []
            }
          ],
          "description": "Search products using one or more filters.\n\nAll fields are optional unless otherwise specified.\n\nIf multiple fields are provided, they are combined using logical AND.\n\n**Search behavior:**\n\n- If searchMode is omitted, the default value is LIKE\n    \n- LIKE returns all products containing the searched value\n    \n- EQUAL returns only exact matches\n    \n\n**Examples:**\n\n- brandName = \"SAMSUNG\" with LIKE → returns all products with brands containing \"SAMSUNG\"\n    \n- brandName = \"SAMSUNG\" with EQUAL → returns only products with brand \"SAMSUNG\"\n    \n\n**Common filters:**\n\n- productId (int)\n    \n- productName (string)\n    \n- brandName (string)\n    \n- brandId (int)\n    \n- categoryName (string)\n    \n- categoryId (int)\n    \n- supplierName (string)\n    \n- supplierId (int)\n    \n- sku (string)\n    \n- internalId (string)\n    \n- active (boolean)\n    \n- url (string)\n    \n\n**Date filters:**\n\n- dateChangeFrom → timestamp of the last detected price/availability change (\"yyyy-MM-dd HH:mm:ss\")\n    \n- dateChangeTo → timestamp of the last detected price/availability change (\"yyyy-MM-dd HH:mm:ss\")\n    \n\n**Note:**\n\n- When using dateChangeFrom/dateChangeTo filters, the response will contain only measurement records within the specified timeframe.\n    \n\nAdditional metadata and custom fields are also supported."
        },
        {
          "name": "/v1/insert-product",
          "item": [
            {
              "name": "insertProduct - Minimal requirements",
              "request": {
                "method": "POST",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"productName\": \"Samsung TV\"\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/insert-product",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "insert-product"
                  ]
                },
                "description": "Creates a product using default settings."
              },
              "response": []
            },
            {
              "name": "insertProduct - Standard Product",
              "request": {
                "method": "POST",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"productName\": \"Samsung TV\",\r\n  \"checkFrequencyType\": \"DAYS\",\r\n  \"checkFrequencyInterval\": 1,\r\n  \"active\": true,\r\n  \"sku\": \"TV-001\",\r\n  \"internalId\": \"123456\",\r\n  \"categoryName\": \"TV\",\r\n  \"brandName\": \"SAMSUNG\"\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/insert-product",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "insert-product"
                  ]
                },
                "description": "Creates an active product with standard product information."
              },
              "response": []
            },
            {
              "name": "insertProduct - Advanced Product",
              "request": {
                "method": "POST",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"productName\": \"Samsung TV\",\r\n  \"checkFrequencyType\": \"HOURS\",\r\n  \"checkFrequencyInterval\": 4,\r\n  \"active\": true,\r\n  \"sku\": \"TV-001\",\r\n  \"internalId\": \"123456\",\r\n  \"categoryName\": \"TV\",\r\n  \"brandName\": \"SAMSUNG\",\r\n  \"supplierName\": \"Best Supplier\",\r\n  \"targetPrice\": 999.99,\r\n  \"purchasePrice\": 750.00,\r\n  \"customField1\": \"Warehouse A\"\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/insert-product",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "insert-product"
                  ]
                },
                "description": "Creates a product with advanced monitoring and custom field configuration."
              },
              "response": []
            }
          ],
          "description": "Creates a new product in Price2Spy.\n\n**Required fields**\n\n- productName (string)\n    \n\n**Common optional fields**\n\n- checkFrequencyType (DAYS | HOURS)\n    \n- checkFrequencyInterval (int)\n    \n- active (boolean)\n    \n- sku (string)\n    \n- internalId (string)\n    \n- categoryName (string)\n    \n- brandName (string)\n    \n- supplierName (string)\n    \n- targetPrice (decimal)\n    \n- purchasePrice (decimal)\n    \n\n**Allowed check frequency combinations**\n\n- DAYS → 1, 2, 3, 5, 7, 14, 30\n    \n- HOURS → 3, 4, 6, 8, 12\n    \n\n**Notes**\n\n- productName must be unique\n    \n- Additional metadata, custom fields, and comments are also supported"
        },
        {
          "name": "/v1/update-product",
          "item": [
            {
              "name": "updateProduct - Product Name",
              "request": {
                "method": "POST",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"productId\": 12345,\r\n  \"productName\": \"Updated Samsung TV\"\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/update-product",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "update-product"
                  ]
                },
                "description": "Updates only the product name. All other fields remain unchanged."
              },
              "response": []
            },
            {
              "name": "updateProduct - Product Details",
              "request": {
                "method": "POST",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"productId\": 12345,\r\n  \"productName\": \"Samsung TV\",\r\n  \"categoryName\": \"TV\",\r\n  \"brandName\": \"SAMSUNG\",\r\n  \"active\": true\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/update-product",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "update-product"
                  ]
                },
                "description": "Updates multiple product attributes."
              },
              "response": []
            },
            {
              "name": "updateProduct - Clear Values",
              "request": {
                "method": "POST",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"productId\": 462788365,\r\n  \"productName\": \"Samsung TV\",\r\n  \"sku\": \"\",\r\n  \"internalId\": \"\",\r\n  \"supplierName\": \"\",\r\n  \"targetPrice\": 0,\r\n  \"purchasePrice\": 0\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/update-product",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "update-product"
                  ]
                },
                "description": "Clears selected product fields by setting them to empty or zero values."
              },
              "response": []
            }
          ],
          "description": "Updates an existing product in Price2Spy.\n\n**Required fields**\n\n- productId (int)\n    \n- productName (string)\n    \n\n**Common optional fields**\n\n- checkFrequencyType (DAYS | HOURS)\n    \n- checkFrequencyInterval (int)\n    \n- active (boolean)\n    \n- sku (string)\n    \n- internalId (string)\n    \n- categoryName (string)\n    \n- brandName (string)\n    \n- supplierName (string)\n    \n- targetPrice (decimal)\n    \n- purchasePrice (decimal)\n    \n\n**Allowed check frequency combinations**\n\n- DAYS → 1, 2, 3, 5, 7, 14, 30\n    \n- HOURS → 3, 4, 6, 8, 12\n    \n\n**Important**\n\n- If a field is omitted from the request, its current value remains unchanged.\n    \n- productName must be unique.a\n    \n- Additional metadata, custom fields, and comments are also supported."
        },
        {
          "name": "/v1/delete-product/{id}",
          "item": [
            {
              "name": "deleteProduct",
              "request": {
                "method": "DELETE",
                "header": [],
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/delete-product/{id}",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "delete-product",
                    "{id}"
                  ]
                },
                "description": "Deletes a product from Price2Spy."
              },
              "response": []
            }
          ],
          "description": "Deletes a product from Price2Spy.\n\n**Required fields**\n\n- productId (int)\n    \n\n**Important**\n\n- Deleting a product will also delete all associated URLs and their price history."
        }
      ],
      "description": "Contains endpoints for managing products, retrieving pricing data, and performing product-related operations in Price2Spy."
    },
    {
      "name": "URLs",
      "item": [
        {
          "name": "/v1/get-urls",
          "item": [
            {
              "name": "getUrls - Product ID Filter",
              "request": {
                "method": "POST",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"id\": 12345,\r\n  \"idMode\": \"ID\"\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/get-urls",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "get-urls"
                  ]
                },
                "description": "Returns all URLs belonging to the product with the provided product ID."
              },
              "response": []
            },
            {
              "name": "getUrls - SKU Filter",
              "request": {
                "method": "POST",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"id\": \"SKU-123\",\r\n  \"idMode\": \"SKU\"\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/get-urls",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "get-urls"
                  ]
                },
                "description": "Returns all URLs belonging to the product with the provided SKU."
              },
              "response": []
            },
            {
              "name": "getUrls - Internal ID Filter",
              "request": {
                "method": "POST",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"id\": \"ERP-456\",\r\n  \"idMode\": \"INTERNAL_ID\"\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/get-urls",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "get-urls"
                  ]
                },
                "description": "Returns all URLs belonging to the product with the provided internal ID."
              },
              "response": []
            },
            {
              "name": "getUrls - Product Name Filter",
              "request": {
                "method": "POST",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"id\": \"Samsung TV\",\r\n  \"idMode\": \"NAME\"\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/get-urls",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "get-urls"
                  ]
                },
                "description": "Returns all URLs belonging to the product with the provided product name."
              },
              "response": []
            },
            {
              "name": "getUrls - Global Search Filter",
              "request": {
                "method": "POST",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"id\": \"Samsung\",\r\n  \"idMode\": \"ANY\"\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/get-urls",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "get-urls"
                  ]
                },
                "description": "Returns all URLs for products where the provided value matches SKU, internal ID, or product name."
              },
              "response": []
            },
            {
              "name": "getUrls - All URLs Without Filters",
              "request": {
                "method": "POST",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"idMode\": \"ANY\"\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/get-urls",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "get-urls"
                  ]
                },
                "description": "Returns all URLs in the account."
              },
              "response": []
            }
          ],
          "description": "Returns URL-level pricing and measurement data for matching products.\n\n**Search behavior**\n\n- If searchMode is omitted, the default value is LIKE\n    \n- LIKE returns all products containing the searched value\n    \n- EQUAL returns only exact matches\n    \n\n**Supported idMode values**\n\n- ID → searches by Price2Spy product ID\n    \n- SKU → searches by SKU\n    \n- INTERNAL_ID → searches by internal ID\n    \n- NAME → searches by product name\n    \n- ANY → searches across SKU, internal ID, and product name\n    \n\n**Common filters**\n\n- id (string/int)\n    \n- idMode (string)\n    \n- searchMode (string)\n    \n\n**Examples**\n\n- id = 12345 with idMode = ID → returns URLs for the specified product ID\n    \n- id = \"SKU-123\" with idMode = SKU → returns URLs for products matching the provided SKU\n    \n- id = \"Samsung TV\" with idMode = NAME → returns URLs for products matching the provided product name\n    \n- idMode = ANY → returns all URLs available in the account\n    \n\n**Note**\n\n- Response contains URL-level pricing and measurement data for matching products.\n    \n- Additional measurement fields may be returned depending on account configuration and enabled monitoring options."
        },
        {
          "name": "/v1/get-measurements",
          "item": [
            {
              "name": "getMeasurements - URL History",
              "request": {
                "method": "POST",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"urlId\": 123456\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/get-measurements",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "get-measurements"
                  ]
                },
                "description": "Returns all measurements for the provided URL ID."
              },
              "response": []
            },
            {
              "name": "getMeasurements - Date Range Filter",
              "request": {
                "method": "POST",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"urlId\": 123456,\r\n  \"dateCheckedFrom\": \"2026-05-01 00:00:00\",\r\n  \"dateCheckedTo\": \"2026-05-31 23:59:59\"\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/get-measurements",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "get-measurements"
                  ]
                },
                "description": "Returns measurements for the provided URL ID within the specified timeframe."
              },
              "response": []
            }
          ],
          "description": "Returns all measurement history records for the provided URL ID.\n\n**Common filters**\n\n- urlId (int)\n    \n- dateCheckedFrom (\"yyyy-MM-dd HH:mm\")\n    \n- dateCheckedTo (\"yyyy-MM-dd HH:mm\")\n    \n\n**Note**\n\n- dateCheckedFrom returns measurements after the specified date.\n    \n- dateCheckedTo returns measurements before the specified date.\n    \n- Response contains historical pricing and availability measurements for the specified URL."
        },
        {
          "name": "/v1/insert-url",
          "item": [
            {
              "name": "insertUrl - Standard URL",
              "request": {
                "method": "POST",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"productId\": 12345,\r\n  \"url\": \"https://www.example.com/product-page\",\r\n  \"active\": true,\r\n  \"showInReports\": true\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/insert-url",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "insert-url"
                  ]
                },
                "description": "Creates an active URL for the specified product."
              },
              "response": []
            }
          ],
          "description": "Creates a new URL for an existing product in Price2Spy.\n\n**Required fields**\n\n- productId (int)\n    \n- url (string)\n    \n\n**Optional fields**\n\n- active (boolean)\n    \n- showInReports (boolean)\n    \n\n**Notes**\n\n- productId must reference an existing Price2Spy product.\n    \n- If active = false, price checks will not be performed for the URL.\n    \n- If showInReports = false, the URL will be excluded from reports.\n    \n- If the provided website is not yet supported by Price2Spy, the request may return a validation/general error until the site is reviewed and enabled by the Price2Spy team.\n    \n- Newly suggested websites are typically processed within 1-2 business days."
        },
        {
          "name": "/v1/update-url",
          "item": [
            {
              "name": "updateUrl - Standard Update",
              "request": {
                "method": "POST",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"urlId\": 12345,\r\n  \"url\": \"https://www.amazon.com/product-page\",\r\n  \"active\": true,\r\n  \"showInReports\": true\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/update-url",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "update-url"
                  ]
                },
                "description": "Updates URL settings while keeping omitted fields unchanged."
              },
              "response": []
            }
          ],
          "description": "Updates an existing URL in Price2Spy.\n\n**Required fields**\n\n- urlId (int)\n    \n- url (string)\n    \n\n**Optional fields**\n\n- counterFailed (int)\n    \n- active (boolean)\n    \n- showInReports (boolean)\n    \n\n**Important**\n\n- If a field is omitted from the request, its current value remains unchanged.\n    \n- URL site/domain cannot be changed during update."
        },
        {
          "name": "/v1/delete-url/{id}",
          "item": [
            {
              "name": "deleteUrl",
              "request": {
                "method": "DELETE",
                "header": [],
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/delete-url/{id}",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "delete-url",
                    "{id}"
                  ]
                },
                "description": "Deletes a URL from Price2Spy."
              },
              "response": []
            }
          ],
          "description": "Deletes a URL from Price2Spy.\n\n**Path parameters**\n\n- urlId (int)\n    \n\n**Important**\n\n- Deleting a URL will also delete its price history."
        }
      ],
      "description": "Contains endpoints for managing product URLs, retrieving URL pricing history, and accessing measurement data in Price2Spy."
    },
    {
      "name": "Brands",
      "item": [
        {
          "name": "/v1/get-brands",
          "item": [
            {
              "name": "getBrands",
              "request": {
                "method": "GET",
                "header": [],
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/get-brands",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "get-brands"
                  ]
                },
                "description": "Returns all brands in the account."
              },
              "response": []
            }
          ],
          "description": "Returns all brands available in the account."
        },
        {
          "name": "/v1/insert-brand",
          "item": [
            {
              "name": "insertBrand - Standard Brand",
              "request": {
                "method": "POST",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"name\": \"Samsung\",\r\n  \"active\": true,\r\n  \"priority\": 0\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/insert-brand",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "insert-brand"
                  ]
                },
                "description": "Creates an active brand with default display priority."
              },
              "response": []
            },
            {
              "name": "insertBrand - With Email Notifications",
              "request": {
                "method": "POST",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"name\": \"Samsung\",\r\n  \"active\": true,\r\n  \"priority\": 1,\r\n  \"emailRecipient\": \"alerts@example.com;pricing@example.com\"\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/insert-brand",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "insert-brand"
                  ]
                },
                "description": "Creates a brand with configured email notification recipients."
              },
              "response": []
            }
          ],
          "description": "Creates a new brand in Price2Spy.\n\n**Required fields**\n\n- name (string)\n    \n- active (boolean)\n    \n- priority (int)\n    \n\n**Optional fields**\n\n- emailRecipient (string)\n    \n\n**Notes**\n\n- Brand name must be unique.\n    \n- If active = false, the brand will not be available in Price2Spy filters.\n    \n- priority defines the display order inside Price2Spy.\n    \n- If multiple email recipients are used, separate them using \";\"."
        },
        {
          "name": "/v1/update-brand",
          "item": [
            {
              "name": "updateBrand - Rename Brand",
              "request": {
                "method": "PUT",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"categoryId\": 123,\r\n  \"name\": \"Update Samsung\"\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/update-brand",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "update-brand"
                  ]
                },
                "description": "Updates the brand name while keeping other fields unchanged."
              },
              "response": []
            },
            {
              "name": "updateBrand - Full Update",
              "request": {
                "method": "PUT",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"categoryId\": 123,\r\n  \"name\": \"Update Samsung\",\r\n  \"active\": true,\r\n  \"priority\": 1,\r\n  \"emailRecipient\": \"alerts@example.com\"\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/update-brand",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "update-brand"
                  ]
                },
                "description": "Updates brand options and notification recipients."
              },
              "response": []
            }
          ],
          "description": "Updates an existing brand in Price2Spy.\n\n**Required fields**\n\n- brandId (int)\n    \n- name (string)\n    \n- active (boolean)\n    \n- priority (int)\n    \n\n**Optional fields**\n\n- emailRecipient (string)\n    \n\n**Notes**\n\n- Brand name must be unique.\n    \n- If active = false, the brand will not be available in Price2Spy filters.\n    \n- priority defines the display order inside Price2Spy.\n    \n- If multiple email recipients are used, separate them using \";\".\n    \n- If a field is omitted from the request, its current value remains unchanged."
        },
        {
          "name": "/v1/delete-brand",
          "item": [
            {
              "name": "deleteBrand",
              "request": {
                "method": "DELETE",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"id\": 123\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/delete-brand",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "delete-brand"
                  ]
                },
                "description": "Deletes a brand from the account."
              },
              "response": []
            }
          ],
          "description": "Deletes a brand from Price2Spy.\n\n**Required field**\n\n- brandId (int)\n    \n\n**Important**\n\n- A brand can only be deleted if there are no products associated with it."
        }
      ],
      "description": "Contains endpoints for managing product brands and brand-related configuration in Price2Spy."
    },
    {
      "name": "Categories",
      "item": [
        {
          "name": "/v1/get-categories",
          "item": [
            {
              "name": "getCategories",
              "request": {
                "method": "GET",
                "header": [],
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/get-categories",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "get-categories"
                  ]
                },
                "description": "Returns all categories in the account."
              },
              "response": []
            }
          ],
          "description": "Returns all categories available in the account."
        },
        {
          "name": "/v1/insert-category",
          "item": [
            {
              "name": "insertCategory - Standard Category",
              "request": {
                "method": "POST",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"name\": \"TV\",\r\n  \"active\": true,\r\n  \"priority\": 0\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/insert-category",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "insert-category"
                  ]
                },
                "description": "Creates an active category with default display priority."
              },
              "response": []
            },
            {
              "name": "insertCategory - With Email Notification",
              "request": {
                "method": "POST",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"name\": \"TV\",\r\n  \"active\": true,\r\n  \"priority\": 1,\r\n  \"emailRecipient\": \"alerts@example.com;pricing@example.com\"\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/insert-category",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "insert-category"
                  ]
                },
                "description": "Creates a category with configured email notification recipients."
              },
              "response": []
            }
          ],
          "description": "Creates a new category in Price2Spy.\n\n**Required fields**\n\n- name (string)\n    \n- active (boolean)\n    \n- priority (int)\n    \n\n**Optional fields**\n\n- emailRecipient (string)\n    \n\n**Notes**\n\n- Category name must be unique.\n    \n- If active = false, the category will not be available in Price2Spy filters.\n    \n- priority defines the display order inside Price2Spy.\n    \n- If multiple email recipients are used, separate them using \";\"."
        },
        {
          "name": "/v1/update-category",
          "item": [
            {
              "name": "updateCategory - Rename Category",
              "request": {
                "method": "PUT",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"categoryId\": 123,\r\n  \"name\": \"Updated TV Category\"\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/update-category",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "update-category"
                  ]
                },
                "description": "Updates the category name while keeping other fields unchanged."
              },
              "response": []
            },
            {
              "name": "updateCategory - Full Update",
              "request": {
                "method": "PUT",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"categoryId\": 123,\r\n  \"name\": \"TV\",\r\n  \"active\": true,\r\n  \"priority\": 1,\r\n  \"emailRecipient\": \"alerts@example.com\"\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/update-category",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "update-category"
                  ]
                },
                "description": "Updates category options and notification recipients."
              },
              "response": []
            }
          ],
          "description": "Updates an existing category in Price2Spy.\n\n**Required fields**\n\n- categoryId (int)\n    \n- name (string)\n    \n- active (boolean)\n    \n- priority (int)\n    \n\n**Optional fields**\n\n- emailRecipient (string)\n    \n\n**Notes**\n\n- Category name must be unique.\n    \n- If active = false, the category will not be available in Price2Spy filters.\n    \n- priority defines the display order inside Price2Spy.\n    \n- If multiple email recipients are used, separate them using \";\".\n    \n- If a field is omitted from the request, its current value remains unchanged."
        },
        {
          "name": "/v1/delete-category",
          "item": [
            {
              "name": "deleteCategory",
              "request": {
                "method": "DELETE",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"id\": 123\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/delete-category",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "delete-category"
                  ]
                },
                "description": "Deletes a category from the account."
              },
              "response": []
            }
          ],
          "description": "Deletes a category from Price2Spy.\n\n**Required field**\n\n- categoryId (int)\n    \n\n**Important**\n\n- A category can only be deleted if there are no products associated with it."
        }
      ],
      "description": "Contains endpoints for managing product categores and category-related configuration in Price2Spy."
    },
    {
      "name": "Suppliers",
      "item": [
        {
          "name": "/v1/get-suppliers",
          "item": [
            {
              "name": "getSuppliers",
              "request": {
                "method": "GET",
                "header": [],
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/get-suppliers",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "get-suppliers"
                  ]
                },
                "description": "Returns all suppliers in the account."
              },
              "response": []
            }
          ],
          "description": "Returns all suppliers in the account."
        },
        {
          "name": "/v1/insert-supplier",
          "item": [
            {
              "name": "insertSupplier - Standard Supplier",
              "request": {
                "method": "POST",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"name\": \"Tech Distribution\",\r\n  \"active\": true,\r\n  \"priority\": 0\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/insert-supplier",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "insert-supplier"
                  ]
                },
                "description": "Creates an active supplier with default display priority."
              },
              "response": []
            },
            {
              "name": "insertSupplier - With Email Notification",
              "request": {
                "method": "POST",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"name\": \"Tech Distribution\",\r\n  \"active\": true,\r\n  \"priority\": 1,\r\n  \"emailRecipient\": \"alerts@example.com;pricing@example.com\"\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/insert-supplier",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "insert-supplier"
                  ]
                },
                "description": "Creates a supplier with configured email notification recipients."
              },
              "response": []
            }
          ],
          "description": "Creates a new supplier in Price2Spy.\n\n**Required fields**\n\n- name (string)\n    \n- active (boolean)\n    \n- priority (int)\n    \n\n**Optional fields**\n\n- emailRecipient (string)\n    \n\n**Notes**\n\n- Supplier name must be unique.\n    \n- If active = false, the supplier will not be available in Price2Spy filters.\n    \n- priority defines the display order inside Price2Spy.\n    \n- If multiple email recipients are used, separate them using \";\"."
        },
        {
          "name": "/v1/update-supplier",
          "item": [
            {
              "name": "updateSupplier - Rename Supplier",
              "request": {
                "method": "PUT",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"categoryId\": 123,\r\n  \"name\": \"Updated Tech Distribution\"\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/update-supplier",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "update-supplier"
                  ]
                },
                "description": "Updates the supplier name while keeping other fields unchanged."
              },
              "response": []
            },
            {
              "name": "updateSupplier - Full Update",
              "request": {
                "method": "PUT",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"categoryId\": 123,\r\n  \"name\": \"Updated Tech Distribution\",\r\n  \"active\": true,\r\n  \"priority\": 1,\r\n  \"emailRecipient\": \"alerts@example.com\"\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/update-supplier",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "update-supplier"
                  ]
                },
                "description": "Updates supplier options and notification recipients."
              },
              "response": []
            }
          ],
          "description": "Updates an existing supplier in Price2Spy.\n\n**Required fields**\n\n- supplierId (int)\n    \n- name (string)\n    \n- active (boolean)\n    \n- priority (int)\n    \n\n**Optional fields**\n\n- emailRecipient (string)\n    \n\n**Notes**\n\n- Supplier name must be unique.\n    \n- If active = false, the supplier will not be available in Price2Spy filters.\n    \n- priority defines the display order inside Price2Spy.\n    \n- If multiple email recipients are used, separate them using \";\".\n    \n- If a field is omitted from the request, its current value remains unchanged."
        },
        {
          "name": "/v1/delete-supplier",
          "item": [
            {
              "name": "deleteSupplier",
              "request": {
                "method": "DELETE",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"id\": 123\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/delete-supplier",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "delete-supplier"
                  ]
                },
                "description": "Deletes a supplier from the account."
              },
              "response": []
            }
          ],
          "description": "Deletes a supplier from Price2Spy.\n\n**Required field**\n\n- supplierId (int)\n    \n\n**Important**\n\n- A supplier can only be deleted if there are no products associated with it."
        }
      ],
      "description": "Contains endpoints for managing product suppliers and supplier-related configuration in Price2Spy."
    },
    {
      "name": "Metadata",
      "item": [
        {
          "name": "/v1/get-metadata-1",
          "item": [
            {
              "name": "getMetadata1",
              "request": {
                "method": "GET",
                "header": [],
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/get-metadata-1",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "get-metadata-1"
                  ]
                },
                "description": "Returns all metadata 1 in the account."
              },
              "response": []
            }
          ],
          "description": "Returns all metadata 1 in the account."
        },
        {
          "name": "/v1/insert-metadata1",
          "item": [
            {
              "name": "insertMetadata1 - Standard Metadata 1",
              "request": {
                "method": "POST",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"name\": \"Electronics\",\r\n  \"active\": true,\r\n  \"priority\": 0\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/insert-metadata1",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "insert-metadata1"
                  ]
                },
                "description": "Creates an active metadat 1 with default display priority."
              },
              "response": []
            },
            {
              "name": "insertMetadata1 - With Email notification",
              "request": {
                "method": "POST",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"name\": \"Electronics\",\r\n  \"active\": true,\r\n  \"priority\": 1,\r\n  \"emailRecipient\": \"alerts@example.com;pricing@example.com\"\r\n\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/insert-metadata1",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "insert-metadata1"
                  ]
                },
                "description": "Creates a metadata 1 with configured email notification recipients."
              },
              "response": []
            }
          ],
          "description": "Creates a new metadata 1 in Price2Spy.\n\n**Required fields**\n\n- name (string)\n    \n- active (boolean)\n    \n- priority (int)\n    \n\n**Optional fields**\n\n- emailRecipient (string)\n    \n\n**Notes**\n\n- Metadata 1 name must be unique.\n    \n- If active = false, the category will not be available in Price2Spy filters.\n    \n- priority defines the display order inside Price2Spy.\n    \n- If multiple email recipients are used, separate them using \";\"."
        },
        {
          "name": "/v1/update-metadata1",
          "item": [
            {
              "name": "updateMetadata1 - Rename Metadata 1",
              "request": {
                "method": "PUT",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"categoryId\": 123,\r\n  \"name\": \"Updated Electronics\"\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/update-metadata1",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "update-metadata1"
                  ]
                },
                "description": "Updates the metadata 1 name while keeping other fields unchanged."
              },
              "response": []
            },
            {
              "name": "updateMetadata1 - Full Update",
              "request": {
                "method": "PUT",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"categoryId\": 123,\r\n  \"name\": \"Updated Electronics\",\r\n  \"active\": true,\r\n  \"priority\": 1,\r\n  \"emailRecipient\": \"alerts@example.com\"\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/update-metadata1",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "update-metadata1"
                  ]
                },
                "description": "Updates metadat 1 options and notification recipients."
              },
              "response": []
            }
          ],
          "description": "Updates an existing matdata 1 in Price2Spy.\n\n**Required fields**\n\n- metadataId (int)\n    \n- name (string)\n    \n- active (boolean)\n    \n- priority (int)\n    \n\n**Optional fields**\n\n- emailRecipient (string)\n    \n\n**Notes**\n\n- Metadata 1 name must be unique.\n    \n- If active = false, the metadata 1 will not be available in Price2Spy filters.\n    \n- priority defines the display order inside Price2Spy.\n    \n- If multiple email recipients are used, separate them using \";\".\n    \n- If a field is omitted from the request, its current value remains unchanged."
        },
        {
          "name": "/v1/delete-metadata1",
          "item": [
            {
              "name": "deleteMetadata1",
              "request": {
                "method": "DELETE",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"id\": 123\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/delete-metadata1",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "delete-metadata1"
                  ]
                },
                "description": "Deletes metadata 1 from the account."
              },
              "response": []
            }
          ],
          "description": "Deletes a metadata 1 from Price2Spy.\n\n**Required field**\n\n- metadataId (int)\n    \n\n**Important**\n\n- A metadata can only be deleted if there are no products associated with it."
        },
        {
          "name": "/v1/get-metadata-2",
          "item": [
            {
              "name": "getMetadata2",
              "request": {
                "method": "GET",
                "header": [],
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/get-metadata-2",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "get-metadata-2"
                  ]
                },
                "description": "Returns all metadata 2 in the account."
              },
              "response": []
            }
          ],
          "description": "Returns all metadata 2 in the account."
        },
        {
          "name": "/v1/insert-metadata2",
          "item": [
            {
              "name": "insertMetadata2 - Standard Metadata 2",
              "request": {
                "method": "POST",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"name\": \"Premium\",\r\n  \"active\": true,\r\n  \"priority\": 0\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/insert-metadata2",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "insert-metadata2"
                  ]
                },
                "description": "Creates an active metadat 2 with default display priority."
              },
              "response": []
            },
            {
              "name": "insertMetadata2 - With Email Notification",
              "request": {
                "method": "POST",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"name\": \"Premium\",\r\n  \"active\": true,\r\n  \"priority\": 1,\r\n  \"emailRecipient\": \"alerts@example.com;pricing@example.com\"\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/insert-metadata2",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "insert-metadata2"
                  ]
                },
                "description": "Creates a metadata 2 with configured email notification recipients."
              },
              "response": []
            }
          ],
          "description": "Creates a new Metadata 2 in Price2Spy.\n\n**Required fields**\n\n- name (string)\n    \n- active (boolean)\n    \n- priority (int)\n    \n\n**Optional fields**\n\n- emailRecipient (string)\n    \n\n**Notes**\n\n- Metadata 2 name must be unique.\n    \n- If active = false, the metadata 2 will not be available in Price2Spy filters.\n    \n- priority defines the display order inside Price2Spy.\n    \n- If multiple email recipients are used, separate them using \";\".\n    \n\nEndFragment"
        },
        {
          "name": "/v1/update-metadata2",
          "item": [
            {
              "name": "updateMetadata2 - Rename Metadata 2",
              "request": {
                "method": "PUT",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"categoryId\": 123,\r\n  \"name\": \"Updated Premium\"\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/update-metadata2",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "update-metadata2"
                  ]
                },
                "description": "Updates the metadata 2 name while keeping other fields unchanged."
              },
              "response": []
            },
            {
              "name": "updateMetadata2 - Full Update",
              "request": {
                "method": "PUT",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"categoryId\": 123,\r\n  \"name\": \"Updated Premium\",\r\n  \"active\": true,\r\n  \"priority\": 1,\r\n  \"emailRecipient\": \"alerts@example.com\"\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/update-metadata2",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "update-metadata2"
                  ]
                },
                "description": "Updates metadata 2 options and notification recipients."
              },
              "response": []
            }
          ],
          "description": "Updates an existing matdata 2 in Price2Spy.\n\n**Required fields**\n\n- metadataId (int)\n    \n- name (string)\n    \n- active (boolean)\n    \n- priority (int)\n    \n\n**Optional fields**\n\n- emailRecipient (string)\n    \n\n**Notes**\n\n- Metadata 2 name must be unique.\n    \n- If active = false, the metadata 2 will not be available in Price2Spy filters.\n    \n- priority defines the display order inside Price2Spy.\n    \n- If multiple email recipients are used, separate them using \";\".\n    \n- If a field is omitted from the request, its current value remains unchanged."
        },
        {
          "name": "/v1/delete-metadata2",
          "item": [
            {
              "name": "deleteMetadata2",
              "request": {
                "method": "DELETE",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"id\": 123\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/delete-metadata2",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "delete-metadata2"
                  ]
                },
                "description": "Deletes metadata 2 from the account."
              },
              "response": []
            }
          ],
          "description": "Deletes a metadata 2 from Price2Spy.\n\n**Required field**\n\n- metadataId (int)\n    \n\n**Important**\n\n- A metadata can only be deleted if there are no products associated with it."
        },
        {
          "name": "/v1/get-metadata-3",
          "item": [
            {
              "name": "getMetadata3",
              "request": {
                "method": "GET",
                "header": [],
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/get-metadata-3",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "get-metadata-3"
                  ]
                },
                "description": "Returns all metadata 3 in the account."
              },
              "response": []
            }
          ],
          "description": "Returns all metadata 3 in the account."
        },
        {
          "name": "/v1/insert-metadata3",
          "item": [
            {
              "name": "insertMetadata3 - Standard Metadata 3",
              "request": {
                "method": "POST",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"name\": \"Warehouse A\",\r\n  \"active\": true,\r\n  \"priority\": 0\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/insert-metadata3",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "insert-metadata3"
                  ]
                },
                "description": "Creates an active metadat 3 with default display priority."
              },
              "response": []
            },
            {
              "name": "insertMetadata3 - With Email Notification",
              "request": {
                "method": "POST",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"name\": \"Warehouse A\",\r\n  \"active\": true,\r\n  \"priority\": 1,\r\n  \"emailRecipient\": \"alerts@example.com;pricing@example.com\"\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/insert-metadata3",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "insert-metadata3"
                  ]
                },
                "description": "Creates a metadata 3 with configured email notification recipients."
              },
              "response": []
            }
          ],
          "description": "Creates a new metadata 3 in Price2Spy.\n\n**Required fields**\n\n- name (string)\n    \n- active (boolean)\n    \n- priority (int)\n    \n\n**Optional fields**\n\n- emailRecipient (string)\n    \n\n**Notes**\n\n- Metadata 3 name must be unique.\n    \n- If active = false, the metadata 3 will not be available in Price2Spy filters.\n    \n- priority defines the display order inside Price2Spy.\n    \n- If multiple email recipients are used, separate them using \";\"."
        },
        {
          "name": "/v1/update-metadata3",
          "item": [
            {
              "name": "updateMetadata3 - Rename Metadata 3",
              "request": {
                "method": "PUT",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"categoryId\": 123,\r\n  \"name\": \"Updated Warehouse A\"\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/update-metadata3",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "update-metadata3"
                  ]
                },
                "description": "Updates the metadata 3 name while keeping other fields unchanged."
              },
              "response": []
            },
            {
              "name": "updateMetadata3 - Full Updated",
              "request": {
                "method": "PUT",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"categoryId\": 123,\r\n  \"name\": \"Udpated Warehouse A\",\r\n  \"active\": true,\r\n  \"priority\": 1,\r\n  \"emailRecipient\": \"alerts@example.com\"\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/update-metadata3",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "update-metadata3"
                  ]
                },
                "description": "Updates metadata 3 options and notification recipients."
              },
              "response": []
            }
          ],
          "description": "Updates an existing matdata 3 in Price2Spy.\n\n**Required fields**\n\n- metadataId (int)\n    \n- name (string)\n    \n- active (boolean)\n    \n- priority (int)\n    \n\n**Optional fields**\n\n- emailRecipient (string)\n    \n\n**Notes**\n\n- Metadata 3 name must be unique.\n    \n- If active = false, the metadata 3 will not be available in Price2Spy filters.\n    \n- priority defines the display order inside Price2Spy.\n    \n- If multiple email recipients are used, separate them using \";\".\n    \n- If a field is omitted from the request, its current value remains unchanged."
        },
        {
          "name": "/v1/delete-metadata3",
          "item": [
            {
              "name": "deleteMetadata3",
              "request": {
                "method": "DELETE",
                "header": [],
                "body": {
                  "mode": "raw",
                  "raw": "{\r\n  \"id\": 123\r\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/delete-metadata3",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "delete-metadata3"
                  ]
                },
                "description": "Deletes metadata 3 from the account."
              },
              "response": []
            }
          ],
          "description": "Deletes a metadata 3 from Price2Spy.\n\n**Required field**\n\n- metadataId (int)\n    \n\n**Important**\n\n- A metadata can only be deleted if there are no products associated with it."
        }
      ],
      "description": "Contains endpoints for managing product metadat and metadata-related configuration in Price2Spy."
    },
    {
      "name": "Price buckets",
      "item": [
        {
          "name": "/v1/get-price-buckets",
          "item": [
            {
              "name": "getPriceBuckets",
              "request": {
                "method": "GET",
                "header": [],
                "url": {
                  "raw": "https://api.price2spy.com/rest/v1/get-price-buckets",
                  "protocol": "https",
                  "host": [
                    "api",
                    "price2spy",
                    "com"
                  ],
                  "path": [
                    "rest",
                    "v1",
                    "get-price-buckets"
                  ]
                },
                "description": "Returns all price buckets in the account."
              },
              "response": []
            }
          ],
          "description": "Returns all price buckets in the account."
        }
      ],
      "description": "Contains endpoints for retrieving and managing price bucket configuration in Price2Spy."
    }
  ],
  "event": [
    {
      "listen": "prerequest",
      "script": {
        "type": "text/javascript",
        "requests": {},
        "exec": [
          "// Price2Spy HMAC Authentication Script",
          "// Required collection variables:",
          "// - client_id",
          "// - client_secret",
          "",
          "const clientId = pm.collectionVariables.get('client_id');",
          "const clientSecret = pm.collectionVariables.get('client_secret');",
          "",
          "if (!clientId || !clientSecret) {",
          "    throw new Error('Missing credentials');",
          "}",
          "",
          "const method = pm.request.method.toUpperCase();",
          "const host = pm.request.url.getHost();",
          "const timestamp = Math.floor(Date.now() / 1000).toString();",
          "",
          "const resourcePath = pm.request.url.getPathWithQuery();",
          "",
          "// Payload",
          "let requestPayload = '';",
          "if (pm.request.body && pm.request.body.raw) {",
          "    requestPayload = pm.request.body.raw;",
          "}",
          "",
          "// Content-Type",
          "let contentType = '';",
          "if (method === 'POST' || method === 'PUT' || (method === 'DELETE' && requestPayload)) {",
          "    contentType = 'application/json';",
          "}",
          "",
          "let stringToSign;",
          "",
          "if (method === 'GET') {",
          "    stringToSign = [",
          "        method,",
          "        host,",
          "        resourcePath,",
          "        timestamp,",
          "        requestPayload",
          "    ].join('\\n');",
          "",
          "} else if (method === 'DELETE' && !requestPayload) {",
          "    // DELETE bez body",
          "    stringToSign = [",
          "        method,",
          "        host,",
          "        resourcePath,",
          "        timestamp,",
          "        requestPayload",
          "    ].join('\\n');",
          "",
          "} else {",
          "    // POST, PUT, DELETE sa body",
          "    stringToSign = [",
          "        method,",
          "        host,",
          "        contentType,",
          "        resourcePath,",
          "        timestamp,",
          "        requestPayload",
          "    ].join('\\n');",
          "}",
          "",
          "// SIGNATURE",
          "const hash = CryptoJS.HmacSHA256(stringToSign, clientSecret);",
          "const signature = CryptoJS.enc.Base64.stringify(hash);",
          "",
          "const authHeader = `HmacSHA256 ${clientId}:${signature}`;",
          "",
          "// HEADERS",
          "pm.request.headers.upsert({ key: 'Host', value: host });",
          "pm.request.headers.upsert({ key: 'X-P2S-Date', value: timestamp });",
          "pm.request.headers.upsert({ key: 'Authorization', value: authHeader });",
          "",
          "// Content-Type ",
          "if (contentType) {",
          "    pm.request.headers.upsert({",
          "        key: 'Content-Type',",
          "        value: contentType",
          "    });",
          "}",
          "",
          "// DEBUG",
          "console.log('=== HMAC DEBUG ===');",
          "console.log('Method:', method);",
          "console.log('Host:', host);",
          "console.log('Content-Type:', contentType);",
          "console.log('Resource Path:', resourcePath);",
          "console.log('Timestamp:', timestamp);",
          "console.log('Request Payload:', requestPayload);",
          "console.log('\\nString-to-Sign:\\n' + stringToSign);",
          "console.log('\\nSignature:', signature);",
          "console.log('Authorization:', authHeader);"
        ]
      }
    },
    {
      "listen": "test",
      "script": {
        "type": "text/javascript",
        "packages": {},
        "requests": {},
        "exec": [
          ""
        ]
      }
    }
  ],
  "variable": [
    {
      "key": "client_id",
      "value": ""
    },
    {
      "key": "client_secret",
      "value": ""
    }
  ]
}