# List catalog product groups

**GET** `/catalog/product-groups`

## Parameters

### `delivery_country` (_query_, required)

ISO 3166-1 alpha-2 delivery country code (e.g. FR). Filters catalog by available_countries; cart line items must use a country allowed for the catalog product.

- **Type:** `string`
- **Example:** `"FR"`

### `category` (_query_, optional)

Optional filter: product group category code (exact match). Use one of the documented enum values, for example COMPUTER or SCREEN.

- **Type:** `string`
- **Example:** `"COMPUTER"`
- **Enum:** `"ACOUSTIC_CHAIR"`, `"ACOUSTIC_PARTITION"`, `"ADAPTER"`, `"ARMCHAIR"`, `"CASE"`, `"CHAIR"`, `"CHARGER"`, `"COMPUTER"`, `"DESK"`, `"HEADPHONES"`, `"KEYBOARD"`, `"LAMP"`, `"MOUSE"`, `"OTHER"`, `"PHONEBOOTH"`, `"PRINTER"`, `"SCREEN"`, `"SHELVING_UNIT"`, `"SMARTPHONE"`, `"SOFA"`, `"SPEAKERS"`, `"STORAGE_CABINET"`, `"TABLE"`, `"TABLET"`

### `brand` (_query_, optional)

Optional filter: catalog brand key (slug, usually lowercase). The enum lists common values; other brands may exist and are accepted at runtime.

- **Type:** `string`
- **Example:** `"apple"`
- **Enum:** `"acer"`, `"acer-chromebook"`, `"amazon"`, `"apple"`, `"asus"`, `"bose"`, `"corsair"`, `"dell"`, `"google"`, `"hp"`, `"huawei"`, `"hyperx"`, `"jabra"`, `"lenovo"`, `"lg"`, `"logitech"`, `"meta"`, `"microsoft"`, `"nothing"`, `"oneplus"`, `"poly"`, `"razer"`, `"samsung"`, `"sonos"`, `"sony"`, `"steelseries"`, `"ubiquiti"`, `"wacom"`, `"xiaomi"`, `"yealink"`
- **Constraints:** min length 1

### `search` (_query_, optional)

Optional case-insensitive search on product group name and brand

- **Type:** `string`
- **Example:** `"macbook"`
- **Constraints:** min length 1

### `limit` (_query_, optional)

Maximum number of product groups returned per page

- **Type:** `integer`
- **Default:** `20`
- **Example:** `20`
- **Constraints:** >= 1, <= 100

### `offset` (_query_, optional)

Number of items to skip

- **Type:** `integer`
- **Nullable:** yes
- **Default:** `0`
- **Example:** `0`
- **Constraints:** >= 0

## Responses

### 200

Product groups with optional filters and limit/offset pagination

**application/json**

_Schema ref:_ `#/components/schemas/ListCatalogProductGroupsResponse` (ListCatalogProductGroupsResponse)

```json
{
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "img_url": {
            "type": "string",
            "nullable": true
          },
          "slug": {
            "type": "string",
            "nullable": true
          },
          "category": {
            "type": "string",
            "nullable": true
          },
          "brand": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "id",
          "name",
          "img_url",
          "slug",
          "category",
          "brand"
        ]
      }
    },
    "meta": {
      "type": "object",
      "properties": {
        "total": {
          "type": "integer",
          "description": "Total rows matching filters (before paging)",
          "example": 42
        },
        "limit": {
          "type": "integer",
          "description": "Requested page size after validation",
          "example": 50
        },
        "offset": {
          "type": "integer",
          "description": "Requested offset after validation",
          "example": 0
        }
      },
      "required": [
        "total",
        "limit",
        "offset"
      ]
    }
  },
  "required": [
    "data",
    "meta"
  ]
}
```

### 400

Validation error

**application/json**

```json
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ]
}
```

### 404

Resource not found

**application/json**

_Schema ref:_ `#/components/schemas/CatalogContextNotFoundErrorResponse` (CatalogContextNotFoundErrorResponse)

```json
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string",
      "enum": [
        "COMPANY_NOT_FOUND",
        "COUNTRY_NOT_FOUND",
        "DELIVERY_COUNTRY_NOT_FOUND"
      ]
    }
  },
  "required": [
    "error"
  ]
}
```

## Security

```json
[
  {
    "bearerAuth": []
  }
]
```

**bearerAuth:** Bearer token using a Fleet platform API key (flt_sk_…).

---

_Generated from the OpenAPI specification for raw Markdown / tooling use._
