{
  "item": [
    {
      "name": "Account",
      "description": "Check which API key you're using and what it can do.",
      "item": [
        {
          "name": "Retrieve your API key",
          "request": {
            "name": "Retrieve your API key",
            "description": {
              "content": "Returns the API key you're calling with: its name and prefix, your company, its scopes and its rate limit.\nAny valid key can call it, whatever its scopes. Use it to check that your key works.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "me"
              ],
              "host": [
                "{{base_url}}"
              ],
              "query": [],
              "variable": [],
              "raw": "{{base_url}}/me"
            },
            "header": [
              {
                "disabled": true,
                "description": {
                  "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                  "type": "text/plain"
                },
                "key": "If-None-Match",
                "value": "W/\"9f3c1e\""
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "body": {}
          },
          "response": [
            {
              "name": "200 OK",
              "originalRequest": {
                "url": {
                  "path": [
                    "me"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [],
                  "raw": "{{base_url}}/me"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Limit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Remaining",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Reset",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "ETag",
                  "value": ""
                }
              ],
              "body": "{\n  \"key\": {\n    \"name\": \"Odoo production\",\n    \"prefix\": \"k3Xa91Qz\",\n    \"environment\": \"live\"\n  },\n  \"company\": {\n    \"name\": \"Example Wholesale (Pty) Ltd\"\n  },\n  \"scopes\": [\n    \"catalog:read\",\n    \"matches:read\",\n    \"skus:write\"\n  ],\n  \"limits\": {\n    \"per_minute\": 120,\n    \"window_seconds\": 60\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "304 Not Modified",
              "originalRequest": {
                "url": {
                  "path": [
                    "me"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [],
                  "raw": "{{base_url}}/me"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Modified",
              "code": 304,
              "header": [
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "ETag",
                  "value": ""
                }
              ],
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "name": "400 Bad Request",
              "originalRequest": {
                "url": {
                  "path": [
                    "me"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [],
                  "raw": "{{base_url}}/me"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/unknown-parameter\",\n  \"title\": \"Unknown query parameter\",\n  \"status\": 400,\n  \"detail\": \"Unknown query parameter 'update_since'.\",\n  \"code\": \"unknown_parameter\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\",\n  \"errors\": [\n    {\n      \"parameter\": \"update_since\",\n      \"detail\": \"Not a parameter of this endpoint.\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "401 Unauthorized",
              "originalRequest": {
                "url": {
                  "path": [
                    "me"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [],
                  "raw": "{{base_url}}/me"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "WWW-Authenticate",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/unauthenticated\",\n  \"title\": \"Authentication required\",\n  \"status\": 401,\n  \"detail\": \"Send your API key as 'Authorization: Bearer gp_live_…'.\",\n  \"code\": \"unauthenticated\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "429 Too Many Requests",
              "originalRequest": {
                "url": {
                  "path": [
                    "me"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [],
                  "raw": "{{base_url}}/me"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Limit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Remaining",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Reset",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/rate-limited\",\n  \"title\": \"Rate limit exceeded\",\n  \"status\": 429,\n  \"detail\": \"Sustained limit of 120 requests per minute reached for this API key.\",\n  \"code\": \"rate_limited\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\",\n  \"limit\": \"sustained\",\n  \"retry_after\": 21\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "500 Internal Server Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "me"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [],
                  "raw": "{{base_url}}/me"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://wjNzcNWHyrfCRj.tnKHSJNzuzd\",\n  \"title\": \"string\",\n  \"status\": 7335,\n  \"detail\": \"string\",\n  \"code\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"detail\": \"string\",\n      \"pointer\": \"string\",\n      \"parameter\": \"string\"\n    },\n    {\n      \"detail\": \"string\",\n      \"pointer\": \"string\",\n      \"parameter\": \"string\"\n    }\n  ],\n  \"limit\": \"string\",\n  \"retry_after\": 4401\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "503 Service Unavailable",
              "originalRequest": {
                "url": {
                  "path": [
                    "me"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [],
                  "raw": "{{base_url}}/me"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Service Unavailable",
              "code": 503,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "Retry-After",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://wjNzcNWHyrfCRj.tnKHSJNzuzd\",\n  \"title\": \"string\",\n  \"status\": 7335,\n  \"detail\": \"string\",\n  \"code\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"detail\": \"string\",\n      \"pointer\": \"string\",\n      \"parameter\": \"string\"\n    },\n    {\n      \"detail\": \"string\",\n      \"pointer\": \"string\",\n      \"parameter\": \"string\"\n    }\n  ],\n  \"limit\": \"string\",\n  \"retry_after\": 4401\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ]
    },
    {
      "name": "Comparison sets",
      "description": "A comparison set is one of your products plus the same item at each competitor, with their latest prices.\nUse it for price checks and ERP syncs.\n",
      "item": [
        {
          "name": "List comparison sets",
          "request": {
            "name": "List comparison sets",
            "description": {
              "content": "Returns your comparison sets: each of your products with every competitor's price and when it was last\ncollected.\n\nCall it in one of two ways:\n\n- **Look up SKUs.** Repeat `sku` for up to 100 of your SKUs: `?sku=10072L&sku=11247P`. `data` holds a set\n  for each SKU that has one, and `skus` gives each SKU's status: `found`, `no_comparison_set` or `unknown_sku`.\n- **Sync everything.** Leave out `sku` and follow `next_cursor` until it is `null`.\n\nRate-limit cost: with `sku`, 1 unit per 25 SKUs (rounded up); without it, 1 unit per 100 of `limit`\n(rounded up). Every other endpoint costs 1 unit.\n\nPack and case codes answer `unknown_sku` until you link them. GetPrice never converts unit prices into pack\nprices. Suppressed prices and rejected matches are never returned. Delisted competitor products appear only\nwith `include_delisted=true`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "comparison-sets"
              ],
              "host": [
                "{{base_url}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "description": {
                    "content": "Your SKU. Repeat the parameter for several SKUs (`?sku=A&sku=B`), up to 100. Commas are part of the\nSKU, not separators. Matching ignores case and surrounding spaces; every other character (including\nleading zeros) counts: `00981A` and `981A` are different SKUs.\n",
                    "type": "text/plain"
                  },
                  "key": "sku",
                  "value": "10072L"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "`customer` returns only competitors your own users have confirmed. Omit for every competitor in the set. (This can only be one of customer)",
                    "type": "text/plain"
                  },
                  "key": "reviewed_by",
                  "value": "customer"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "`true` also returns competitor products that are no longer listed (`status: delisted`).",
                    "type": "text/plain"
                  },
                  "key": "include_delisted",
                  "value": "false"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Items per page. Default 100. Values above 500 are treated as 500.",
                    "type": "text/plain"
                  },
                  "key": "limit",
                  "value": "100"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "The `next_cursor` from the previous page. Opaque — pass it back unchanged, together with the **same**\nfilters, on the same endpoint, as the first request (otherwise 400 `cursor_mismatch`).\n",
                    "type": "text/plain"
                  },
                  "key": "cursor",
                  "value": "string"
                }
              ],
              "variable": [],
              "raw": "{{base_url}}/comparison-sets?sku=10072L"
            },
            "header": [
              {
                "disabled": true,
                "description": {
                  "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                  "type": "text/plain"
                },
                "key": "If-None-Match",
                "value": "W/\"9f3c1e\""
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "body": {}
          },
          "response": [
            {
              "name": "200 OK",
              "originalRequest": {
                "url": {
                  "path": [
                    "comparison-sets"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "Your SKU. Repeat the parameter for several SKUs (`?sku=A&sku=B`), up to 100. Commas are part of the\nSKU, not separators. Matching ignores case and surrounding spaces; every other character (including\nleading zeros) counts: `00981A` and `981A` are different SKUs.\n",
                        "type": "text/plain"
                      },
                      "key": "sku",
                      "value": "10072L"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "`customer` returns only competitors your own users have confirmed. Omit for every competitor in the set. (This can only be one of customer)",
                        "type": "text/plain"
                      },
                      "key": "reviewed_by",
                      "value": "customer"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "`true` also returns competitor products that are no longer listed (`status: delisted`).",
                        "type": "text/plain"
                      },
                      "key": "include_delisted",
                      "value": "false"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Items per page. Default 100. Values above 500 are treated as 500.",
                        "type": "text/plain"
                      },
                      "key": "limit",
                      "value": "100"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "The `next_cursor` from the previous page. Opaque — pass it back unchanged, together with the **same**\nfilters, on the same endpoint, as the first request (otherwise 400 `cursor_mismatch`).\n",
                        "type": "text/plain"
                      },
                      "key": "cursor",
                      "value": "string"
                    }
                  ],
                  "variable": [],
                  "raw": "{{base_url}}/comparison-sets?sku=10072L"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "ETag",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Limit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Remaining",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Reset",
                  "value": ""
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"set_x7Kp2Lm9\",\n      \"name\": \"Baked Beans in Tomato Sauce 410g\",\n      \"sku\": \"10072L\",\n      \"own_product\": {\n        \"id\": \"prd_8fK2mQa1\",\n        \"name\": \"Baked Beans in Tomato Sauce 410g\",\n        \"url\": \"https://shop.example.com/product/10072L\",\n        \"price\": {\n          \"amount\": \"18.99\",\n          \"was\": null,\n          \"currency\": \"ZAR\"\n        },\n        \"last_collected_at\": \"2026-11-02T04:12:09Z\",\n        \"stale\": false\n      },\n      \"competitors\": [\n        {\n          \"competitor\": {\n            \"id\": \"cmp_3LqV8nP2\",\n            \"name\": \"Harbour Market\",\n            \"domain\": \"harbourmarket.example.com\"\n          },\n          \"product\": {\n            \"id\": \"prd_Q2vN9cD4\",\n            \"name\": \"Baked Beans 410g\",\n            \"url\": \"https://harbourmarket.example.com/baked-beans-in-tomato-sauce-410g\"\n          },\n          \"price\": {\n            \"amount\": \"17.99\",\n            \"was\": \"19.99\",\n            \"currency\": \"ZAR\"\n          },\n          \"last_collected_at\": \"2026-11-02T03:05:11Z\",\n          \"availability\": \"unknown\",\n          \"status\": \"active\",\n          \"stale\": false,\n          \"match\": {\n            \"review\": \"same\",\n            \"reviewed_by\": \"customer\",\n            \"confidence\": null\n          }\n        },\n        {\n          \"competitor\": {\n            \"id\": \"cmp_7RwK4tB9\",\n            \"name\": \"Cape Fresh\",\n            \"domain\": \"capefresh.example.com\"\n          },\n          \"product\": {\n            \"id\": \"prd_Hm3Wc8Kp\",\n            \"name\": \"Baked Beans In Tomato Sauce 410g\",\n            \"url\": \"https://capefresh.example.com/baked-beans-in-tomato-sauce-410g\"\n          },\n          \"price\": {\n            \"amount\": \"18.99\",\n            \"was\": null,\n            \"currency\": \"ZAR\"\n          },\n          \"last_collected_at\": \"2026-11-02T03:11:40Z\",\n          \"availability\": \"unknown\",\n          \"status\": \"active\",\n          \"stale\": false,\n          \"match\": {\n            \"review\": \"same\",\n            \"reviewed_by\": \"getprice\",\n            \"confidence\": 0.94\n          }\n        },\n        {\n          \"competitor\": {\n            \"id\": \"cmp_9TzM2cX5\",\n            \"name\": \"Northwind Wholesale\",\n            \"domain\": \"northwindwholesale.example.com\"\n          },\n          \"product\": {\n            \"id\": \"prd_Zt6Pa2Rn\",\n            \"name\": \"Baked Beans In Tomato Sauce 410g\",\n            \"url\": \"https://northwindwholesale.example.com/baked-beans-in-tomato-sauce-410g\"\n          },\n          \"price\": {\n            \"amount\": \"17.99\",\n            \"was\": null,\n            \"currency\": \"ZAR\"\n          },\n          \"last_collected_at\": \"2026-11-02T03:20:05Z\",\n          \"availability\": \"unknown\",\n          \"status\": \"active\",\n          \"stale\": false,\n          \"match\": {\n            \"review\": \"unreviewed\",\n            \"reviewed_by\": null,\n            \"confidence\": 0.81\n          }\n        },\n        {\n          \"competitor\": {\n            \"id\": \"cmp_2HdR6wJ3\",\n            \"name\": \"Metro Bulk\",\n            \"domain\": \"metrobulk.example.com\"\n          },\n          \"product\": {\n            \"id\": \"prd_Yc1Ke7Fs\",\n            \"name\": \"Baked Beans in Tomato Sauce 24 x 410g\",\n            \"url\": \"https://metrobulk.example.com/baked-beans-24x410g\"\n          },\n          \"price\": {\n            \"amount\": \"429.00\",\n            \"was\": null,\n            \"currency\": \"ZAR\"\n          },\n          \"last_collected_at\": \"2026-10-24T04:31:58Z\",\n          \"availability\": \"unknown\",\n          \"status\": \"active\",\n          \"stale\": true,\n          \"match\": {\n            \"review\": \"with_differences\",\n            \"reviewed_by\": \"customer\",\n            \"confidence\": null\n          }\n        }\n      ],\n      \"integrity\": \"ok\",\n      \"updated_at\": \"2026-11-02T04:14:00Z\"\n    }\n  ],\n  \"next_cursor\": null,\n  \"skus\": [\n    {\n      \"sku\": \"10072L\",\n      \"status\": \"found\",\n      \"set_id\": \"set_x7Kp2Lm9\",\n      \"product_id\": \"prd_8fK2mQa1\"\n    },\n    {\n      \"sku\": \"11893L\",\n      \"status\": \"no_comparison_set\",\n      \"set_id\": null,\n      \"product_id\": \"prd_Zt41Hq6m\"\n    },\n    {\n      \"sku\": \"11247P\",\n      \"status\": \"unknown_sku\",\n      \"set_id\": null,\n      \"product_id\": null\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "304 Not Modified",
              "originalRequest": {
                "url": {
                  "path": [
                    "comparison-sets"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "Your SKU. Repeat the parameter for several SKUs (`?sku=A&sku=B`), up to 100. Commas are part of the\nSKU, not separators. Matching ignores case and surrounding spaces; every other character (including\nleading zeros) counts: `00981A` and `981A` are different SKUs.\n",
                        "type": "text/plain"
                      },
                      "key": "sku",
                      "value": "10072L"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "`customer` returns only competitors your own users have confirmed. Omit for every competitor in the set. (This can only be one of customer)",
                        "type": "text/plain"
                      },
                      "key": "reviewed_by",
                      "value": "customer"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "`true` also returns competitor products that are no longer listed (`status: delisted`).",
                        "type": "text/plain"
                      },
                      "key": "include_delisted",
                      "value": "false"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Items per page. Default 100. Values above 500 are treated as 500.",
                        "type": "text/plain"
                      },
                      "key": "limit",
                      "value": "100"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "The `next_cursor` from the previous page. Opaque — pass it back unchanged, together with the **same**\nfilters, on the same endpoint, as the first request (otherwise 400 `cursor_mismatch`).\n",
                        "type": "text/plain"
                      },
                      "key": "cursor",
                      "value": "string"
                    }
                  ],
                  "variable": [],
                  "raw": "{{base_url}}/comparison-sets?sku=10072L"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Modified",
              "code": 304,
              "header": [
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "ETag",
                  "value": ""
                }
              ],
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "name": "400 Bad Request",
              "originalRequest": {
                "url": {
                  "path": [
                    "comparison-sets"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "Your SKU. Repeat the parameter for several SKUs (`?sku=A&sku=B`), up to 100. Commas are part of the\nSKU, not separators. Matching ignores case and surrounding spaces; every other character (including\nleading zeros) counts: `00981A` and `981A` are different SKUs.\n",
                        "type": "text/plain"
                      },
                      "key": "sku",
                      "value": "10072L"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "`customer` returns only competitors your own users have confirmed. Omit for every competitor in the set. (This can only be one of customer)",
                        "type": "text/plain"
                      },
                      "key": "reviewed_by",
                      "value": "customer"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "`true` also returns competitor products that are no longer listed (`status: delisted`).",
                        "type": "text/plain"
                      },
                      "key": "include_delisted",
                      "value": "false"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Items per page. Default 100. Values above 500 are treated as 500.",
                        "type": "text/plain"
                      },
                      "key": "limit",
                      "value": "100"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "The `next_cursor` from the previous page. Opaque — pass it back unchanged, together with the **same**\nfilters, on the same endpoint, as the first request (otherwise 400 `cursor_mismatch`).\n",
                        "type": "text/plain"
                      },
                      "key": "cursor",
                      "value": "string"
                    }
                  ],
                  "variable": [],
                  "raw": "{{base_url}}/comparison-sets?sku=10072L"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/unknown-parameter\",\n  \"title\": \"Unknown query parameter\",\n  \"status\": 400,\n  \"detail\": \"Unknown query parameter 'update_since'.\",\n  \"code\": \"unknown_parameter\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\",\n  \"errors\": [\n    {\n      \"parameter\": \"update_since\",\n      \"detail\": \"Not a parameter of this endpoint.\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "401 Unauthorized",
              "originalRequest": {
                "url": {
                  "path": [
                    "comparison-sets"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "Your SKU. Repeat the parameter for several SKUs (`?sku=A&sku=B`), up to 100. Commas are part of the\nSKU, not separators. Matching ignores case and surrounding spaces; every other character (including\nleading zeros) counts: `00981A` and `981A` are different SKUs.\n",
                        "type": "text/plain"
                      },
                      "key": "sku",
                      "value": "10072L"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "`customer` returns only competitors your own users have confirmed. Omit for every competitor in the set. (This can only be one of customer)",
                        "type": "text/plain"
                      },
                      "key": "reviewed_by",
                      "value": "customer"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "`true` also returns competitor products that are no longer listed (`status: delisted`).",
                        "type": "text/plain"
                      },
                      "key": "include_delisted",
                      "value": "false"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Items per page. Default 100. Values above 500 are treated as 500.",
                        "type": "text/plain"
                      },
                      "key": "limit",
                      "value": "100"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "The `next_cursor` from the previous page. Opaque — pass it back unchanged, together with the **same**\nfilters, on the same endpoint, as the first request (otherwise 400 `cursor_mismatch`).\n",
                        "type": "text/plain"
                      },
                      "key": "cursor",
                      "value": "string"
                    }
                  ],
                  "variable": [],
                  "raw": "{{base_url}}/comparison-sets?sku=10072L"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "WWW-Authenticate",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/unauthenticated\",\n  \"title\": \"Authentication required\",\n  \"status\": 401,\n  \"detail\": \"Send your API key as 'Authorization: Bearer gp_live_…'.\",\n  \"code\": \"unauthenticated\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "403 Forbidden",
              "originalRequest": {
                "url": {
                  "path": [
                    "comparison-sets"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "Your SKU. Repeat the parameter for several SKUs (`?sku=A&sku=B`), up to 100. Commas are part of the\nSKU, not separators. Matching ignores case and surrounding spaces; every other character (including\nleading zeros) counts: `00981A` and `981A` are different SKUs.\n",
                        "type": "text/plain"
                      },
                      "key": "sku",
                      "value": "10072L"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "`customer` returns only competitors your own users have confirmed. Omit for every competitor in the set. (This can only be one of customer)",
                        "type": "text/plain"
                      },
                      "key": "reviewed_by",
                      "value": "customer"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "`true` also returns competitor products that are no longer listed (`status: delisted`).",
                        "type": "text/plain"
                      },
                      "key": "include_delisted",
                      "value": "false"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Items per page. Default 100. Values above 500 are treated as 500.",
                        "type": "text/plain"
                      },
                      "key": "limit",
                      "value": "100"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "The `next_cursor` from the previous page. Opaque — pass it back unchanged, together with the **same**\nfilters, on the same endpoint, as the first request (otherwise 400 `cursor_mismatch`).\n",
                        "type": "text/plain"
                      },
                      "key": "cursor",
                      "value": "string"
                    }
                  ],
                  "variable": [],
                  "raw": "{{base_url}}/comparison-sets?sku=10072L"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/insufficient-scope\",\n  \"title\": \"Insufficient scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint needs the 'skus:write' scope.\",\n  \"code\": \"insufficient_scope\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "429 Too Many Requests",
              "originalRequest": {
                "url": {
                  "path": [
                    "comparison-sets"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "Your SKU. Repeat the parameter for several SKUs (`?sku=A&sku=B`), up to 100. Commas are part of the\nSKU, not separators. Matching ignores case and surrounding spaces; every other character (including\nleading zeros) counts: `00981A` and `981A` are different SKUs.\n",
                        "type": "text/plain"
                      },
                      "key": "sku",
                      "value": "10072L"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "`customer` returns only competitors your own users have confirmed. Omit for every competitor in the set. (This can only be one of customer)",
                        "type": "text/plain"
                      },
                      "key": "reviewed_by",
                      "value": "customer"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "`true` also returns competitor products that are no longer listed (`status: delisted`).",
                        "type": "text/plain"
                      },
                      "key": "include_delisted",
                      "value": "false"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Items per page. Default 100. Values above 500 are treated as 500.",
                        "type": "text/plain"
                      },
                      "key": "limit",
                      "value": "100"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "The `next_cursor` from the previous page. Opaque — pass it back unchanged, together with the **same**\nfilters, on the same endpoint, as the first request (otherwise 400 `cursor_mismatch`).\n",
                        "type": "text/plain"
                      },
                      "key": "cursor",
                      "value": "string"
                    }
                  ],
                  "variable": [],
                  "raw": "{{base_url}}/comparison-sets?sku=10072L"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Limit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Remaining",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Reset",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/rate-limited\",\n  \"title\": \"Rate limit exceeded\",\n  \"status\": 429,\n  \"detail\": \"Sustained limit of 120 requests per minute reached for this API key.\",\n  \"code\": \"rate_limited\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\",\n  \"limit\": \"sustained\",\n  \"retry_after\": 21\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "500 Internal Server Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "comparison-sets"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "Your SKU. Repeat the parameter for several SKUs (`?sku=A&sku=B`), up to 100. Commas are part of the\nSKU, not separators. Matching ignores case and surrounding spaces; every other character (including\nleading zeros) counts: `00981A` and `981A` are different SKUs.\n",
                        "type": "text/plain"
                      },
                      "key": "sku",
                      "value": "10072L"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "`customer` returns only competitors your own users have confirmed. Omit for every competitor in the set. (This can only be one of customer)",
                        "type": "text/plain"
                      },
                      "key": "reviewed_by",
                      "value": "customer"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "`true` also returns competitor products that are no longer listed (`status: delisted`).",
                        "type": "text/plain"
                      },
                      "key": "include_delisted",
                      "value": "false"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Items per page. Default 100. Values above 500 are treated as 500.",
                        "type": "text/plain"
                      },
                      "key": "limit",
                      "value": "100"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "The `next_cursor` from the previous page. Opaque — pass it back unchanged, together with the **same**\nfilters, on the same endpoint, as the first request (otherwise 400 `cursor_mismatch`).\n",
                        "type": "text/plain"
                      },
                      "key": "cursor",
                      "value": "string"
                    }
                  ],
                  "variable": [],
                  "raw": "{{base_url}}/comparison-sets?sku=10072L"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://wjNzcNWHyrfCRj.tnKHSJNzuzd\",\n  \"title\": \"string\",\n  \"status\": 7335,\n  \"detail\": \"string\",\n  \"code\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"detail\": \"string\",\n      \"pointer\": \"string\",\n      \"parameter\": \"string\"\n    },\n    {\n      \"detail\": \"string\",\n      \"pointer\": \"string\",\n      \"parameter\": \"string\"\n    }\n  ],\n  \"limit\": \"string\",\n  \"retry_after\": 4401\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "503 Service Unavailable",
              "originalRequest": {
                "url": {
                  "path": [
                    "comparison-sets"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "Your SKU. Repeat the parameter for several SKUs (`?sku=A&sku=B`), up to 100. Commas are part of the\nSKU, not separators. Matching ignores case and surrounding spaces; every other character (including\nleading zeros) counts: `00981A` and `981A` are different SKUs.\n",
                        "type": "text/plain"
                      },
                      "key": "sku",
                      "value": "10072L"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "`customer` returns only competitors your own users have confirmed. Omit for every competitor in the set. (This can only be one of customer)",
                        "type": "text/plain"
                      },
                      "key": "reviewed_by",
                      "value": "customer"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "`true` also returns competitor products that are no longer listed (`status: delisted`).",
                        "type": "text/plain"
                      },
                      "key": "include_delisted",
                      "value": "false"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Items per page. Default 100. Values above 500 are treated as 500.",
                        "type": "text/plain"
                      },
                      "key": "limit",
                      "value": "100"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "The `next_cursor` from the previous page. Opaque — pass it back unchanged, together with the **same**\nfilters, on the same endpoint, as the first request (otherwise 400 `cursor_mismatch`).\n",
                        "type": "text/plain"
                      },
                      "key": "cursor",
                      "value": "string"
                    }
                  ],
                  "variable": [],
                  "raw": "{{base_url}}/comparison-sets?sku=10072L"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Service Unavailable",
              "code": 503,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "Retry-After",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://wjNzcNWHyrfCRj.tnKHSJNzuzd\",\n  \"title\": \"string\",\n  \"status\": 7335,\n  \"detail\": \"string\",\n  \"code\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"detail\": \"string\",\n      \"pointer\": \"string\",\n      \"parameter\": \"string\"\n    },\n    {\n      \"detail\": \"string\",\n      \"pointer\": \"string\",\n      \"parameter\": \"string\"\n    }\n  ],\n  \"limit\": \"string\",\n  \"retry_after\": 4401\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "name": "Retrieve a comparison set",
          "request": {
            "name": "Retrieve a comparison set",
            "description": {
              "content": "Returns the comparison set with the given id. If the set was merged into another one, you get the surviving\nset, and its `id` differs from the one you asked for.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "comparison-sets",
                ":set_id"
              ],
              "host": [
                "{{base_url}}"
              ],
              "query": [
                {
                  "disabled": true,
                  "description": {
                    "content": "`customer` returns only competitors your own users have confirmed. Omit for every competitor in the set. (This can only be one of customer)",
                    "type": "text/plain"
                  },
                  "key": "reviewed_by",
                  "value": "customer"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "`true` also returns competitor products that are no longer listed (`status: delisted`).",
                    "type": "text/plain"
                  },
                  "key": "include_delisted",
                  "value": "false"
                }
              ],
              "variable": [
                {
                  "type": "any",
                  "value": "set_x7Kp2Lm9",
                  "key": "set_id",
                  "disabled": false,
                  "description": {
                    "content": "(Required) The set id, e.g. `set_x7Kp2Lm9`.",
                    "type": "text/plain"
                  }
                }
              ],
              "raw": "{{base_url}}/comparison-sets/:set_id"
            },
            "header": [
              {
                "disabled": true,
                "description": {
                  "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                  "type": "text/plain"
                },
                "key": "If-None-Match",
                "value": "W/\"9f3c1e\""
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "body": {}
          },
          "response": [
            {
              "name": "200 OK",
              "originalRequest": {
                "url": {
                  "path": [
                    "comparison-sets",
                    ":set_id"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "`customer` returns only competitors your own users have confirmed. Omit for every competitor in the set. (This can only be one of customer)",
                        "type": "text/plain"
                      },
                      "key": "reviewed_by",
                      "value": "customer"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "`true` also returns competitor products that are no longer listed (`status: delisted`).",
                        "type": "text/plain"
                      },
                      "key": "include_delisted",
                      "value": "false"
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) The set id, e.g. `set_x7Kp2Lm9`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "set_x7Kp2Lm9",
                      "key": "set_id"
                    }
                  ],
                  "raw": "{{base_url}}/comparison-sets/:set_id"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "ETag",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Limit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Remaining",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Reset",
                  "value": ""
                }
              ],
              "body": "{\n  \"id\": \"set_x7Kp2Lm9\",\n  \"name\": \"Baked Beans in Tomato Sauce 410g\",\n  \"sku\": \"10072L\",\n  \"own_product\": {\n    \"id\": \"prd_8fK2mQa1\",\n    \"name\": \"Baked Beans in Tomato Sauce 410g\",\n    \"url\": \"https://shop.example.com/product/10072L\",\n    \"price\": {\n      \"amount\": \"18.99\",\n      \"was\": null,\n      \"currency\": \"ZAR\"\n    },\n    \"last_collected_at\": \"2026-11-02T04:12:09Z\",\n    \"stale\": false\n  },\n  \"competitors\": [\n    {\n      \"competitor\": {\n        \"id\": \"cmp_3LqV8nP2\",\n        \"name\": \"Harbour Market\",\n        \"domain\": \"harbourmarket.example.com\"\n      },\n      \"product\": {\n        \"id\": \"prd_Q2vN9cD4\",\n        \"name\": \"Baked Beans 410g\",\n        \"url\": \"https://harbourmarket.example.com/baked-beans-in-tomato-sauce-410g\"\n      },\n      \"price\": {\n        \"amount\": \"17.99\",\n        \"was\": \"19.99\",\n        \"currency\": \"ZAR\"\n      },\n      \"last_collected_at\": \"2026-11-02T03:05:11Z\",\n      \"availability\": \"unknown\",\n      \"status\": \"active\",\n      \"stale\": false,\n      \"match\": {\n        \"review\": \"same\",\n        \"reviewed_by\": \"customer\",\n        \"confidence\": null\n      }\n    },\n    {\n      \"competitor\": {\n        \"id\": \"cmp_7RwK4tB9\",\n        \"name\": \"Cape Fresh\",\n        \"domain\": \"capefresh.example.com\"\n      },\n      \"product\": {\n        \"id\": \"prd_Hm3Wc8Kp\",\n        \"name\": \"Baked Beans In Tomato Sauce 410g\",\n        \"url\": \"https://capefresh.example.com/baked-beans-in-tomato-sauce-410g\"\n      },\n      \"price\": {\n        \"amount\": \"18.99\",\n        \"was\": null,\n        \"currency\": \"ZAR\"\n      },\n      \"last_collected_at\": \"2026-11-02T03:11:40Z\",\n      \"availability\": \"unknown\",\n      \"status\": \"active\",\n      \"stale\": false,\n      \"match\": {\n        \"review\": \"same\",\n        \"reviewed_by\": \"getprice\",\n        \"confidence\": 0.94\n      }\n    },\n    {\n      \"competitor\": {\n        \"id\": \"cmp_9TzM2cX5\",\n        \"name\": \"Northwind Wholesale\",\n        \"domain\": \"northwindwholesale.example.com\"\n      },\n      \"product\": {\n        \"id\": \"prd_Zt6Pa2Rn\",\n        \"name\": \"Baked Beans In Tomato Sauce 410g\",\n        \"url\": \"https://northwindwholesale.example.com/baked-beans-in-tomato-sauce-410g\"\n      },\n      \"price\": {\n        \"amount\": \"17.99\",\n        \"was\": null,\n        \"currency\": \"ZAR\"\n      },\n      \"last_collected_at\": \"2026-11-02T03:20:05Z\",\n      \"availability\": \"unknown\",\n      \"status\": \"active\",\n      \"stale\": false,\n      \"match\": {\n        \"review\": \"unreviewed\",\n        \"reviewed_by\": null,\n        \"confidence\": 0.81\n      }\n    },\n    {\n      \"competitor\": {\n        \"id\": \"cmp_2HdR6wJ3\",\n        \"name\": \"Metro Bulk\",\n        \"domain\": \"metrobulk.example.com\"\n      },\n      \"product\": {\n        \"id\": \"prd_Yc1Ke7Fs\",\n        \"name\": \"Baked Beans in Tomato Sauce 24 x 410g\",\n        \"url\": \"https://metrobulk.example.com/baked-beans-24x410g\"\n      },\n      \"price\": {\n        \"amount\": \"429.00\",\n        \"was\": null,\n        \"currency\": \"ZAR\"\n      },\n      \"last_collected_at\": \"2026-10-24T04:31:58Z\",\n      \"availability\": \"unknown\",\n      \"status\": \"active\",\n      \"stale\": true,\n      \"match\": {\n        \"review\": \"with_differences\",\n        \"reviewed_by\": \"customer\",\n        \"confidence\": null\n      }\n    }\n  ],\n  \"integrity\": \"ok\",\n  \"updated_at\": \"2026-11-02T04:14:00Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "304 Not Modified",
              "originalRequest": {
                "url": {
                  "path": [
                    "comparison-sets",
                    ":set_id"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "`customer` returns only competitors your own users have confirmed. Omit for every competitor in the set. (This can only be one of customer)",
                        "type": "text/plain"
                      },
                      "key": "reviewed_by",
                      "value": "customer"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "`true` also returns competitor products that are no longer listed (`status: delisted`).",
                        "type": "text/plain"
                      },
                      "key": "include_delisted",
                      "value": "false"
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) The set id, e.g. `set_x7Kp2Lm9`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "set_x7Kp2Lm9",
                      "key": "set_id"
                    }
                  ],
                  "raw": "{{base_url}}/comparison-sets/:set_id"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Modified",
              "code": 304,
              "header": [
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "ETag",
                  "value": ""
                }
              ],
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "name": "400 Bad Request",
              "originalRequest": {
                "url": {
                  "path": [
                    "comparison-sets",
                    ":set_id"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "`customer` returns only competitors your own users have confirmed. Omit for every competitor in the set. (This can only be one of customer)",
                        "type": "text/plain"
                      },
                      "key": "reviewed_by",
                      "value": "customer"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "`true` also returns competitor products that are no longer listed (`status: delisted`).",
                        "type": "text/plain"
                      },
                      "key": "include_delisted",
                      "value": "false"
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) The set id, e.g. `set_x7Kp2Lm9`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "set_x7Kp2Lm9",
                      "key": "set_id"
                    }
                  ],
                  "raw": "{{base_url}}/comparison-sets/:set_id"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/unknown-parameter\",\n  \"title\": \"Unknown query parameter\",\n  \"status\": 400,\n  \"detail\": \"Unknown query parameter 'update_since'.\",\n  \"code\": \"unknown_parameter\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\",\n  \"errors\": [\n    {\n      \"parameter\": \"update_since\",\n      \"detail\": \"Not a parameter of this endpoint.\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "401 Unauthorized",
              "originalRequest": {
                "url": {
                  "path": [
                    "comparison-sets",
                    ":set_id"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "`customer` returns only competitors your own users have confirmed. Omit for every competitor in the set. (This can only be one of customer)",
                        "type": "text/plain"
                      },
                      "key": "reviewed_by",
                      "value": "customer"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "`true` also returns competitor products that are no longer listed (`status: delisted`).",
                        "type": "text/plain"
                      },
                      "key": "include_delisted",
                      "value": "false"
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) The set id, e.g. `set_x7Kp2Lm9`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "set_x7Kp2Lm9",
                      "key": "set_id"
                    }
                  ],
                  "raw": "{{base_url}}/comparison-sets/:set_id"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "WWW-Authenticate",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/unauthenticated\",\n  \"title\": \"Authentication required\",\n  \"status\": 401,\n  \"detail\": \"Send your API key as 'Authorization: Bearer gp_live_…'.\",\n  \"code\": \"unauthenticated\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "403 Forbidden",
              "originalRequest": {
                "url": {
                  "path": [
                    "comparison-sets",
                    ":set_id"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "`customer` returns only competitors your own users have confirmed. Omit for every competitor in the set. (This can only be one of customer)",
                        "type": "text/plain"
                      },
                      "key": "reviewed_by",
                      "value": "customer"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "`true` also returns competitor products that are no longer listed (`status: delisted`).",
                        "type": "text/plain"
                      },
                      "key": "include_delisted",
                      "value": "false"
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) The set id, e.g. `set_x7Kp2Lm9`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "set_x7Kp2Lm9",
                      "key": "set_id"
                    }
                  ],
                  "raw": "{{base_url}}/comparison-sets/:set_id"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/insufficient-scope\",\n  \"title\": \"Insufficient scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint needs the 'skus:write' scope.\",\n  \"code\": \"insufficient_scope\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "404 Not Found",
              "originalRequest": {
                "url": {
                  "path": [
                    "comparison-sets",
                    ":set_id"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "`customer` returns only competitors your own users have confirmed. Omit for every competitor in the set. (This can only be one of customer)",
                        "type": "text/plain"
                      },
                      "key": "reviewed_by",
                      "value": "customer"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "`true` also returns competitor products that are no longer listed (`status: delisted`).",
                        "type": "text/plain"
                      },
                      "key": "include_delisted",
                      "value": "false"
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) The set id, e.g. `set_x7Kp2Lm9`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "set_x7Kp2Lm9",
                      "key": "set_id"
                    }
                  ],
                  "raw": "{{base_url}}/comparison-sets/:set_id"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/not-found\",\n  \"title\": \"Not found\",\n  \"status\": 404,\n  \"detail\": \"No comparison set with this id.\",\n  \"code\": \"not_found\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "429 Too Many Requests",
              "originalRequest": {
                "url": {
                  "path": [
                    "comparison-sets",
                    ":set_id"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "`customer` returns only competitors your own users have confirmed. Omit for every competitor in the set. (This can only be one of customer)",
                        "type": "text/plain"
                      },
                      "key": "reviewed_by",
                      "value": "customer"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "`true` also returns competitor products that are no longer listed (`status: delisted`).",
                        "type": "text/plain"
                      },
                      "key": "include_delisted",
                      "value": "false"
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) The set id, e.g. `set_x7Kp2Lm9`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "set_x7Kp2Lm9",
                      "key": "set_id"
                    }
                  ],
                  "raw": "{{base_url}}/comparison-sets/:set_id"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Limit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Remaining",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Reset",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/rate-limited\",\n  \"title\": \"Rate limit exceeded\",\n  \"status\": 429,\n  \"detail\": \"Sustained limit of 120 requests per minute reached for this API key.\",\n  \"code\": \"rate_limited\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\",\n  \"limit\": \"sustained\",\n  \"retry_after\": 21\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "500 Internal Server Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "comparison-sets",
                    ":set_id"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "`customer` returns only competitors your own users have confirmed. Omit for every competitor in the set. (This can only be one of customer)",
                        "type": "text/plain"
                      },
                      "key": "reviewed_by",
                      "value": "customer"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "`true` also returns competitor products that are no longer listed (`status: delisted`).",
                        "type": "text/plain"
                      },
                      "key": "include_delisted",
                      "value": "false"
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) The set id, e.g. `set_x7Kp2Lm9`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "set_x7Kp2Lm9",
                      "key": "set_id"
                    }
                  ],
                  "raw": "{{base_url}}/comparison-sets/:set_id"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://wjNzcNWHyrfCRj.tnKHSJNzuzd\",\n  \"title\": \"string\",\n  \"status\": 7335,\n  \"detail\": \"string\",\n  \"code\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"detail\": \"string\",\n      \"pointer\": \"string\",\n      \"parameter\": \"string\"\n    },\n    {\n      \"detail\": \"string\",\n      \"pointer\": \"string\",\n      \"parameter\": \"string\"\n    }\n  ],\n  \"limit\": \"string\",\n  \"retry_after\": 4401\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "503 Service Unavailable",
              "originalRequest": {
                "url": {
                  "path": [
                    "comparison-sets",
                    ":set_id"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "`customer` returns only competitors your own users have confirmed. Omit for every competitor in the set. (This can only be one of customer)",
                        "type": "text/plain"
                      },
                      "key": "reviewed_by",
                      "value": "customer"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "`true` also returns competitor products that are no longer listed (`status: delisted`).",
                        "type": "text/plain"
                      },
                      "key": "include_delisted",
                      "value": "false"
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) The set id, e.g. `set_x7Kp2Lm9`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "set_x7Kp2Lm9",
                      "key": "set_id"
                    }
                  ],
                  "raw": "{{base_url}}/comparison-sets/:set_id"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Service Unavailable",
              "code": 503,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "Retry-After",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://wjNzcNWHyrfCRj.tnKHSJNzuzd\",\n  \"title\": \"string\",\n  \"status\": 7335,\n  \"detail\": \"string\",\n  \"code\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"detail\": \"string\",\n      \"pointer\": \"string\",\n      \"parameter\": \"string\"\n    },\n    {\n      \"detail\": \"string\",\n      \"pointer\": \"string\",\n      \"parameter\": \"string\"\n    }\n  ],\n  \"limit\": \"string\",\n  \"retry_after\": 4401\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ]
    },
    {
      "name": "Products",
      "description": "Your own products, as GetPrice collects them from your online shop.",
      "item": [
        {
          "name": "List your products",
          "request": {
            "name": "List your products",
            "description": {
              "content": "Returns your own products, as GetPrice collects them from your online shop. Search by name with `q`, and add\n`unmapped=true` to find products with no SKU linked. That gives you the `prd_…` id to link with\n`PUT /v1/sku-mappings/{sku}`. Filters combine.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "products"
              ],
              "host": [
                "{{base_url}}"
              ],
              "query": [
                {
                  "disabled": true,
                  "description": {
                    "content": "Your SKU. Repeat the parameter for several SKUs (`?sku=A&sku=B`), up to 100. Commas are part of the\nSKU, not separators. Matching ignores case and surrounding spaces; every other character (including\nleading zeros) counts: `00981A` and `981A` are different SKUs.\n",
                    "type": "text/plain"
                  },
                  "key": "sku",
                  "value": "10072L"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "Case-insensitive substring of the product name.",
                    "type": "text/plain"
                  },
                  "key": "q",
                  "value": "pilchards"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "`true` returns only products with no SKU linked.",
                    "type": "text/plain"
                  },
                  "key": "unmapped",
                  "value": "true"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "`true` also returns products no longer on your site (`status: delisted`).",
                    "type": "text/plain"
                  },
                  "key": "include_delisted",
                  "value": "false"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Items per page. Default 100. Values above 500 are treated as 500.",
                    "type": "text/plain"
                  },
                  "key": "limit",
                  "value": "100"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "The `next_cursor` from the previous page. Opaque — pass it back unchanged, together with the **same**\nfilters, on the same endpoint, as the first request (otherwise 400 `cursor_mismatch`).\n",
                    "type": "text/plain"
                  },
                  "key": "cursor",
                  "value": "string"
                }
              ],
              "variable": [],
              "raw": "{{base_url}}/products?q=pilchards&unmapped=true"
            },
            "header": [
              {
                "disabled": true,
                "description": {
                  "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                  "type": "text/plain"
                },
                "key": "If-None-Match",
                "value": "W/\"9f3c1e\""
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "body": {}
          },
          "response": [
            {
              "name": "200 OK",
              "originalRequest": {
                "url": {
                  "path": [
                    "products"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "Your SKU. Repeat the parameter for several SKUs (`?sku=A&sku=B`), up to 100. Commas are part of the\nSKU, not separators. Matching ignores case and surrounding spaces; every other character (including\nleading zeros) counts: `00981A` and `981A` are different SKUs.\n",
                        "type": "text/plain"
                      },
                      "key": "sku",
                      "value": "13817L"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "Case-insensitive substring of the product name.",
                        "type": "text/plain"
                      },
                      "key": "q",
                      "value": "pilchards"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "`true` returns only products with no SKU linked.",
                        "type": "text/plain"
                      },
                      "key": "unmapped",
                      "value": "true"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "`true` also returns products no longer on your site (`status: delisted`).",
                        "type": "text/plain"
                      },
                      "key": "include_delisted",
                      "value": "false"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Items per page. Default 100. Values above 500 are treated as 500.",
                        "type": "text/plain"
                      },
                      "key": "limit",
                      "value": "100"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "The `next_cursor` from the previous page. Opaque — pass it back unchanged, together with the **same**\nfilters, on the same endpoint, as the first request (otherwise 400 `cursor_mismatch`).\n",
                        "type": "text/plain"
                      },
                      "key": "cursor",
                      "value": "string"
                    }
                  ],
                  "variable": [],
                  "raw": "{{base_url}}/products?q=pilchards&unmapped=true"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "ETag",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Limit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Remaining",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Reset",
                  "value": ""
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"prd_Lp4sT1x9\",\n      \"name\": \"Pilchards in Tomato Sauce 400g\",\n      \"url\": \"https://shop.example.com/product/pilchards-in-tomato-sauce-400g\",\n      \"skus\": [],\n      \"comparison_set_id\": \"set_R4m8wQe2\",\n      \"price\": {\n        \"amount\": \"31.99\",\n        \"was\": \"33.99\",\n        \"currency\": \"ZAR\"\n      },\n      \"last_collected_at\": \"2026-11-02T04:12:31Z\",\n      \"status\": \"active\"\n    }\n  ],\n  \"next_cursor\": null\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "304 Not Modified",
              "originalRequest": {
                "url": {
                  "path": [
                    "products"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "Your SKU. Repeat the parameter for several SKUs (`?sku=A&sku=B`), up to 100. Commas are part of the\nSKU, not separators. Matching ignores case and surrounding spaces; every other character (including\nleading zeros) counts: `00981A` and `981A` are different SKUs.\n",
                        "type": "text/plain"
                      },
                      "key": "sku",
                      "value": "13817L"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "Case-insensitive substring of the product name.",
                        "type": "text/plain"
                      },
                      "key": "q",
                      "value": "pilchards"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "`true` returns only products with no SKU linked.",
                        "type": "text/plain"
                      },
                      "key": "unmapped",
                      "value": "true"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "`true` also returns products no longer on your site (`status: delisted`).",
                        "type": "text/plain"
                      },
                      "key": "include_delisted",
                      "value": "false"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Items per page. Default 100. Values above 500 are treated as 500.",
                        "type": "text/plain"
                      },
                      "key": "limit",
                      "value": "100"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "The `next_cursor` from the previous page. Opaque — pass it back unchanged, together with the **same**\nfilters, on the same endpoint, as the first request (otherwise 400 `cursor_mismatch`).\n",
                        "type": "text/plain"
                      },
                      "key": "cursor",
                      "value": "string"
                    }
                  ],
                  "variable": [],
                  "raw": "{{base_url}}/products?q=pilchards&unmapped=true"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Modified",
              "code": 304,
              "header": [
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "ETag",
                  "value": ""
                }
              ],
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "name": "400 Bad Request",
              "originalRequest": {
                "url": {
                  "path": [
                    "products"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "Your SKU. Repeat the parameter for several SKUs (`?sku=A&sku=B`), up to 100. Commas are part of the\nSKU, not separators. Matching ignores case and surrounding spaces; every other character (including\nleading zeros) counts: `00981A` and `981A` are different SKUs.\n",
                        "type": "text/plain"
                      },
                      "key": "sku",
                      "value": "13817L"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "Case-insensitive substring of the product name.",
                        "type": "text/plain"
                      },
                      "key": "q",
                      "value": "pilchards"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "`true` returns only products with no SKU linked.",
                        "type": "text/plain"
                      },
                      "key": "unmapped",
                      "value": "true"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "`true` also returns products no longer on your site (`status: delisted`).",
                        "type": "text/plain"
                      },
                      "key": "include_delisted",
                      "value": "false"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Items per page. Default 100. Values above 500 are treated as 500.",
                        "type": "text/plain"
                      },
                      "key": "limit",
                      "value": "100"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "The `next_cursor` from the previous page. Opaque — pass it back unchanged, together with the **same**\nfilters, on the same endpoint, as the first request (otherwise 400 `cursor_mismatch`).\n",
                        "type": "text/plain"
                      },
                      "key": "cursor",
                      "value": "string"
                    }
                  ],
                  "variable": [],
                  "raw": "{{base_url}}/products?q=pilchards&unmapped=true"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/unknown-parameter\",\n  \"title\": \"Unknown query parameter\",\n  \"status\": 400,\n  \"detail\": \"Unknown query parameter 'update_since'.\",\n  \"code\": \"unknown_parameter\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\",\n  \"errors\": [\n    {\n      \"parameter\": \"update_since\",\n      \"detail\": \"Not a parameter of this endpoint.\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "401 Unauthorized",
              "originalRequest": {
                "url": {
                  "path": [
                    "products"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "Your SKU. Repeat the parameter for several SKUs (`?sku=A&sku=B`), up to 100. Commas are part of the\nSKU, not separators. Matching ignores case and surrounding spaces; every other character (including\nleading zeros) counts: `00981A` and `981A` are different SKUs.\n",
                        "type": "text/plain"
                      },
                      "key": "sku",
                      "value": "13817L"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "Case-insensitive substring of the product name.",
                        "type": "text/plain"
                      },
                      "key": "q",
                      "value": "pilchards"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "`true` returns only products with no SKU linked.",
                        "type": "text/plain"
                      },
                      "key": "unmapped",
                      "value": "true"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "`true` also returns products no longer on your site (`status: delisted`).",
                        "type": "text/plain"
                      },
                      "key": "include_delisted",
                      "value": "false"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Items per page. Default 100. Values above 500 are treated as 500.",
                        "type": "text/plain"
                      },
                      "key": "limit",
                      "value": "100"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "The `next_cursor` from the previous page. Opaque — pass it back unchanged, together with the **same**\nfilters, on the same endpoint, as the first request (otherwise 400 `cursor_mismatch`).\n",
                        "type": "text/plain"
                      },
                      "key": "cursor",
                      "value": "string"
                    }
                  ],
                  "variable": [],
                  "raw": "{{base_url}}/products?q=pilchards&unmapped=true"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "WWW-Authenticate",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/unauthenticated\",\n  \"title\": \"Authentication required\",\n  \"status\": 401,\n  \"detail\": \"Send your API key as 'Authorization: Bearer gp_live_…'.\",\n  \"code\": \"unauthenticated\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "403 Forbidden",
              "originalRequest": {
                "url": {
                  "path": [
                    "products"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "Your SKU. Repeat the parameter for several SKUs (`?sku=A&sku=B`), up to 100. Commas are part of the\nSKU, not separators. Matching ignores case and surrounding spaces; every other character (including\nleading zeros) counts: `00981A` and `981A` are different SKUs.\n",
                        "type": "text/plain"
                      },
                      "key": "sku",
                      "value": "13817L"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "Case-insensitive substring of the product name.",
                        "type": "text/plain"
                      },
                      "key": "q",
                      "value": "pilchards"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "`true` returns only products with no SKU linked.",
                        "type": "text/plain"
                      },
                      "key": "unmapped",
                      "value": "true"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "`true` also returns products no longer on your site (`status: delisted`).",
                        "type": "text/plain"
                      },
                      "key": "include_delisted",
                      "value": "false"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Items per page. Default 100. Values above 500 are treated as 500.",
                        "type": "text/plain"
                      },
                      "key": "limit",
                      "value": "100"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "The `next_cursor` from the previous page. Opaque — pass it back unchanged, together with the **same**\nfilters, on the same endpoint, as the first request (otherwise 400 `cursor_mismatch`).\n",
                        "type": "text/plain"
                      },
                      "key": "cursor",
                      "value": "string"
                    }
                  ],
                  "variable": [],
                  "raw": "{{base_url}}/products?q=pilchards&unmapped=true"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/insufficient-scope\",\n  \"title\": \"Insufficient scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint needs the 'skus:write' scope.\",\n  \"code\": \"insufficient_scope\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "429 Too Many Requests",
              "originalRequest": {
                "url": {
                  "path": [
                    "products"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "Your SKU. Repeat the parameter for several SKUs (`?sku=A&sku=B`), up to 100. Commas are part of the\nSKU, not separators. Matching ignores case and surrounding spaces; every other character (including\nleading zeros) counts: `00981A` and `981A` are different SKUs.\n",
                        "type": "text/plain"
                      },
                      "key": "sku",
                      "value": "13817L"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "Case-insensitive substring of the product name.",
                        "type": "text/plain"
                      },
                      "key": "q",
                      "value": "pilchards"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "`true` returns only products with no SKU linked.",
                        "type": "text/plain"
                      },
                      "key": "unmapped",
                      "value": "true"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "`true` also returns products no longer on your site (`status: delisted`).",
                        "type": "text/plain"
                      },
                      "key": "include_delisted",
                      "value": "false"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Items per page. Default 100. Values above 500 are treated as 500.",
                        "type": "text/plain"
                      },
                      "key": "limit",
                      "value": "100"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "The `next_cursor` from the previous page. Opaque — pass it back unchanged, together with the **same**\nfilters, on the same endpoint, as the first request (otherwise 400 `cursor_mismatch`).\n",
                        "type": "text/plain"
                      },
                      "key": "cursor",
                      "value": "string"
                    }
                  ],
                  "variable": [],
                  "raw": "{{base_url}}/products?q=pilchards&unmapped=true"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Limit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Remaining",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Reset",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/rate-limited\",\n  \"title\": \"Rate limit exceeded\",\n  \"status\": 429,\n  \"detail\": \"Sustained limit of 120 requests per minute reached for this API key.\",\n  \"code\": \"rate_limited\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\",\n  \"limit\": \"sustained\",\n  \"retry_after\": 21\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "500 Internal Server Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "products"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "Your SKU. Repeat the parameter for several SKUs (`?sku=A&sku=B`), up to 100. Commas are part of the\nSKU, not separators. Matching ignores case and surrounding spaces; every other character (including\nleading zeros) counts: `00981A` and `981A` are different SKUs.\n",
                        "type": "text/plain"
                      },
                      "key": "sku",
                      "value": "13817L"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "Case-insensitive substring of the product name.",
                        "type": "text/plain"
                      },
                      "key": "q",
                      "value": "pilchards"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "`true` returns only products with no SKU linked.",
                        "type": "text/plain"
                      },
                      "key": "unmapped",
                      "value": "true"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "`true` also returns products no longer on your site (`status: delisted`).",
                        "type": "text/plain"
                      },
                      "key": "include_delisted",
                      "value": "false"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Items per page. Default 100. Values above 500 are treated as 500.",
                        "type": "text/plain"
                      },
                      "key": "limit",
                      "value": "100"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "The `next_cursor` from the previous page. Opaque — pass it back unchanged, together with the **same**\nfilters, on the same endpoint, as the first request (otherwise 400 `cursor_mismatch`).\n",
                        "type": "text/plain"
                      },
                      "key": "cursor",
                      "value": "string"
                    }
                  ],
                  "variable": [],
                  "raw": "{{base_url}}/products?q=pilchards&unmapped=true"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://wjNzcNWHyrfCRj.tnKHSJNzuzd\",\n  \"title\": \"string\",\n  \"status\": 7335,\n  \"detail\": \"string\",\n  \"code\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"detail\": \"string\",\n      \"pointer\": \"string\",\n      \"parameter\": \"string\"\n    },\n    {\n      \"detail\": \"string\",\n      \"pointer\": \"string\",\n      \"parameter\": \"string\"\n    }\n  ],\n  \"limit\": \"string\",\n  \"retry_after\": 4401\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "503 Service Unavailable",
              "originalRequest": {
                "url": {
                  "path": [
                    "products"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "Your SKU. Repeat the parameter for several SKUs (`?sku=A&sku=B`), up to 100. Commas are part of the\nSKU, not separators. Matching ignores case and surrounding spaces; every other character (including\nleading zeros) counts: `00981A` and `981A` are different SKUs.\n",
                        "type": "text/plain"
                      },
                      "key": "sku",
                      "value": "13817L"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "Case-insensitive substring of the product name.",
                        "type": "text/plain"
                      },
                      "key": "q",
                      "value": "pilchards"
                    },
                    {
                      "disabled": false,
                      "description": {
                        "content": "`true` returns only products with no SKU linked.",
                        "type": "text/plain"
                      },
                      "key": "unmapped",
                      "value": "true"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "`true` also returns products no longer on your site (`status: delisted`).",
                        "type": "text/plain"
                      },
                      "key": "include_delisted",
                      "value": "false"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Items per page. Default 100. Values above 500 are treated as 500.",
                        "type": "text/plain"
                      },
                      "key": "limit",
                      "value": "100"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "The `next_cursor` from the previous page. Opaque — pass it back unchanged, together with the **same**\nfilters, on the same endpoint, as the first request (otherwise 400 `cursor_mismatch`).\n",
                        "type": "text/plain"
                      },
                      "key": "cursor",
                      "value": "string"
                    }
                  ],
                  "variable": [],
                  "raw": "{{base_url}}/products?q=pilchards&unmapped=true"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Service Unavailable",
              "code": 503,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "Retry-After",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://wjNzcNWHyrfCRj.tnKHSJNzuzd\",\n  \"title\": \"string\",\n  \"status\": 7335,\n  \"detail\": \"string\",\n  \"code\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"detail\": \"string\",\n      \"pointer\": \"string\",\n      \"parameter\": \"string\"\n    },\n    {\n      \"detail\": \"string\",\n      \"pointer\": \"string\",\n      \"parameter\": \"string\"\n    }\n  ],\n  \"limit\": \"string\",\n  \"retry_after\": 4401\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "name": "Retrieve a product",
          "request": {
            "name": "Retrieve a product",
            "description": {
              "content": "Returns one of your own products. A competitor's product id, or an id from another company, returns 404.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "products",
                ":product_id"
              ],
              "host": [
                "{{base_url}}"
              ],
              "query": [],
              "variable": [
                {
                  "type": "any",
                  "value": "prd_8fK2mQa1",
                  "key": "product_id",
                  "disabled": false,
                  "description": {
                    "content": "(Required) The product id, e.g. `prd_8fK2mQa1`.",
                    "type": "text/plain"
                  }
                }
              ],
              "raw": "{{base_url}}/products/:product_id"
            },
            "header": [
              {
                "disabled": true,
                "description": {
                  "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                  "type": "text/plain"
                },
                "key": "If-None-Match",
                "value": "W/\"9f3c1e\""
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "body": {}
          },
          "response": [
            {
              "name": "200 OK",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    ":product_id"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) The product id, e.g. `prd_8fK2mQa1`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "prd_8fK2mQa1",
                      "key": "product_id"
                    }
                  ],
                  "raw": "{{base_url}}/products/:product_id"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "ETag",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Limit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Remaining",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Reset",
                  "value": ""
                }
              ],
              "body": "{\n  \"id\": \"prd_8fK2mQa1\",\n  \"name\": \"Baked Beans in Tomato Sauce 410g\",\n  \"url\": \"https://shop.example.com/product/10072L\",\n  \"skus\": [\n    \"10072L\"\n  ],\n  \"comparison_set_id\": \"set_x7Kp2Lm9\",\n  \"price\": {\n    \"amount\": \"18.99\",\n    \"was\": null,\n    \"currency\": \"ZAR\"\n  },\n  \"last_collected_at\": \"2026-11-02T04:12:09Z\",\n  \"status\": \"active\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "304 Not Modified",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    ":product_id"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) The product id, e.g. `prd_8fK2mQa1`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "prd_8fK2mQa1",
                      "key": "product_id"
                    }
                  ],
                  "raw": "{{base_url}}/products/:product_id"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Modified",
              "code": 304,
              "header": [
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "ETag",
                  "value": ""
                }
              ],
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "name": "400 Bad Request",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    ":product_id"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) The product id, e.g. `prd_8fK2mQa1`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "prd_8fK2mQa1",
                      "key": "product_id"
                    }
                  ],
                  "raw": "{{base_url}}/products/:product_id"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/unknown-parameter\",\n  \"title\": \"Unknown query parameter\",\n  \"status\": 400,\n  \"detail\": \"Unknown query parameter 'update_since'.\",\n  \"code\": \"unknown_parameter\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\",\n  \"errors\": [\n    {\n      \"parameter\": \"update_since\",\n      \"detail\": \"Not a parameter of this endpoint.\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "401 Unauthorized",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    ":product_id"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) The product id, e.g. `prd_8fK2mQa1`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "prd_8fK2mQa1",
                      "key": "product_id"
                    }
                  ],
                  "raw": "{{base_url}}/products/:product_id"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "WWW-Authenticate",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/unauthenticated\",\n  \"title\": \"Authentication required\",\n  \"status\": 401,\n  \"detail\": \"Send your API key as 'Authorization: Bearer gp_live_…'.\",\n  \"code\": \"unauthenticated\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "403 Forbidden",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    ":product_id"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) The product id, e.g. `prd_8fK2mQa1`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "prd_8fK2mQa1",
                      "key": "product_id"
                    }
                  ],
                  "raw": "{{base_url}}/products/:product_id"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/insufficient-scope\",\n  \"title\": \"Insufficient scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint needs the 'skus:write' scope.\",\n  \"code\": \"insufficient_scope\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "404 Not Found",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    ":product_id"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) The product id, e.g. `prd_8fK2mQa1`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "prd_8fK2mQa1",
                      "key": "product_id"
                    }
                  ],
                  "raw": "{{base_url}}/products/:product_id"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/not-found\",\n  \"title\": \"Not found\",\n  \"status\": 404,\n  \"detail\": \"No product of yours with this id.\",\n  \"code\": \"not_found\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "429 Too Many Requests",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    ":product_id"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) The product id, e.g. `prd_8fK2mQa1`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "prd_8fK2mQa1",
                      "key": "product_id"
                    }
                  ],
                  "raw": "{{base_url}}/products/:product_id"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Limit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Remaining",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Reset",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/rate-limited\",\n  \"title\": \"Rate limit exceeded\",\n  \"status\": 429,\n  \"detail\": \"Sustained limit of 120 requests per minute reached for this API key.\",\n  \"code\": \"rate_limited\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\",\n  \"limit\": \"sustained\",\n  \"retry_after\": 21\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "500 Internal Server Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    ":product_id"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) The product id, e.g. `prd_8fK2mQa1`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "prd_8fK2mQa1",
                      "key": "product_id"
                    }
                  ],
                  "raw": "{{base_url}}/products/:product_id"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://wjNzcNWHyrfCRj.tnKHSJNzuzd\",\n  \"title\": \"string\",\n  \"status\": 7335,\n  \"detail\": \"string\",\n  \"code\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"detail\": \"string\",\n      \"pointer\": \"string\",\n      \"parameter\": \"string\"\n    },\n    {\n      \"detail\": \"string\",\n      \"pointer\": \"string\",\n      \"parameter\": \"string\"\n    }\n  ],\n  \"limit\": \"string\",\n  \"retry_after\": 4401\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "503 Service Unavailable",
              "originalRequest": {
                "url": {
                  "path": [
                    "products",
                    ":product_id"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) The product id, e.g. `prd_8fK2mQa1`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "prd_8fK2mQa1",
                      "key": "product_id"
                    }
                  ],
                  "raw": "{{base_url}}/products/:product_id"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Service Unavailable",
              "code": 503,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "Retry-After",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://wjNzcNWHyrfCRj.tnKHSJNzuzd\",\n  \"title\": \"string\",\n  \"status\": 7335,\n  \"detail\": \"string\",\n  \"code\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"detail\": \"string\",\n      \"pointer\": \"string\",\n      \"parameter\": \"string\"\n    },\n    {\n      \"detail\": \"string\",\n      \"pointer\": \"string\",\n      \"parameter\": \"string\"\n    }\n  ],\n  \"limit\": \"string\",\n  \"retry_after\": 4401\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ]
    },
    {
      "name": "Competitors",
      "description": "The competitor websites GetPrice tracks for you.",
      "item": [
        {
          "name": "List competitors",
          "request": {
            "name": "List competitors",
            "description": {
              "content": "Returns the competitor websites GetPrice collects prices from for you.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "competitors"
              ],
              "host": [
                "{{base_url}}"
              ],
              "query": [
                {
                  "disabled": true,
                  "description": {
                    "content": "Items per page. Default 100. Values above 500 are treated as 500.",
                    "type": "text/plain"
                  },
                  "key": "limit",
                  "value": "100"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "The `next_cursor` from the previous page. Opaque — pass it back unchanged, together with the **same**\nfilters, on the same endpoint, as the first request (otherwise 400 `cursor_mismatch`).\n",
                    "type": "text/plain"
                  },
                  "key": "cursor",
                  "value": "string"
                }
              ],
              "variable": [],
              "raw": "{{base_url}}/competitors"
            },
            "header": [
              {
                "disabled": true,
                "description": {
                  "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                  "type": "text/plain"
                },
                "key": "If-None-Match",
                "value": "W/\"9f3c1e\""
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "body": {}
          },
          "response": [
            {
              "name": "200 OK",
              "originalRequest": {
                "url": {
                  "path": [
                    "competitors"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "Items per page. Default 100. Values above 500 are treated as 500.",
                        "type": "text/plain"
                      },
                      "key": "limit",
                      "value": "100"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "The `next_cursor` from the previous page. Opaque — pass it back unchanged, together with the **same**\nfilters, on the same endpoint, as the first request (otherwise 400 `cursor_mismatch`).\n",
                        "type": "text/plain"
                      },
                      "key": "cursor",
                      "value": "string"
                    }
                  ],
                  "variable": [],
                  "raw": "{{base_url}}/competitors"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "ETag",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Limit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Remaining",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Reset",
                  "value": ""
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"cmp_3LqV8nP2\",\n      \"name\": \"Harbour Market\",\n      \"domain\": \"harbourmarket.example.com\",\n      \"url\": \"https://harbourmarket.example.com\"\n    },\n    {\n      \"id\": \"cmp_7RwK4tB9\",\n      \"name\": \"Cape Fresh\",\n      \"domain\": \"capefresh.example.com\",\n      \"url\": \"https://capefresh.example.com\"\n    },\n    {\n      \"id\": \"cmp_9TzM2cX5\",\n      \"name\": \"Northwind Wholesale\",\n      \"domain\": \"northwindwholesale.example.com\",\n      \"url\": \"https://northwindwholesale.example.com\"\n    },\n    {\n      \"id\": \"cmp_2HdR6wJ3\",\n      \"name\": \"Metro Bulk\",\n      \"domain\": \"metrobulk.example.com\",\n      \"url\": \"https://metrobulk.example.com\"\n    }\n  ],\n  \"next_cursor\": null\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "304 Not Modified",
              "originalRequest": {
                "url": {
                  "path": [
                    "competitors"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "Items per page. Default 100. Values above 500 are treated as 500.",
                        "type": "text/plain"
                      },
                      "key": "limit",
                      "value": "100"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "The `next_cursor` from the previous page. Opaque — pass it back unchanged, together with the **same**\nfilters, on the same endpoint, as the first request (otherwise 400 `cursor_mismatch`).\n",
                        "type": "text/plain"
                      },
                      "key": "cursor",
                      "value": "string"
                    }
                  ],
                  "variable": [],
                  "raw": "{{base_url}}/competitors"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Modified",
              "code": 304,
              "header": [
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "ETag",
                  "value": ""
                }
              ],
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "name": "400 Bad Request",
              "originalRequest": {
                "url": {
                  "path": [
                    "competitors"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "Items per page. Default 100. Values above 500 are treated as 500.",
                        "type": "text/plain"
                      },
                      "key": "limit",
                      "value": "100"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "The `next_cursor` from the previous page. Opaque — pass it back unchanged, together with the **same**\nfilters, on the same endpoint, as the first request (otherwise 400 `cursor_mismatch`).\n",
                        "type": "text/plain"
                      },
                      "key": "cursor",
                      "value": "string"
                    }
                  ],
                  "variable": [],
                  "raw": "{{base_url}}/competitors"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/unknown-parameter\",\n  \"title\": \"Unknown query parameter\",\n  \"status\": 400,\n  \"detail\": \"Unknown query parameter 'update_since'.\",\n  \"code\": \"unknown_parameter\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\",\n  \"errors\": [\n    {\n      \"parameter\": \"update_since\",\n      \"detail\": \"Not a parameter of this endpoint.\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "401 Unauthorized",
              "originalRequest": {
                "url": {
                  "path": [
                    "competitors"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "Items per page. Default 100. Values above 500 are treated as 500.",
                        "type": "text/plain"
                      },
                      "key": "limit",
                      "value": "100"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "The `next_cursor` from the previous page. Opaque — pass it back unchanged, together with the **same**\nfilters, on the same endpoint, as the first request (otherwise 400 `cursor_mismatch`).\n",
                        "type": "text/plain"
                      },
                      "key": "cursor",
                      "value": "string"
                    }
                  ],
                  "variable": [],
                  "raw": "{{base_url}}/competitors"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "WWW-Authenticate",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/unauthenticated\",\n  \"title\": \"Authentication required\",\n  \"status\": 401,\n  \"detail\": \"Send your API key as 'Authorization: Bearer gp_live_…'.\",\n  \"code\": \"unauthenticated\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "403 Forbidden",
              "originalRequest": {
                "url": {
                  "path": [
                    "competitors"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "Items per page. Default 100. Values above 500 are treated as 500.",
                        "type": "text/plain"
                      },
                      "key": "limit",
                      "value": "100"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "The `next_cursor` from the previous page. Opaque — pass it back unchanged, together with the **same**\nfilters, on the same endpoint, as the first request (otherwise 400 `cursor_mismatch`).\n",
                        "type": "text/plain"
                      },
                      "key": "cursor",
                      "value": "string"
                    }
                  ],
                  "variable": [],
                  "raw": "{{base_url}}/competitors"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/insufficient-scope\",\n  \"title\": \"Insufficient scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint needs the 'skus:write' scope.\",\n  \"code\": \"insufficient_scope\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "429 Too Many Requests",
              "originalRequest": {
                "url": {
                  "path": [
                    "competitors"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "Items per page. Default 100. Values above 500 are treated as 500.",
                        "type": "text/plain"
                      },
                      "key": "limit",
                      "value": "100"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "The `next_cursor` from the previous page. Opaque — pass it back unchanged, together with the **same**\nfilters, on the same endpoint, as the first request (otherwise 400 `cursor_mismatch`).\n",
                        "type": "text/plain"
                      },
                      "key": "cursor",
                      "value": "string"
                    }
                  ],
                  "variable": [],
                  "raw": "{{base_url}}/competitors"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Limit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Remaining",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Reset",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/rate-limited\",\n  \"title\": \"Rate limit exceeded\",\n  \"status\": 429,\n  \"detail\": \"Sustained limit of 120 requests per minute reached for this API key.\",\n  \"code\": \"rate_limited\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\",\n  \"limit\": \"sustained\",\n  \"retry_after\": 21\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "500 Internal Server Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "competitors"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "Items per page. Default 100. Values above 500 are treated as 500.",
                        "type": "text/plain"
                      },
                      "key": "limit",
                      "value": "100"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "The `next_cursor` from the previous page. Opaque — pass it back unchanged, together with the **same**\nfilters, on the same endpoint, as the first request (otherwise 400 `cursor_mismatch`).\n",
                        "type": "text/plain"
                      },
                      "key": "cursor",
                      "value": "string"
                    }
                  ],
                  "variable": [],
                  "raw": "{{base_url}}/competitors"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://wjNzcNWHyrfCRj.tnKHSJNzuzd\",\n  \"title\": \"string\",\n  \"status\": 7335,\n  \"detail\": \"string\",\n  \"code\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"detail\": \"string\",\n      \"pointer\": \"string\",\n      \"parameter\": \"string\"\n    },\n    {\n      \"detail\": \"string\",\n      \"pointer\": \"string\",\n      \"parameter\": \"string\"\n    }\n  ],\n  \"limit\": \"string\",\n  \"retry_after\": 4401\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "503 Service Unavailable",
              "originalRequest": {
                "url": {
                  "path": [
                    "competitors"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "Items per page. Default 100. Values above 500 are treated as 500.",
                        "type": "text/plain"
                      },
                      "key": "limit",
                      "value": "100"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "The `next_cursor` from the previous page. Opaque — pass it back unchanged, together with the **same**\nfilters, on the same endpoint, as the first request (otherwise 400 `cursor_mismatch`).\n",
                        "type": "text/plain"
                      },
                      "key": "cursor",
                      "value": "string"
                    }
                  ],
                  "variable": [],
                  "raw": "{{base_url}}/competitors"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Service Unavailable",
              "code": 503,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "Retry-After",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://wjNzcNWHyrfCRj.tnKHSJNzuzd\",\n  \"title\": \"string\",\n  \"status\": 7335,\n  \"detail\": \"string\",\n  \"code\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"detail\": \"string\",\n      \"pointer\": \"string\",\n      \"parameter\": \"string\"\n    },\n    {\n      \"detail\": \"string\",\n      \"pointer\": \"string\",\n      \"parameter\": \"string\"\n    }\n  ],\n  \"limit\": \"string\",\n  \"retry_after\": 4401\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ]
    },
    {
      "name": "SKU mappings",
      "description": "Links from your own SKUs to your products in GetPrice. Create, replace and remove them so you can look up\nprices by the codes your ERP already uses.\n",
      "item": [
        {
          "name": "List SKU mappings",
          "request": {
            "name": "List SKU mappings",
            "description": {
              "content": "Returns every SKU link you have, ordered by SKU.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "sku-mappings"
              ],
              "host": [
                "{{base_url}}"
              ],
              "query": [
                {
                  "disabled": true,
                  "description": {
                    "content": "Items per page. Default 100. Values above 500 are treated as 500.",
                    "type": "text/plain"
                  },
                  "key": "limit",
                  "value": "100"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "The `next_cursor` from the previous page. Opaque — pass it back unchanged, together with the **same**\nfilters, on the same endpoint, as the first request (otherwise 400 `cursor_mismatch`).\n",
                    "type": "text/plain"
                  },
                  "key": "cursor",
                  "value": "string"
                }
              ],
              "variable": [],
              "raw": "{{base_url}}/sku-mappings"
            },
            "header": [
              {
                "disabled": true,
                "description": {
                  "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                  "type": "text/plain"
                },
                "key": "If-None-Match",
                "value": "W/\"9f3c1e\""
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "body": {}
          },
          "response": [
            {
              "name": "200 OK",
              "originalRequest": {
                "url": {
                  "path": [
                    "sku-mappings"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "Items per page. Default 100. Values above 500 are treated as 500.",
                        "type": "text/plain"
                      },
                      "key": "limit",
                      "value": "100"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "The `next_cursor` from the previous page. Opaque — pass it back unchanged, together with the **same**\nfilters, on the same endpoint, as the first request (otherwise 400 `cursor_mismatch`).\n",
                        "type": "text/plain"
                      },
                      "key": "cursor",
                      "value": "string"
                    }
                  ],
                  "variable": [],
                  "raw": "{{base_url}}/sku-mappings"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "ETag",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Limit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Remaining",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Reset",
                  "value": ""
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"sku\": \"10072L\",\n      \"product_id\": \"prd_8fK2mQa1\",\n      \"comparison_set_id\": null,\n      \"source\": \"list_sku\",\n      \"created_at\": \"2026-11-02T10:04:12Z\",\n      \"updated_at\": \"2026-11-02T10:04:12Z\"\n    },\n    {\n      \"sku\": \"13817L\",\n      \"product_id\": \"prd_Lp4sT1x9\",\n      \"comparison_set_id\": null,\n      \"source\": \"api\",\n      \"created_at\": \"2026-11-02T10:05:00Z\",\n      \"updated_at\": \"2026-11-02T10:05:00Z\"\n    },\n    {\n      \"sku\": \"15520L\",\n      \"product_id\": null,\n      \"comparison_set_id\": \"set_Wq3NdT5v\",\n      \"source\": \"list_sku\",\n      \"created_at\": \"2026-11-01T16:20:00Z\",\n      \"updated_at\": \"2026-11-01T16:20:00Z\"\n    }\n  ],\n  \"next_cursor\": null\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "304 Not Modified",
              "originalRequest": {
                "url": {
                  "path": [
                    "sku-mappings"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "Items per page. Default 100. Values above 500 are treated as 500.",
                        "type": "text/plain"
                      },
                      "key": "limit",
                      "value": "100"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "The `next_cursor` from the previous page. Opaque — pass it back unchanged, together with the **same**\nfilters, on the same endpoint, as the first request (otherwise 400 `cursor_mismatch`).\n",
                        "type": "text/plain"
                      },
                      "key": "cursor",
                      "value": "string"
                    }
                  ],
                  "variable": [],
                  "raw": "{{base_url}}/sku-mappings"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Modified",
              "code": 304,
              "header": [
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "ETag",
                  "value": ""
                }
              ],
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "name": "400 Bad Request",
              "originalRequest": {
                "url": {
                  "path": [
                    "sku-mappings"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "Items per page. Default 100. Values above 500 are treated as 500.",
                        "type": "text/plain"
                      },
                      "key": "limit",
                      "value": "100"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "The `next_cursor` from the previous page. Opaque — pass it back unchanged, together with the **same**\nfilters, on the same endpoint, as the first request (otherwise 400 `cursor_mismatch`).\n",
                        "type": "text/plain"
                      },
                      "key": "cursor",
                      "value": "string"
                    }
                  ],
                  "variable": [],
                  "raw": "{{base_url}}/sku-mappings"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/unknown-parameter\",\n  \"title\": \"Unknown query parameter\",\n  \"status\": 400,\n  \"detail\": \"Unknown query parameter 'update_since'.\",\n  \"code\": \"unknown_parameter\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\",\n  \"errors\": [\n    {\n      \"parameter\": \"update_since\",\n      \"detail\": \"Not a parameter of this endpoint.\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "401 Unauthorized",
              "originalRequest": {
                "url": {
                  "path": [
                    "sku-mappings"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "Items per page. Default 100. Values above 500 are treated as 500.",
                        "type": "text/plain"
                      },
                      "key": "limit",
                      "value": "100"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "The `next_cursor` from the previous page. Opaque — pass it back unchanged, together with the **same**\nfilters, on the same endpoint, as the first request (otherwise 400 `cursor_mismatch`).\n",
                        "type": "text/plain"
                      },
                      "key": "cursor",
                      "value": "string"
                    }
                  ],
                  "variable": [],
                  "raw": "{{base_url}}/sku-mappings"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "WWW-Authenticate",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/unauthenticated\",\n  \"title\": \"Authentication required\",\n  \"status\": 401,\n  \"detail\": \"Send your API key as 'Authorization: Bearer gp_live_…'.\",\n  \"code\": \"unauthenticated\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "403 Forbidden",
              "originalRequest": {
                "url": {
                  "path": [
                    "sku-mappings"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "Items per page. Default 100. Values above 500 are treated as 500.",
                        "type": "text/plain"
                      },
                      "key": "limit",
                      "value": "100"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "The `next_cursor` from the previous page. Opaque — pass it back unchanged, together with the **same**\nfilters, on the same endpoint, as the first request (otherwise 400 `cursor_mismatch`).\n",
                        "type": "text/plain"
                      },
                      "key": "cursor",
                      "value": "string"
                    }
                  ],
                  "variable": [],
                  "raw": "{{base_url}}/sku-mappings"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/insufficient-scope\",\n  \"title\": \"Insufficient scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint needs the 'skus:write' scope.\",\n  \"code\": \"insufficient_scope\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "429 Too Many Requests",
              "originalRequest": {
                "url": {
                  "path": [
                    "sku-mappings"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "Items per page. Default 100. Values above 500 are treated as 500.",
                        "type": "text/plain"
                      },
                      "key": "limit",
                      "value": "100"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "The `next_cursor` from the previous page. Opaque — pass it back unchanged, together with the **same**\nfilters, on the same endpoint, as the first request (otherwise 400 `cursor_mismatch`).\n",
                        "type": "text/plain"
                      },
                      "key": "cursor",
                      "value": "string"
                    }
                  ],
                  "variable": [],
                  "raw": "{{base_url}}/sku-mappings"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Limit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Remaining",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Reset",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/rate-limited\",\n  \"title\": \"Rate limit exceeded\",\n  \"status\": 429,\n  \"detail\": \"Sustained limit of 120 requests per minute reached for this API key.\",\n  \"code\": \"rate_limited\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\",\n  \"limit\": \"sustained\",\n  \"retry_after\": 21\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "500 Internal Server Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "sku-mappings"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "Items per page. Default 100. Values above 500 are treated as 500.",
                        "type": "text/plain"
                      },
                      "key": "limit",
                      "value": "100"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "The `next_cursor` from the previous page. Opaque — pass it back unchanged, together with the **same**\nfilters, on the same endpoint, as the first request (otherwise 400 `cursor_mismatch`).\n",
                        "type": "text/plain"
                      },
                      "key": "cursor",
                      "value": "string"
                    }
                  ],
                  "variable": [],
                  "raw": "{{base_url}}/sku-mappings"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://wjNzcNWHyrfCRj.tnKHSJNzuzd\",\n  \"title\": \"string\",\n  \"status\": 7335,\n  \"detail\": \"string\",\n  \"code\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"detail\": \"string\",\n      \"pointer\": \"string\",\n      \"parameter\": \"string\"\n    },\n    {\n      \"detail\": \"string\",\n      \"pointer\": \"string\",\n      \"parameter\": \"string\"\n    }\n  ],\n  \"limit\": \"string\",\n  \"retry_after\": 4401\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "503 Service Unavailable",
              "originalRequest": {
                "url": {
                  "path": [
                    "sku-mappings"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "Items per page. Default 100. Values above 500 are treated as 500.",
                        "type": "text/plain"
                      },
                      "key": "limit",
                      "value": "100"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "The `next_cursor` from the previous page. Opaque — pass it back unchanged, together with the **same**\nfilters, on the same endpoint, as the first request (otherwise 400 `cursor_mismatch`).\n",
                        "type": "text/plain"
                      },
                      "key": "cursor",
                      "value": "string"
                    }
                  ],
                  "variable": [],
                  "raw": "{{base_url}}/sku-mappings"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Service Unavailable",
              "code": 503,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "Retry-After",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://wjNzcNWHyrfCRj.tnKHSJNzuzd\",\n  \"title\": \"string\",\n  \"status\": 7335,\n  \"detail\": \"string\",\n  \"code\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"detail\": \"string\",\n      \"pointer\": \"string\",\n      \"parameter\": \"string\"\n    },\n    {\n      \"detail\": \"string\",\n      \"pointer\": \"string\",\n      \"parameter\": \"string\"\n    }\n  ],\n  \"limit\": \"string\",\n  \"retry_after\": 4401\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "name": "Retrieve a SKU mapping",
          "request": {
            "name": "Retrieve a SKU mapping",
            "description": {
              "content": "Returns what one of your SKUs is linked to. The response's `ETag` is the link's version, such as `\"v42\"`.\nSend it as `If-Match` to replace or remove the link only if nobody has changed it since.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "sku-mappings",
                ":sku"
              ],
              "host": [
                "{{base_url}}"
              ],
              "query": [],
              "variable": [
                {
                  "type": "any",
                  "value": "10072L",
                  "key": "sku",
                  "disabled": false,
                  "description": {
                    "content": "(Required) Your SKU, percent-encoded. SKUs may contain `/`, spaces, `+`, `%` and non-ASCII characters; encode\nevery reserved character (e.g. `AB/12 X` → `AB%2F12%20X`). Surrounding whitespace (space, tab, CR, LF,\nnon-breaking space) is trimmed. A SKU can't contain line breaks or other control characters inside it.\n",
                    "type": "text/plain"
                  }
                }
              ],
              "raw": "{{base_url}}/sku-mappings/:sku"
            },
            "header": [
              {
                "disabled": true,
                "description": {
                  "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                  "type": "text/plain"
                },
                "key": "If-None-Match",
                "value": "W/\"9f3c1e\""
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "body": {}
          },
          "response": [
            {
              "name": "200 OK",
              "originalRequest": {
                "url": {
                  "path": [
                    "sku-mappings",
                    ":sku"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) Your SKU, percent-encoded. SKUs may contain `/`, spaces, `+`, `%` and non-ASCII characters; encode\nevery reserved character (e.g. `AB/12 X` → `AB%2F12%20X`). Surrounding whitespace (space, tab, CR, LF,\nnon-breaking space) is trimmed. A SKU can't contain line breaks or other control characters inside it.\n",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "10072L",
                      "key": "sku"
                    }
                  ],
                  "raw": "{{base_url}}/sku-mappings/:sku"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "ETag",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "Cache-Control",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Limit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Remaining",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Reset",
                  "value": ""
                }
              ],
              "body": "{\n  \"sku\": \"10072L\",\n  \"product_id\": \"prd_8fK2mQa1\",\n  \"comparison_set_id\": null,\n  \"source\": \"list_sku\",\n  \"created_at\": \"2026-11-02T10:04:12Z\",\n  \"updated_at\": \"2026-11-02T10:04:12Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "304 Not Modified",
              "originalRequest": {
                "url": {
                  "path": [
                    "sku-mappings",
                    ":sku"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) Your SKU, percent-encoded. SKUs may contain `/`, spaces, `+`, `%` and non-ASCII characters; encode\nevery reserved character (e.g. `AB/12 X` → `AB%2F12%20X`). Surrounding whitespace (space, tab, CR, LF,\nnon-breaking space) is trimmed. A SKU can't contain line breaks or other control characters inside it.\n",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "10072L",
                      "key": "sku"
                    }
                  ],
                  "raw": "{{base_url}}/sku-mappings/:sku"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Modified",
              "code": 304,
              "header": [
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "ETag",
                  "value": ""
                }
              ],
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "name": "400 Bad Request",
              "originalRequest": {
                "url": {
                  "path": [
                    "sku-mappings",
                    ":sku"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) Your SKU, percent-encoded. SKUs may contain `/`, spaces, `+`, `%` and non-ASCII characters; encode\nevery reserved character (e.g. `AB/12 X` → `AB%2F12%20X`). Surrounding whitespace (space, tab, CR, LF,\nnon-breaking space) is trimmed. A SKU can't contain line breaks or other control characters inside it.\n",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "10072L",
                      "key": "sku"
                    }
                  ],
                  "raw": "{{base_url}}/sku-mappings/:sku"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/unknown-parameter\",\n  \"title\": \"Unknown query parameter\",\n  \"status\": 400,\n  \"detail\": \"Unknown query parameter 'update_since'.\",\n  \"code\": \"unknown_parameter\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\",\n  \"errors\": [\n    {\n      \"parameter\": \"update_since\",\n      \"detail\": \"Not a parameter of this endpoint.\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "401 Unauthorized",
              "originalRequest": {
                "url": {
                  "path": [
                    "sku-mappings",
                    ":sku"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) Your SKU, percent-encoded. SKUs may contain `/`, spaces, `+`, `%` and non-ASCII characters; encode\nevery reserved character (e.g. `AB/12 X` → `AB%2F12%20X`). Surrounding whitespace (space, tab, CR, LF,\nnon-breaking space) is trimmed. A SKU can't contain line breaks or other control characters inside it.\n",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "10072L",
                      "key": "sku"
                    }
                  ],
                  "raw": "{{base_url}}/sku-mappings/:sku"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "WWW-Authenticate",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/unauthenticated\",\n  \"title\": \"Authentication required\",\n  \"status\": 401,\n  \"detail\": \"Send your API key as 'Authorization: Bearer gp_live_…'.\",\n  \"code\": \"unauthenticated\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "403 Forbidden",
              "originalRequest": {
                "url": {
                  "path": [
                    "sku-mappings",
                    ":sku"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) Your SKU, percent-encoded. SKUs may contain `/`, spaces, `+`, `%` and non-ASCII characters; encode\nevery reserved character (e.g. `AB/12 X` → `AB%2F12%20X`). Surrounding whitespace (space, tab, CR, LF,\nnon-breaking space) is trimmed. A SKU can't contain line breaks or other control characters inside it.\n",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "10072L",
                      "key": "sku"
                    }
                  ],
                  "raw": "{{base_url}}/sku-mappings/:sku"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/insufficient-scope\",\n  \"title\": \"Insufficient scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint needs the 'skus:write' scope.\",\n  \"code\": \"insufficient_scope\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "404 Not Found",
              "originalRequest": {
                "url": {
                  "path": [
                    "sku-mappings",
                    ":sku"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) Your SKU, percent-encoded. SKUs may contain `/`, spaces, `+`, `%` and non-ASCII characters; encode\nevery reserved character (e.g. `AB/12 X` → `AB%2F12%20X`). Surrounding whitespace (space, tab, CR, LF,\nnon-breaking space) is trimmed. A SKU can't contain line breaks or other control characters inside it.\n",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "10072L",
                      "key": "sku"
                    }
                  ],
                  "raw": "{{base_url}}/sku-mappings/:sku"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/not-found\",\n  \"title\": \"Not found\",\n  \"status\": 404,\n  \"detail\": \"No mapping for this SKU.\",\n  \"code\": \"not_found\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "429 Too Many Requests",
              "originalRequest": {
                "url": {
                  "path": [
                    "sku-mappings",
                    ":sku"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) Your SKU, percent-encoded. SKUs may contain `/`, spaces, `+`, `%` and non-ASCII characters; encode\nevery reserved character (e.g. `AB/12 X` → `AB%2F12%20X`). Surrounding whitespace (space, tab, CR, LF,\nnon-breaking space) is trimmed. A SKU can't contain line breaks or other control characters inside it.\n",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "10072L",
                      "key": "sku"
                    }
                  ],
                  "raw": "{{base_url}}/sku-mappings/:sku"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Limit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Remaining",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Reset",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/rate-limited\",\n  \"title\": \"Rate limit exceeded\",\n  \"status\": 429,\n  \"detail\": \"Sustained limit of 120 requests per minute reached for this API key.\",\n  \"code\": \"rate_limited\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\",\n  \"limit\": \"sustained\",\n  \"retry_after\": 21\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "500 Internal Server Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "sku-mappings",
                    ":sku"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) Your SKU, percent-encoded. SKUs may contain `/`, spaces, `+`, `%` and non-ASCII characters; encode\nevery reserved character (e.g. `AB/12 X` → `AB%2F12%20X`). Surrounding whitespace (space, tab, CR, LF,\nnon-breaking space) is trimmed. A SKU can't contain line breaks or other control characters inside it.\n",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "10072L",
                      "key": "sku"
                    }
                  ],
                  "raw": "{{base_url}}/sku-mappings/:sku"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://wjNzcNWHyrfCRj.tnKHSJNzuzd\",\n  \"title\": \"string\",\n  \"status\": 7335,\n  \"detail\": \"string\",\n  \"code\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"detail\": \"string\",\n      \"pointer\": \"string\",\n      \"parameter\": \"string\"\n    },\n    {\n      \"detail\": \"string\",\n      \"pointer\": \"string\",\n      \"parameter\": \"string\"\n    }\n  ],\n  \"limit\": \"string\",\n  \"retry_after\": 4401\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "503 Service Unavailable",
              "originalRequest": {
                "url": {
                  "path": [
                    "sku-mappings",
                    ":sku"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) Your SKU, percent-encoded. SKUs may contain `/`, spaces, `+`, `%` and non-ASCII characters; encode\nevery reserved character (e.g. `AB/12 X` → `AB%2F12%20X`). Surrounding whitespace (space, tab, CR, LF,\nnon-breaking space) is trimmed. A SKU can't contain line breaks or other control characters inside it.\n",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "10072L",
                      "key": "sku"
                    }
                  ],
                  "raw": "{{base_url}}/sku-mappings/:sku"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "An ETag from a previous response. If nothing changed you get `304 Not Modified` with no body.",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "W/\"9f3c1e\""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Service Unavailable",
              "code": 503,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "Retry-After",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://wjNzcNWHyrfCRj.tnKHSJNzuzd\",\n  \"title\": \"string\",\n  \"status\": 7335,\n  \"detail\": \"string\",\n  \"code\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"detail\": \"string\",\n      \"pointer\": \"string\",\n      \"parameter\": \"string\"\n    },\n    {\n      \"detail\": \"string\",\n      \"pointer\": \"string\",\n      \"parameter\": \"string\"\n    }\n  ],\n  \"limit\": \"string\",\n  \"retry_after\": 4401\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "name": "Link a SKU to a product",
          "request": {
            "name": "Link a SKU to a product",
            "description": {
              "content": "Links your SKU to one of your own products, creating or replacing the link. Returns 201 with a `Location`\nheader for a new link, and 200 when it replaced one.\n\nSending the same request twice has the same effect as sending it once. Surrounding whitespace in the SKU is\ntrimmed. A product id that isn't one of your own products returns 404 `product_not_found`.\n\nTo avoid overwriting someone else's link:\n\n- `If-None-Match: *` creates only. If the SKU is already linked, you get 412 and nothing changes.\n- `If-Match: <ETag>` replaces only if the link hasn't changed since you read it. Otherwise you get 412.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "sku-mappings",
                ":sku"
              ],
              "host": [
                "{{base_url}}"
              ],
              "query": [],
              "variable": [
                {
                  "type": "any",
                  "value": "13817L",
                  "key": "sku",
                  "disabled": false,
                  "description": {
                    "content": "(Required) Your SKU, percent-encoded. SKUs may contain `/`, spaces, `+`, `%` and non-ASCII characters; encode\nevery reserved character (e.g. `AB/12 X` → `AB%2F12%20X`). Surrounding whitespace (space, tab, CR, LF,\nnon-breaking space) is trimmed. A SKU can't contain line breaks or other control characters inside it.\n",
                    "type": "text/plain"
                  }
                }
              ],
              "raw": "{{base_url}}/sku-mappings/:sku"
            },
            "header": [
              {
                "disabled": false,
                "description": {
                  "content": "`*` to create only (412 if the SKU is already linked).",
                  "type": "text/plain"
                },
                "key": "If-None-Match",
                "value": "*"
              },
              {
                "disabled": true,
                "description": {
                  "content": "The ETag from a previous `GET /v1/sku-mappings/{sku}`; replace only if unchanged.",
                  "type": "text/plain"
                },
                "key": "If-Match",
                "value": "\"v42\""
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "PUT",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"product_id\": \"prd_Lp4sT1x9\"\n}",
              "options": {
                "raw": {
                  "headerFamily": "json",
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "name": "200 OK",
              "originalRequest": {
                "url": {
                  "path": [
                    "sku-mappings",
                    ":sku"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) Your SKU, percent-encoded. SKUs may contain `/`, spaces, `+`, `%` and non-ASCII characters; encode\nevery reserved character (e.g. `AB/12 X` → `AB%2F12%20X`). Surrounding whitespace (space, tab, CR, LF,\nnon-breaking space) is trimmed. A SKU can't contain line breaks or other control characters inside it.\n",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "13817L",
                      "key": "sku"
                    }
                  ],
                  "raw": "{{base_url}}/sku-mappings/:sku"
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "`*` to create only (412 if the SKU is already linked).",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "*"
                  },
                  {
                    "disabled": true,
                    "description": {
                      "content": "The ETag from a previous `GET /v1/sku-mappings/{sku}`; replace only if unchanged.",
                      "type": "text/plain"
                    },
                    "key": "If-Match",
                    "value": "\"v42\""
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "PUT",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"product_id\": \"prd_Lp4sT1x9\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "ETag",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "Cache-Control",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Limit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Remaining",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Reset",
                  "value": ""
                }
              ],
              "body": "{\n  \"sku\": \"10072L\",\n  \"product_id\": \"prd_8fK2mQa1\",\n  \"comparison_set_id\": null,\n  \"source\": \"list_sku\",\n  \"created_at\": \"2026-11-02T10:04:12Z\",\n  \"updated_at\": \"2026-11-02T10:04:12Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "201 Created",
              "originalRequest": {
                "url": {
                  "path": [
                    "sku-mappings",
                    ":sku"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) Your SKU, percent-encoded. SKUs may contain `/`, spaces, `+`, `%` and non-ASCII characters; encode\nevery reserved character (e.g. `AB/12 X` → `AB%2F12%20X`). Surrounding whitespace (space, tab, CR, LF,\nnon-breaking space) is trimmed. A SKU can't contain line breaks or other control characters inside it.\n",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "13817L",
                      "key": "sku"
                    }
                  ],
                  "raw": "{{base_url}}/sku-mappings/:sku"
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "`*` to create only (412 if the SKU is already linked).",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "*"
                  },
                  {
                    "disabled": true,
                    "description": {
                      "content": "The ETag from a previous `GET /v1/sku-mappings/{sku}`; replace only if unchanged.",
                      "type": "text/plain"
                    },
                    "key": "If-Match",
                    "value": "\"v42\""
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "PUT",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"product_id\": \"prd_Lp4sT1x9\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "ETag",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "Cache-Control",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "URL of the new mapping.",
                    "type": "text/plain"
                  },
                  "key": "Location",
                  "value": "/v1/sku-mappings/10072L"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Limit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Remaining",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Reset",
                  "value": ""
                }
              ],
              "body": "{\n  \"sku\": \"10072L\",\n  \"product_id\": \"prd_8fK2mQa1\",\n  \"comparison_set_id\": null,\n  \"source\": \"list_sku\",\n  \"created_at\": \"2026-11-02T10:04:12Z\",\n  \"updated_at\": \"2026-11-02T10:04:12Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "400 Bad Request",
              "originalRequest": {
                "url": {
                  "path": [
                    "sku-mappings",
                    ":sku"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) Your SKU, percent-encoded. SKUs may contain `/`, spaces, `+`, `%` and non-ASCII characters; encode\nevery reserved character (e.g. `AB/12 X` → `AB%2F12%20X`). Surrounding whitespace (space, tab, CR, LF,\nnon-breaking space) is trimmed. A SKU can't contain line breaks or other control characters inside it.\n",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "13817L",
                      "key": "sku"
                    }
                  ],
                  "raw": "{{base_url}}/sku-mappings/:sku"
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "`*` to create only (412 if the SKU is already linked).",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "*"
                  },
                  {
                    "disabled": true,
                    "description": {
                      "content": "The ETag from a previous `GET /v1/sku-mappings/{sku}`; replace only if unchanged.",
                      "type": "text/plain"
                    },
                    "key": "If-Match",
                    "value": "\"v42\""
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PUT",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"product_id\": \"prd_Lp4sT1x9\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/unknown-parameter\",\n  \"title\": \"Unknown query parameter\",\n  \"status\": 400,\n  \"detail\": \"Unknown query parameter 'update_since'.\",\n  \"code\": \"unknown_parameter\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\",\n  \"errors\": [\n    {\n      \"parameter\": \"update_since\",\n      \"detail\": \"Not a parameter of this endpoint.\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "401 Unauthorized",
              "originalRequest": {
                "url": {
                  "path": [
                    "sku-mappings",
                    ":sku"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) Your SKU, percent-encoded. SKUs may contain `/`, spaces, `+`, `%` and non-ASCII characters; encode\nevery reserved character (e.g. `AB/12 X` → `AB%2F12%20X`). Surrounding whitespace (space, tab, CR, LF,\nnon-breaking space) is trimmed. A SKU can't contain line breaks or other control characters inside it.\n",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "13817L",
                      "key": "sku"
                    }
                  ],
                  "raw": "{{base_url}}/sku-mappings/:sku"
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "`*` to create only (412 if the SKU is already linked).",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "*"
                  },
                  {
                    "disabled": true,
                    "description": {
                      "content": "The ETag from a previous `GET /v1/sku-mappings/{sku}`; replace only if unchanged.",
                      "type": "text/plain"
                    },
                    "key": "If-Match",
                    "value": "\"v42\""
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PUT",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"product_id\": \"prd_Lp4sT1x9\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "WWW-Authenticate",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/unauthenticated\",\n  \"title\": \"Authentication required\",\n  \"status\": 401,\n  \"detail\": \"Send your API key as 'Authorization: Bearer gp_live_…'.\",\n  \"code\": \"unauthenticated\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "403 Forbidden",
              "originalRequest": {
                "url": {
                  "path": [
                    "sku-mappings",
                    ":sku"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) Your SKU, percent-encoded. SKUs may contain `/`, spaces, `+`, `%` and non-ASCII characters; encode\nevery reserved character (e.g. `AB/12 X` → `AB%2F12%20X`). Surrounding whitespace (space, tab, CR, LF,\nnon-breaking space) is trimmed. A SKU can't contain line breaks or other control characters inside it.\n",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "13817L",
                      "key": "sku"
                    }
                  ],
                  "raw": "{{base_url}}/sku-mappings/:sku"
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "`*` to create only (412 if the SKU is already linked).",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "*"
                  },
                  {
                    "disabled": true,
                    "description": {
                      "content": "The ETag from a previous `GET /v1/sku-mappings/{sku}`; replace only if unchanged.",
                      "type": "text/plain"
                    },
                    "key": "If-Match",
                    "value": "\"v42\""
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PUT",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"product_id\": \"prd_Lp4sT1x9\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/insufficient-scope\",\n  \"title\": \"Insufficient scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint needs the 'skus:write' scope.\",\n  \"code\": \"insufficient_scope\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "404 Not Found",
              "originalRequest": {
                "url": {
                  "path": [
                    "sku-mappings",
                    ":sku"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) Your SKU, percent-encoded. SKUs may contain `/`, spaces, `+`, `%` and non-ASCII characters; encode\nevery reserved character (e.g. `AB/12 X` → `AB%2F12%20X`). Surrounding whitespace (space, tab, CR, LF,\nnon-breaking space) is trimmed. A SKU can't contain line breaks or other control characters inside it.\n",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "13817L",
                      "key": "sku"
                    }
                  ],
                  "raw": "{{base_url}}/sku-mappings/:sku"
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "`*` to create only (412 if the SKU is already linked).",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "*"
                  },
                  {
                    "disabled": true,
                    "description": {
                      "content": "The ETag from a previous `GET /v1/sku-mappings/{sku}`; replace only if unchanged.",
                      "type": "text/plain"
                    },
                    "key": "If-Match",
                    "value": "\"v42\""
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PUT",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"product_id\": \"prd_Lp4sT1x9\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/product-not-found\",\n  \"title\": \"Not found\",\n  \"status\": 404,\n  \"detail\": \"No product prd_Q2vN9cD4 among this company's own products.\",\n  \"code\": \"product_not_found\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "412 Precondition Failed",
              "originalRequest": {
                "url": {
                  "path": [
                    "sku-mappings",
                    ":sku"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) Your SKU, percent-encoded. SKUs may contain `/`, spaces, `+`, `%` and non-ASCII characters; encode\nevery reserved character (e.g. `AB/12 X` → `AB%2F12%20X`). Surrounding whitespace (space, tab, CR, LF,\nnon-breaking space) is trimmed. A SKU can't contain line breaks or other control characters inside it.\n",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "13817L",
                      "key": "sku"
                    }
                  ],
                  "raw": "{{base_url}}/sku-mappings/:sku"
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "`*` to create only (412 if the SKU is already linked).",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "*"
                  },
                  {
                    "disabled": true,
                    "description": {
                      "content": "The ETag from a previous `GET /v1/sku-mappings/{sku}`; replace only if unchanged.",
                      "type": "text/plain"
                    },
                    "key": "If-Match",
                    "value": "\"v42\""
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PUT",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"product_id\": \"prd_Lp4sT1x9\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Precondition Failed",
              "code": 412,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/precondition-failed\",\n  \"title\": \"Precondition failed\",\n  \"status\": 412,\n  \"detail\": \"SKU '10072L' is already linked (If-None-Match: *).\",\n  \"code\": \"precondition_failed\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "413 Payload Too Large",
              "originalRequest": {
                "url": {
                  "path": [
                    "sku-mappings",
                    ":sku"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) Your SKU, percent-encoded. SKUs may contain `/`, spaces, `+`, `%` and non-ASCII characters; encode\nevery reserved character (e.g. `AB/12 X` → `AB%2F12%20X`). Surrounding whitespace (space, tab, CR, LF,\nnon-breaking space) is trimmed. A SKU can't contain line breaks or other control characters inside it.\n",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "13817L",
                      "key": "sku"
                    }
                  ],
                  "raw": "{{base_url}}/sku-mappings/:sku"
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "`*` to create only (412 if the SKU is already linked).",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "*"
                  },
                  {
                    "disabled": true,
                    "description": {
                      "content": "The ETag from a previous `GET /v1/sku-mappings/{sku}`; replace only if unchanged.",
                      "type": "text/plain"
                    },
                    "key": "If-Match",
                    "value": "\"v42\""
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PUT",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"product_id\": \"prd_Lp4sT1x9\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Request Entity Too Large",
              "code": 413,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://wjNzcNWHyrfCRj.tnKHSJNzuzd\",\n  \"title\": \"string\",\n  \"status\": 7335,\n  \"detail\": \"string\",\n  \"code\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"detail\": \"string\",\n      \"pointer\": \"string\",\n      \"parameter\": \"string\"\n    },\n    {\n      \"detail\": \"string\",\n      \"pointer\": \"string\",\n      \"parameter\": \"string\"\n    }\n  ],\n  \"limit\": \"string\",\n  \"retry_after\": 4401\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "415 Unsupported Media Type",
              "originalRequest": {
                "url": {
                  "path": [
                    "sku-mappings",
                    ":sku"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) Your SKU, percent-encoded. SKUs may contain `/`, spaces, `+`, `%` and non-ASCII characters; encode\nevery reserved character (e.g. `AB/12 X` → `AB%2F12%20X`). Surrounding whitespace (space, tab, CR, LF,\nnon-breaking space) is trimmed. A SKU can't contain line breaks or other control characters inside it.\n",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "13817L",
                      "key": "sku"
                    }
                  ],
                  "raw": "{{base_url}}/sku-mappings/:sku"
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "`*` to create only (412 if the SKU is already linked).",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "*"
                  },
                  {
                    "disabled": true,
                    "description": {
                      "content": "The ETag from a previous `GET /v1/sku-mappings/{sku}`; replace only if unchanged.",
                      "type": "text/plain"
                    },
                    "key": "If-Match",
                    "value": "\"v42\""
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PUT",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"product_id\": \"prd_Lp4sT1x9\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unsupported Media Type",
              "code": 415,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://wjNzcNWHyrfCRj.tnKHSJNzuzd\",\n  \"title\": \"string\",\n  \"status\": 7335,\n  \"detail\": \"string\",\n  \"code\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"detail\": \"string\",\n      \"pointer\": \"string\",\n      \"parameter\": \"string\"\n    },\n    {\n      \"detail\": \"string\",\n      \"pointer\": \"string\",\n      \"parameter\": \"string\"\n    }\n  ],\n  \"limit\": \"string\",\n  \"retry_after\": 4401\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "422 Unprocessable Content",
              "originalRequest": {
                "url": {
                  "path": [
                    "sku-mappings",
                    ":sku"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) Your SKU, percent-encoded. SKUs may contain `/`, spaces, `+`, `%` and non-ASCII characters; encode\nevery reserved character (e.g. `AB/12 X` → `AB%2F12%20X`). Surrounding whitespace (space, tab, CR, LF,\nnon-breaking space) is trimmed. A SKU can't contain line breaks or other control characters inside it.\n",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "13817L",
                      "key": "sku"
                    }
                  ],
                  "raw": "{{base_url}}/sku-mappings/:sku"
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "`*` to create only (412 if the SKU is already linked).",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "*"
                  },
                  {
                    "disabled": true,
                    "description": {
                      "content": "The ETag from a previous `GET /v1/sku-mappings/{sku}`; replace only if unchanged.",
                      "type": "text/plain"
                    },
                    "key": "If-Match",
                    "value": "\"v42\""
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PUT",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"product_id\": \"prd_Lp4sT1x9\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/validation-failed\",\n  \"title\": \"Validation failed\",\n  \"status\": 422,\n  \"detail\": \"The request body is not valid.\",\n  \"code\": \"validation_failed\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\",\n  \"errors\": [\n    {\n      \"pointer\": \"/product_id\",\n      \"detail\": \"Field required\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "429 Too Many Requests",
              "originalRequest": {
                "url": {
                  "path": [
                    "sku-mappings",
                    ":sku"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) Your SKU, percent-encoded. SKUs may contain `/`, spaces, `+`, `%` and non-ASCII characters; encode\nevery reserved character (e.g. `AB/12 X` → `AB%2F12%20X`). Surrounding whitespace (space, tab, CR, LF,\nnon-breaking space) is trimmed. A SKU can't contain line breaks or other control characters inside it.\n",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "13817L",
                      "key": "sku"
                    }
                  ],
                  "raw": "{{base_url}}/sku-mappings/:sku"
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "`*` to create only (412 if the SKU is already linked).",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "*"
                  },
                  {
                    "disabled": true,
                    "description": {
                      "content": "The ETag from a previous `GET /v1/sku-mappings/{sku}`; replace only if unchanged.",
                      "type": "text/plain"
                    },
                    "key": "If-Match",
                    "value": "\"v42\""
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PUT",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"product_id\": \"prd_Lp4sT1x9\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Limit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Remaining",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Reset",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/rate-limited\",\n  \"title\": \"Rate limit exceeded\",\n  \"status\": 429,\n  \"detail\": \"Sustained limit of 120 requests per minute reached for this API key.\",\n  \"code\": \"rate_limited\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\",\n  \"limit\": \"sustained\",\n  \"retry_after\": 21\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "500 Internal Server Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "sku-mappings",
                    ":sku"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) Your SKU, percent-encoded. SKUs may contain `/`, spaces, `+`, `%` and non-ASCII characters; encode\nevery reserved character (e.g. `AB/12 X` → `AB%2F12%20X`). Surrounding whitespace (space, tab, CR, LF,\nnon-breaking space) is trimmed. A SKU can't contain line breaks or other control characters inside it.\n",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "13817L",
                      "key": "sku"
                    }
                  ],
                  "raw": "{{base_url}}/sku-mappings/:sku"
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "`*` to create only (412 if the SKU is already linked).",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "*"
                  },
                  {
                    "disabled": true,
                    "description": {
                      "content": "The ETag from a previous `GET /v1/sku-mappings/{sku}`; replace only if unchanged.",
                      "type": "text/plain"
                    },
                    "key": "If-Match",
                    "value": "\"v42\""
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PUT",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"product_id\": \"prd_Lp4sT1x9\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://wjNzcNWHyrfCRj.tnKHSJNzuzd\",\n  \"title\": \"string\",\n  \"status\": 7335,\n  \"detail\": \"string\",\n  \"code\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"detail\": \"string\",\n      \"pointer\": \"string\",\n      \"parameter\": \"string\"\n    },\n    {\n      \"detail\": \"string\",\n      \"pointer\": \"string\",\n      \"parameter\": \"string\"\n    }\n  ],\n  \"limit\": \"string\",\n  \"retry_after\": 4401\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "503 Service Unavailable",
              "originalRequest": {
                "url": {
                  "path": [
                    "sku-mappings",
                    ":sku"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) Your SKU, percent-encoded. SKUs may contain `/`, spaces, `+`, `%` and non-ASCII characters; encode\nevery reserved character (e.g. `AB/12 X` → `AB%2F12%20X`). Surrounding whitespace (space, tab, CR, LF,\nnon-breaking space) is trimmed. A SKU can't contain line breaks or other control characters inside it.\n",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "13817L",
                      "key": "sku"
                    }
                  ],
                  "raw": "{{base_url}}/sku-mappings/:sku"
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "`*` to create only (412 if the SKU is already linked).",
                      "type": "text/plain"
                    },
                    "key": "If-None-Match",
                    "value": "*"
                  },
                  {
                    "disabled": true,
                    "description": {
                      "content": "The ETag from a previous `GET /v1/sku-mappings/{sku}`; replace only if unchanged.",
                      "type": "text/plain"
                    },
                    "key": "If-Match",
                    "value": "\"v42\""
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PUT",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"product_id\": \"prd_Lp4sT1x9\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Service Unavailable",
              "code": 503,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "Retry-After",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://wjNzcNWHyrfCRj.tnKHSJNzuzd\",\n  \"title\": \"string\",\n  \"status\": 7335,\n  \"detail\": \"string\",\n  \"code\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"detail\": \"string\",\n      \"pointer\": \"string\",\n      \"parameter\": \"string\"\n    },\n    {\n      \"detail\": \"string\",\n      \"pointer\": \"string\",\n      \"parameter\": \"string\"\n    }\n  ],\n  \"limit\": \"string\",\n  \"retry_after\": 4401\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "name": "Remove a SKU link",
          "request": {
            "name": "Remove a SKU link",
            "description": {
              "content": "Removes the link for your SKU and returns 204. Your product and its comparison set stay as they are. Returns\n404 if the SKU isn't linked.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "sku-mappings",
                ":sku"
              ],
              "host": [
                "{{base_url}}"
              ],
              "query": [],
              "variable": [
                {
                  "type": "any",
                  "value": "13817L",
                  "key": "sku",
                  "disabled": false,
                  "description": {
                    "content": "(Required) Your SKU, percent-encoded. SKUs may contain `/`, spaces, `+`, `%` and non-ASCII characters; encode\nevery reserved character (e.g. `AB/12 X` → `AB%2F12%20X`). Surrounding whitespace (space, tab, CR, LF,\nnon-breaking space) is trimmed. A SKU can't contain line breaks or other control characters inside it.\n",
                    "type": "text/plain"
                  }
                }
              ],
              "raw": "{{base_url}}/sku-mappings/:sku"
            },
            "header": [
              {
                "disabled": true,
                "description": {
                  "content": "The ETag from a previous `GET`; delete only if unchanged.",
                  "type": "text/plain"
                },
                "key": "If-Match",
                "value": "string"
              },
              {
                "key": "Accept",
                "value": "application/problem+json"
              }
            ],
            "method": "DELETE",
            "body": {}
          },
          "response": [
            {
              "name": "204 No Content",
              "originalRequest": {
                "url": {
                  "path": [
                    "sku-mappings",
                    ":sku"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) Your SKU, percent-encoded. SKUs may contain `/`, spaces, `+`, `%` and non-ASCII characters; encode\nevery reserved character (e.g. `AB/12 X` → `AB%2F12%20X`). Surrounding whitespace (space, tab, CR, LF,\nnon-breaking space) is trimmed. A SKU can't contain line breaks or other control characters inside it.\n",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "13817L",
                      "key": "sku"
                    }
                  ],
                  "raw": "{{base_url}}/sku-mappings/:sku"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "The ETag from a previous `GET`; delete only if unchanged.",
                      "type": "text/plain"
                    },
                    "key": "If-Match",
                    "value": "string"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "No Content",
              "code": 204,
              "header": [
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Limit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Remaining",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Reset",
                  "value": ""
                }
              ],
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "name": "400 Bad Request",
              "originalRequest": {
                "url": {
                  "path": [
                    "sku-mappings",
                    ":sku"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) Your SKU, percent-encoded. SKUs may contain `/`, spaces, `+`, `%` and non-ASCII characters; encode\nevery reserved character (e.g. `AB/12 X` → `AB%2F12%20X`). Surrounding whitespace (space, tab, CR, LF,\nnon-breaking space) is trimmed. A SKU can't contain line breaks or other control characters inside it.\n",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "13817L",
                      "key": "sku"
                    }
                  ],
                  "raw": "{{base_url}}/sku-mappings/:sku"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "The ETag from a previous `GET`; delete only if unchanged.",
                      "type": "text/plain"
                    },
                    "key": "If-Match",
                    "value": "string"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/unknown-parameter\",\n  \"title\": \"Unknown query parameter\",\n  \"status\": 400,\n  \"detail\": \"Unknown query parameter 'update_since'.\",\n  \"code\": \"unknown_parameter\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\",\n  \"errors\": [\n    {\n      \"parameter\": \"update_since\",\n      \"detail\": \"Not a parameter of this endpoint.\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "401 Unauthorized",
              "originalRequest": {
                "url": {
                  "path": [
                    "sku-mappings",
                    ":sku"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) Your SKU, percent-encoded. SKUs may contain `/`, spaces, `+`, `%` and non-ASCII characters; encode\nevery reserved character (e.g. `AB/12 X` → `AB%2F12%20X`). Surrounding whitespace (space, tab, CR, LF,\nnon-breaking space) is trimmed. A SKU can't contain line breaks or other control characters inside it.\n",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "13817L",
                      "key": "sku"
                    }
                  ],
                  "raw": "{{base_url}}/sku-mappings/:sku"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "The ETag from a previous `GET`; delete only if unchanged.",
                      "type": "text/plain"
                    },
                    "key": "If-Match",
                    "value": "string"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "WWW-Authenticate",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/unauthenticated\",\n  \"title\": \"Authentication required\",\n  \"status\": 401,\n  \"detail\": \"Send your API key as 'Authorization: Bearer gp_live_…'.\",\n  \"code\": \"unauthenticated\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "403 Forbidden",
              "originalRequest": {
                "url": {
                  "path": [
                    "sku-mappings",
                    ":sku"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) Your SKU, percent-encoded. SKUs may contain `/`, spaces, `+`, `%` and non-ASCII characters; encode\nevery reserved character (e.g. `AB/12 X` → `AB%2F12%20X`). Surrounding whitespace (space, tab, CR, LF,\nnon-breaking space) is trimmed. A SKU can't contain line breaks or other control characters inside it.\n",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "13817L",
                      "key": "sku"
                    }
                  ],
                  "raw": "{{base_url}}/sku-mappings/:sku"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "The ETag from a previous `GET`; delete only if unchanged.",
                      "type": "text/plain"
                    },
                    "key": "If-Match",
                    "value": "string"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/insufficient-scope\",\n  \"title\": \"Insufficient scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint needs the 'skus:write' scope.\",\n  \"code\": \"insufficient_scope\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "404 Not Found",
              "originalRequest": {
                "url": {
                  "path": [
                    "sku-mappings",
                    ":sku"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) Your SKU, percent-encoded. SKUs may contain `/`, spaces, `+`, `%` and non-ASCII characters; encode\nevery reserved character (e.g. `AB/12 X` → `AB%2F12%20X`). Surrounding whitespace (space, tab, CR, LF,\nnon-breaking space) is trimmed. A SKU can't contain line breaks or other control characters inside it.\n",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "13817L",
                      "key": "sku"
                    }
                  ],
                  "raw": "{{base_url}}/sku-mappings/:sku"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "The ETag from a previous `GET`; delete only if unchanged.",
                      "type": "text/plain"
                    },
                    "key": "If-Match",
                    "value": "string"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/not-found\",\n  \"title\": \"Not found\",\n  \"status\": 404,\n  \"detail\": \"No mapping for this SKU.\",\n  \"code\": \"not_found\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "412 Precondition Failed",
              "originalRequest": {
                "url": {
                  "path": [
                    "sku-mappings",
                    ":sku"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) Your SKU, percent-encoded. SKUs may contain `/`, spaces, `+`, `%` and non-ASCII characters; encode\nevery reserved character (e.g. `AB/12 X` → `AB%2F12%20X`). Surrounding whitespace (space, tab, CR, LF,\nnon-breaking space) is trimmed. A SKU can't contain line breaks or other control characters inside it.\n",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "13817L",
                      "key": "sku"
                    }
                  ],
                  "raw": "{{base_url}}/sku-mappings/:sku"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "The ETag from a previous `GET`; delete only if unchanged.",
                      "type": "text/plain"
                    },
                    "key": "If-Match",
                    "value": "string"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "Precondition Failed",
              "code": 412,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/precondition-failed\",\n  \"title\": \"Precondition failed\",\n  \"status\": 412,\n  \"detail\": \"SKU '10072L' is already linked (If-None-Match: *).\",\n  \"code\": \"precondition_failed\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "429 Too Many Requests",
              "originalRequest": {
                "url": {
                  "path": [
                    "sku-mappings",
                    ":sku"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) Your SKU, percent-encoded. SKUs may contain `/`, spaces, `+`, `%` and non-ASCII characters; encode\nevery reserved character (e.g. `AB/12 X` → `AB%2F12%20X`). Surrounding whitespace (space, tab, CR, LF,\nnon-breaking space) is trimmed. A SKU can't contain line breaks or other control characters inside it.\n",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "13817L",
                      "key": "sku"
                    }
                  ],
                  "raw": "{{base_url}}/sku-mappings/:sku"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "The ETag from a previous `GET`; delete only if unchanged.",
                      "type": "text/plain"
                    },
                    "key": "If-Match",
                    "value": "string"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Limit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Remaining",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-RateLimit-Reset",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://api.getprice.ai/errors/rate-limited\",\n  \"title\": \"Rate limit exceeded\",\n  \"status\": 429,\n  \"detail\": \"Sustained limit of 120 requests per minute reached for this API key.\",\n  \"code\": \"rate_limited\",\n  \"request_id\": \"req_01JBX4Q8ZJ7M2K\",\n  \"limit\": \"sustained\",\n  \"retry_after\": 21\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "500 Internal Server Error",
              "originalRequest": {
                "url": {
                  "path": [
                    "sku-mappings",
                    ":sku"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) Your SKU, percent-encoded. SKUs may contain `/`, spaces, `+`, `%` and non-ASCII characters; encode\nevery reserved character (e.g. `AB/12 X` → `AB%2F12%20X`). Surrounding whitespace (space, tab, CR, LF,\nnon-breaking space) is trimmed. A SKU can't contain line breaks or other control characters inside it.\n",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "13817L",
                      "key": "sku"
                    }
                  ],
                  "raw": "{{base_url}}/sku-mappings/:sku"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "The ETag from a previous `GET`; delete only if unchanged.",
                      "type": "text/plain"
                    },
                    "key": "If-Match",
                    "value": "string"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://wjNzcNWHyrfCRj.tnKHSJNzuzd\",\n  \"title\": \"string\",\n  \"status\": 7335,\n  \"detail\": \"string\",\n  \"code\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"detail\": \"string\",\n      \"pointer\": \"string\",\n      \"parameter\": \"string\"\n    },\n    {\n      \"detail\": \"string\",\n      \"pointer\": \"string\",\n      \"parameter\": \"string\"\n    }\n  ],\n  \"limit\": \"string\",\n  \"retry_after\": 4401\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "name": "503 Service Unavailable",
              "originalRequest": {
                "url": {
                  "path": [
                    "sku-mappings",
                    ":sku"
                  ],
                  "host": [
                    "{{base_url}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) Your SKU, percent-encoded. SKUs may contain `/`, spaces, `+`, `%` and non-ASCII characters; encode\nevery reserved character (e.g. `AB/12 X` → `AB%2F12%20X`). Surrounding whitespace (space, tab, CR, LF,\nnon-breaking space) is trimmed. A SKU can't contain line breaks or other control characters inside it.\n",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "13817L",
                      "key": "sku"
                    }
                  ],
                  "raw": "{{base_url}}/sku-mappings/:sku"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": {
                      "content": "The ETag from a previous `GET`; delete only if unchanged.",
                      "type": "text/plain"
                    },
                    "key": "If-Match",
                    "value": "string"
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "Service Unavailable",
              "code": 503,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": {
                    "content": "",
                    "type": "text/plain"
                  },
                  "key": "Retry-After",
                  "value": ""
                }
              ],
              "body": "{\n  \"type\": \"https://wjNzcNWHyrfCRj.tnKHSJNzuzd\",\n  \"title\": \"string\",\n  \"status\": 7335,\n  \"detail\": \"string\",\n  \"code\": \"string\",\n  \"request_id\": \"string\",\n  \"errors\": [\n    {\n      \"detail\": \"string\",\n      \"pointer\": \"string\",\n      \"parameter\": \"string\"\n    },\n    {\n      \"detail\": \"string\",\n      \"pointer\": \"string\",\n      \"parameter\": \"string\"\n    }\n  ],\n  \"limit\": \"string\",\n  \"retry_after\": 4401\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ]
    }
  ],
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{api_key}}",
        "type": "string"
      }
    ]
  },
  "event": [],
  "variable": [
    {
      "key": "base_url",
      "value": "https://api.getprice.ai/v1",
      "type": "string"
    }
  ],
  "info": {
    "_postman_id": "3666326d-1ab3-5437-bde8-28e3052b963d",
    "name": "GetPrice API",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
    "description": {
      "type": "text/markdown",
      "content": "Look up competitor prices for your own SKUs.\n\n1. Import this collection and the **GetPrice API** environment.\n2. Select the environment, and paste your key as the *current* value of `api_key`.\n3. Send **Account > Retrieve your API key**.\n\nNever put your key in the initial value or in a shared or public workspace. Guide: https://www.getprice.ai/developers/use-with-postman"
    }
  }
}
