Lookup per EAN
Rufe einen einzelnen Lebensmittel- oder Sportnahrungs-Produktdatensatz über seine EAN (European Article Number, auch Barcode genannt) ab. Gibt die kanonische, normalisierte Version mit Nährwertdaten und den Märkten zurück, in denen das Produkt bekannt ist.
GET
/v1/products/:eanPath-Parameter
| Feld | Typ | Beschreibung |
|---|---|---|
| ean | string | 8-, 12-, 13- oder 14-stelliger Barcode. Führende Nullen bleiben erhalten. Wir validieren keine Prüfziffern — übergib genau das, was auf der Verpackung steht. |
Query-Parameter
| Feld | Typ | Beschreibung |
|---|---|---|
| country | string | Optionaler ISO 3166-1 alpha-2 Filter für den primären Markt, zum Beispiel NL, BE, DE oder GB. Gibt 404 zurück, wenn der primäre Markt des Produkts nicht passt. |
Anfrage
curl "https://shelfbase.app/api/v1/products/8718907400435?country=NL" \
-H "Authorization: Bearer sb_live_..."Antwort
Gibt 200 OK mit einem JSON-Objekt zurück. 404, wenn kein Produkt passt, wenn der primäre Markt nicht passt oder wenn noch keine nutzbaren Nährwertdaten verfügbar sind.
Endpoint: /api/v1/products/8718907400435?country=NL
{
"ean": "8718907400435",
"name": "Optimum Nutrition Gold Standard 100% Whey, Vanilla Ice Cream, 2.27kg",
"brand": "Optimum Nutrition",
"weight": "2270 g",
"country": "NL",
"countries": [
"NL"
],
"nutrition_basis": "PER_100G",
"nutrition": {
"energy_kj": 1570,
"energy_kcal": 375,
"fat_g": 3.8,
"saturated_fat_g": 2,
"unsaturated_fat_g": null,
"carbs_g": 7.5,
"sugar_g": 3.5,
"fiber_g": 1,
"protein_g": 79.2,
"salt_g": 0.5,
"extras": null
},
"nutrition_per_100": {
"energy_kj": 1570,
"energy_kcal": 375,
"fat_g": 3.8,
"saturated_fat_g": 2,
"unsaturated_fat_g": null,
"carbs_g": 7.5,
"sugar_g": 3.5,
"fiber_g": 1,
"protein_g": 79.2,
"salt_g": 0.5,
"extras": null
},
"nutrition_per_serving": null,
"ingredients": {
"raw": "Whey protein concentrate, whey protein isolate, emulsifier: soy lecithin, flavouring, sweetener: sucralose.",
"parsed": [
"whey protein concentrate",
"whey protein isolate",
"soy lecithin",
"flavouring",
"sucralose"
]
},
"allergens": [
"MILK",
"SOY"
],
"allergens_status": {
"advisory_only": true,
"notice": "Allergen data is informational only. Consumers must verify allergen information on the product packaging.",
"last_verified_at": "2026-04-22T08:31:11Z",
"confidence": 0.94
},
"is_multipack": false,
"updated_at": "2026-05-10T03:12:44Z"
}Beispieldaten: Netherlands. Die Struktur entspricht der öffentlichen API; Werte sind repräsentativ.
Top-Level-Felder
| Feld | Typ | Beschreibung |
|---|---|---|
| ean | string | Echo der angeforderten EAN. |
| name | string | Anzeigename. Fällt auf den kanonischen Namen und dann auf den rohen Namen der Quelle zurück. |
| brand | string | null | Normalisierter Markenname. Null für markenlose oder unbekannte Produkte. |
| weight | string | null | Nettogewicht mit Einheitssuffix (g, ml, kg, l). |
| country | string | null | Primärer Markt für den zurückgegebenen Treffer. |
| countries | string[] | Länder, in denen dieses Produkt bekannt ist, als ISO 3166-1 alpha-2 Codes. |
| nutrition_basis | string | null | Basis der Nährwerte, zum Beispiel PER_100G, PER_100ML oder PER_SERVING. |
| nutrition | object | Primäre Nährwerte für die angegebene Basis. |
| nutrition_per_100 | object | null | Nährwerte pro 100g oder 100ml. Null, wenn die Quelle nur zuverlässige Portionswerte liefert. |
| nutrition_per_serving | object | null | Nährwerte pro Portion, wenn die Quelle zuverlässige Portionsdaten liefert. |
| is_multipack | boolean | Ob der Datensatz ein Multipack-Produkt repräsentiert. |
| ingredients | object | null | Roher Labeltext und, wenn verfügbar, eine geparste strukturierte Liste. |
| allergens | string[] | Enum-Werte: MILK, GLUTEN, NUTS, EGGS, SOY, FISH, SHELLFISH, SESAME, PEANUTS, CELERY, MUSTARD, LUPIN, MOLLUSCS, SULPHITES. |
| allergens_status | object | Herkunftsmetadaten für Allergeninformationen — Konfidenz, Zeitstempel der letzten Verifikation und der Hinweis, dass die Daten nur informativ sind. |
| updated_at | ISO 8601 | Zeitpunkt, zu dem wir den kanonischen Datensatz zuletzt aktualisiert haben. |
Fehler
401— fehlender oder ungültiger Schlüssel. Siehe Authentifizierung.400— ungültiges country-Format.404— kein Produkt passt zu dieser EAN oder dem primären Marktfilter, oder das Produkt hat noch keine nutzbaren Nährwertdaten.429— Kontingent überschritten. Siehe Rate-Limits.