ShelfBase

Zoek op EAN

Haal één food- of sportvoedingsproduct op via zijn EAN (European Article Number, ook bekend als barcode). Geeft de canonieke, genormaliseerde versie terug met voedingsdata en de markten waarin het product bekend is.

GET/v1/products/:ean

Path-parameters

VeldTypeBeschrijving
eanstringBarcode van 8, 12, 13 of 14 cijfers. Voorloopnullen blijven behouden. We valideren geen checksum-cijfers — geef precies door wat op de verpakking staat.

Query-parameters

VeldTypeBeschrijving
countrystringOptioneel ISO 3166-1 alpha-2 primaire-marktfilter, bijvoorbeeld NL, BE, DE of GB. Geeft 404 als de primaire markt van het product niet matcht.

Aanvraag

curl "https://shelfbase.app/api/v1/products/8718907400435?country=NL" \
  -H "Authorization: Bearer sb_live_..."

Respons

Geeft 200 OK met JSON-object terug. 404 als geen product matcht, als de primaire markt niet matcht, of als er nog geen bruikbare voedingsdata beschikbaar is.

JSON-preview

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"
}

Voorbeelddata: Netherlands. De vorm komt overeen met de publieke API; waarden zijn representatief.

Top-level velden

VeldTypeBeschrijving
eanstringEcho van de gevraagde EAN.
namestringWeergavenaam. Fallback op canonieke naam, dan ruwe naam van de bron.
brandstring | nullGenormaliseerde merknaam. Null voor merkloos of onbekend.
weightstring | nullNetto gewicht met eenheid-suffix (g, ml, kg, l).
countrystring | nullPrimaire markt voor de geretourneerde match.
countriesstring[]Landen waarin dit product bekend is, als ISO 3166-1 alpha-2 codes.
nutrition_basisstring | nullBasis van de voedingswaarden, bijvoorbeeld PER_100G, PER_100ML of PER_SERVING.
nutritionobjectPrimaire voedingswaarden voor de opgegeven basis.
nutrition_per_100object | nullVoedingswaarden per 100g of 100ml. Null wanneer de bron alleen betrouwbare portiewaarden aanlevert.
nutrition_per_servingobject | nullVoedingswaarden per portie wanneer brondata dit betrouwbaar aanlevert.
is_multipackbooleanOf het record een multipack-product vertegenwoordigt.
ingredientsobject | nullRuwe label-tekst en een geparseerde gestructureerde lijst waar beschikbaar.
allergensstring[]Enum-waarden: MILK, GLUTEN, NUTS, EGGS, SOY, FISH, SHELLFISH, SESAME, PEANUTS, CELERY, MUSTARD, LUPIN, MOLLUSCS, SULPHITES.
allergens_statusobjectProvenance-metadata voor allergenendata — confidence, laatste verificatie-tijdstempel en de advisory-disclaimer.
updated_atISO 8601Wanneer we het canonieke record laatst hebben bijgewerkt.

Fouten

  • 401 — ontbrekende of ongeldige sleutel. Zie Authenticatie.
  • 400 — ongeldig country-formaat.
  • 404 — geen product matcht die EAN of primaire-marktfilter, of het product heeft nog geen bruikbare voedingsdata.
  • 429 — quotum overschreden. Zie Rate limits.