Skip to content
StraventaDocs

List catalog products (management workspace)

Returns the product-grain catalog-management list used by the product CRUD workspace, as the standard paginated envelope `{products, total, page, limit, total_pages}`. Each product carries its representative (earliest-created) variant's `sku`, `price_cents`, `currency`, `tax_category_id`, and `category_id` so the management grid renders without a second round-trip. Optional `search` matches the product name or any variant sku/name; optional `category_id` filters to products with a variant in that category. Distinct from `GET /catalog/variants` (the cashier REGISTER picker, variant grain). Requires `pos.catalog.read` or equivalent.

GET
/api/pos/v1/catalog/products

Returns the product-grain catalog-management list used by the product CRUD workspace, as the standard paginated envelope {products, total, page, limit, total_pages}. Each product carries its representative (earliest-created) variant's sku, price_cents, currency, tax_category_id, and category_id so the management grid renders without a second round-trip. Optional search matches the product name or any variant sku/name; optional category_id filters to products with a variant in that category. Distinct from GET /catalog/variants (the cashier REGISTER picker, variant grain). Requires pos.catalog.read or equivalent.

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Query Parameters

search?string
category_id?string
Formatuuid
page?integer
limit?integer

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/api/pos/v1/catalog/products"
{
  "products": [
    {
      "id": "018f4d9f-7b8a-7c2d-9a2d-1f8b92f6d400",
      "name": "Espresso",
      "description": "Single shot",
      "sku": "ESP-001",
      "price_cents": 25000,
      "currency": "IDR",
      "category_id": null,
      "modifier_ids": [],
      "tax_category_id": "beverages",
      "image_url": null,
      "status": "active",
      "active": true,
      "variant_count": 1
    }
  ],
  "total": 1,
  "page": 1,
  "limit": 50,
  "total_pages": 1
}
{
  "error": "string",
  "message": "string",
  "request_id": "string"
}
{
  "error": "string",
  "message": "string",
  "request_id": "string"
}
{
  "error": "string",
  "message": "string",
  "request_id": "string"
}

Was this page helpful?