ShelfBase

Produkte suchen

Substring-Suche über Nicht-Multipack-Lebensmittel und Sportnahrungsprodukte mit nutzbaren Nährwertdaten. Sucht in Anzeigename, kanonischem Namen, Marke und EAN. Groß-/Kleinschreibung wird ignoriert. Paginiert, mit harter Obergrenze von 50 Ergebnissen pro Seite.

GET/v1/products/search

Query-Parameter

FeldTypBeschreibung
qstringSuchbegriff. Leer oder fehlend → gibt alle öffentlichen Nicht-Multipack-Produkte mit Nährwertdaten paginiert zurück.
countrystringOptionaler ISO 3166-1 alpha-2 Filter für den primären Markt, zum Beispiel NL, BE, DE oder GB.
pageintegerNullindizierte Seitennummer. Standard 0.
limitintegerSeitengröße. Standard 20, maximal 50.

Anfrage

curl "https://shelfbase.app/api/v1/products/search?q=whey+protein&country=NL&limit=5" \
  -H "Authorization: Bearer sb_live_..."

Antwort

{
  "data": [
    {
      "ean": "8718907400435",
      "name": "Optimum Nutrition Gold Standard 100% Whey, Vanilla Ice Cream, 2.27kg",
      "brand": "Optimum Nutrition",
      "countries": ["NL"],
      "nutrition_per_100": { ... },
      "ingredients": { ... },
      "allergens": ["MILK", "SOY"],
      "updated_at": "2026-05-10T03:12:44Z"
    }
  ],
  "total": 247,
  "page": 0,
  "limit": 5
}

Antwortfelder

FeldTypBeschreibung
dataProduct[]Array von Produktdatensätzen. Gleiche Form wie die Lookup-by-EAN-Antwort.
totalintegerGesamtzahl der Treffer über alle Seiten.
pageintegerEcho der angeforderten Seite.
limitintegerEcho des angeforderten Limits (nach Kappung bei 50).

Matching-Verhalten

  • Substring-Match (keine Volltextsuche). Der angegebene Suchbegriff muss als Textfragment in mindestens einem der durchsuchten Felder vorkommen.
  • Groß-/Kleinschreibung wird in allen Textfeldern ignoriert.
  • EAN-Matching ist präfix-tolerant — teilweise Ziffernfolgen matchen.
  • Alle Ergebnisse haben nutzbare Nährwertdaten; Produkte ohne Nährwertdaten werden nicht zurückgegeben.
  • Multipack-Datensätze werden aus Suchergebnissen gefiltert.
  • Wenn country angegeben ist, werden nur Produkte zurückgegeben, deren primärer Markt passt. Das ist Katalogabdeckung, kein Live-Bestandsstatus.
  • Kein Fuzzy-Matching. Tippfehler matchen nicht.

Fehler

  • 401 — fehlender oder ungültiger Schlüssel.
  • 400 — ungültiges country-Format.
  • 429 — Kontingent überschritten.