---
search:
  tags:
    - Produkte
    - GET
seo:
  description: Produkte auflisten oder mit q suchen.
sidebar:
  label: Produkte auflisten oder suchen
  badge: GET
title: Produkte auflisten oder suchen
type: openapi-operation
---
Produkte auflisten oder mit `q` suchen.

Ohne `q` sind Produkte nach `name` sortiert; mit `cursor` paginieren. Mit `q` sind Treffer nach Relevanz sortiert und werden mit `offset` paginiert; `limit` ist auf 250 begrenzt. Sieht `q` wie ein Barcode aus (mindestens 8 Buchstaben, Ziffern, `-` oder `_`, davon mindestens eine Ziffer), wird `barcode` bzw. `barcodeAliases` exakt verglichen statt Text gesucht.

Suchtreffer enthalten nur einen Teil der Felder: `id`, `name`, `price`, `barcode`, `supplier`, `category`, `externalId`, `taxCategory`, `margin`, `imageUrl`, `allowStore`, `hideStore`, die Aktionsfelder, `deactivated`, `ageRestriction`, `showOnScreen`, `openInput` und `showOnScale`. Den vollständigen Datensatz liefert der Abruf per ID.

`GET /products`

**Responses**

- `200` — Produktliste mit Meta.
- `400` — Ungültige Query-Parameter.
- `403` — Fehlender, unbekannter oder inaktiver API-Key oder ein Read-Key bei einem Schreibzugriff.
- `503` — Die Produktsuche ist vorübergehend nicht verfügbar.

Response example, 200 · Katalogseite (ohne Suche):

```json
{
  "data": [
    {
      "id": "a1b2c3",
      "name": "Mineralwasser 50cl",
      "price": 120,
      "barcode": "7610800001234",
      "taxCategory": "2.6",
      "category": "cat_01",
      "supplier": "sup_01",
      "showOnScreen": true
    }
  ],
  "meta": {
    "total": 1,
    "returned": 1,
    "limit": 1,
    "nextCursor": "a1b2c3"
  }
}
```

Response example, 200 · Suche mit q:

```json
{
  "data": [
    {
      "id": "a1b2c3",
      "name": "Mineralwasser 50cl",
      "price": 120,
      "barcode": "7610800001234",
      "taxCategory": "2.6"
    }
  ],
  "meta": {
    "total": 42,
    "returned": 20,
    "limit": 20,
    "offset": 0
  }
}
```

Response example, 400:

```json
{
  "error": {
    "formErrors": [],
    "fieldErrors": {
      "limit": [
        "Number must be less than or equal to 5000"
      ]
    }
  }
}
```

Response example, 403:

```json
{
  "statusCode": 403,
  "message": "Unknown Error",
  "timestamp": "2024-04-20T12:00:00.000Z",
  "path": "/api/v1/products"
}
```

Response example, 503:

```json
{
  "error": "Product search failed"
}
```
