Introduction
ShelfBase is an API for structured nutrition data on European food and sports nutrition products. Available markets are the Netherlands, Belgium, Germany, and the United Kingdom. This guide covers everything you need to integrate.
Base URL
All requests go to a single base URL:
https://shelfbase.app/api/v1Quickstart
Sign up, verify your email, copy your API key from the dashboard, and you are ready to call the API. Free tier includes 1,000 requests per month with no card required.
# Lookup by EAN
curl https://shelfbase.app/api/v1/products/8718907400435 \
-H "Authorization: Bearer sb_live_..."What you get back
Every product record is normalized, dedupe-keyed by EAN, and includes nutrition data. Each response includes:
- Display name, canonical name, and brand
- Nutrition per 100g (kJ, kcal, fat, sat fat, carbs, sugar, fiber, protein, salt)
- Ingredient text (raw and parsed where available)
- Allergen list with provenance and confidence
- Weight, countries, and last-updated timestamp
Two endpoints
GET
/v1/products/:eanGET
/v1/products/searchPlus a public /v1/stats endpoint (no auth) that returns aggregate counts. Every endpoint returns JSON; errors follow a single shape — see Errors.
Next steps
- Authentication — bearer headers, key rotation, expiry
- Lookup by EAN — full response schema
- Rate limits & quotas — per-tier limits