{
  "info": {
    "_postman_id": "2f72e208-5a90-4c5d-8b48-c2de164f7ce8",
    "name": "Kartustok Public API v1",
    "description": "Postman collection for Kartustok public read-only API. Current product language uses Warehouse, while the technical contract still uses /locators and locator_id for compatibility.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://your-subdomain.kartustok.com/public/v1"
    },
    {
      "key": "apiToken",
      "value": "YOUR_API_TOKEN"
    },
    {
      "key": "itemId",
      "value": "ITEM_PUBLIC_ID"
    },
    {
      "key": "categoryId",
      "value": "CATEGORY_PUBLIC_ID"
    },
    {
      "key": "warehouseId",
      "value": "WAREHOUSE_PUBLIC_ID"
    }
  ],
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{apiToken}}",
        "type": "string"
      }
    ]
  },
  "item": [
    {
      "name": "Meta",
      "item": [
        {
          "name": "Health",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/health",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "health"
              ]
            },
            "description": "Requires meta.read"
          }
        },
        {
          "name": "Company Metadata",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/meta/company",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "meta",
                "company"
              ]
            },
            "description": "Requires meta.read"
          }
        }
      ]
    },
    {
      "name": "Items",
      "item": [
        {
          "name": "List Items",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/items?page=1&per_page=20&is_active=1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "items"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "1"
                },
                {
                  "key": "per_page",
                  "value": "20"
                },
                {
                  "key": "is_active",
                  "value": "1"
                }
              ]
            },
            "description": "Requires item.read"
          }
        },
        {
          "name": "List Items by Category",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/items?page=1&per_page=20&category_id={{categoryId}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "items"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "1"
                },
                {
                  "key": "per_page",
                  "value": "20"
                },
                {
                  "key": "category_id",
                  "value": "{{categoryId}}"
                }
              ]
            },
            "description": "Requires item.read"
          }
        },
        {
          "name": "Item Detail",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/items/{{itemId}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "items",
                "{{itemId}}"
              ]
            },
            "description": "Requires item.read"
          }
        }
      ]
    },
    {
      "name": "Master Data",
      "item": [
        {
          "name": "Item Categories",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/item-categories?is_active=1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "item-categories"
              ],
              "query": [
                {
                  "key": "is_active",
                  "value": "1"
                }
              ]
            },
            "description": "Requires category.read"
          }
        },
        {
          "name": "Warehouses (/locators)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/locators?is_active=1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "locators"
              ],
              "query": [
                {
                  "key": "is_active",
                  "value": "1"
                }
              ]
            },
            "description": "Requires locator.read. Returns warehouse master data even though the endpoint path remains /locators."
          }
        }
      ]
    },
    {
      "name": "Stock",
      "item": [
        {
          "name": "Stock Summary",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/stock/summary?date_from=2026-05-01&date_to=2026-05-14&page=1&per_page=20",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "stock",
                "summary"
              ],
              "query": [
                {
                  "key": "date_from",
                  "value": "2026-05-01"
                },
                {
                  "key": "date_to",
                  "value": "2026-05-14"
                },
                {
                  "key": "page",
                  "value": "1"
                },
                {
                  "key": "per_page",
                  "value": "20"
                }
              ]
            },
            "description": "Requires stock.read"
          }
        },
        {
          "name": "Stock Summary by Category",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/stock/summary?date_from=2026-05-01&date_to=2026-05-14&category_id={{categoryId}}&page=1&per_page=20",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "stock",
                "summary"
              ],
              "query": [
                {
                  "key": "date_from",
                  "value": "2026-05-01"
                },
                {
                  "key": "date_to",
                  "value": "2026-05-14"
                },
                {
                  "key": "category_id",
                  "value": "{{categoryId}}"
                },
                {
                  "key": "page",
                  "value": "1"
                },
                {
                  "key": "per_page",
                  "value": "20"
                }
              ]
            },
            "description": "Requires stock.read"
          }
        },
        {
          "name": "Stock Detail",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/stock/detail?locator_id={{warehouseId}}&date_from=2026-05-01&date_to=2026-05-14&page=1&per_page=20",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "stock",
                "detail"
              ],
              "query": [
                {
                  "key": "locator_id",
                  "value": "{{warehouseId}}"
                },
                {
                  "key": "date_from",
                  "value": "2026-05-01"
                },
                {
                  "key": "date_to",
                  "value": "2026-05-14"
                },
                {
                  "key": "page",
                  "value": "1"
                },
                {
                  "key": "per_page",
                  "value": "20"
                }
              ]
            },
            "description": "Requires stock.read. locator_id is the required warehouse opaque ID."
          }
        },
        {
          "name": "Stock Detail by Warehouse and Item",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/stock/detail?locator_id={{warehouseId}}&item_id={{itemId}}&date_from=2026-05-01&date_to=2026-05-14&page=1&per_page=20",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "stock",
                "detail"
              ],
              "query": [
                {
                  "key": "locator_id",
                  "value": "{{warehouseId}}"
                },
                {
                  "key": "item_id",
                  "value": "{{itemId}}"
                },
                {
                  "key": "date_from",
                  "value": "2026-05-01"
                },
                {
                  "key": "date_to",
                  "value": "2026-05-14"
                },
                {
                  "key": "page",
                  "value": "1"
                },
                {
                  "key": "per_page",
                  "value": "20"
                }
              ]
            },
            "description": "Requires stock.read. locator_id is the required warehouse opaque ID."
          }
        }
      ]
    }
  ]
}
