Producten zoeken
Substring-zoekopdracht over niet-multipack food- en sportvoedingsproducten met bruikbare voedingsdata. Zoekt in weergavenaam, canonieke naam, merk en EAN. Case-insensitive. Gepagineerd, met harde cap van 50 resultaten per pagina.
GET
/v1/products/searchQuery-parameters
| Veld | Type | Beschrijving |
|---|---|---|
| q | string | Zoekterm. Leeg of ontbrekend → geeft alle publieke niet-multipack producten met voedingsdata gepagineerd terug. |
| country | string | Optioneel ISO 3166-1 alpha-2 primaire-marktfilter, bijvoorbeeld NL, BE, DE of GB. |
| page | integer | Nul-geïndexeerd paginanummer. Standaard 0. |
| limit | integer | Pagina-grootte. Standaard 20, max 50. |
Aanvraag
curl "https://shelfbase.app/api/v1/products/search?q=whey+protein&country=NL&limit=5" \
-H "Authorization: Bearer sb_live_..."Respons
{
"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
}Response-velden
| Veld | Type | Beschrijving |
|---|---|---|
| data | Product[] | Array van product-records. Zelfde vorm als de lookup-by-EAN response. |
| total | integer | Totaal aantal matches over alle pagina's. |
| page | integer | Echo van de gevraagde pagina. |
| limit | integer | Echo van het gevraagde limit (na cap op 50). |
Matching-gedrag
- Substring-match (geen full-text search). De opgegeven zoekterm moet als tekstfragment voorkomen in minstens één van de doorzochte velden.
- Case-insensitive op alle tekstvelden.
- EAN-matching is prefix-tolerant — gedeeltelijke cijferreeksen matchen.
- Alle resultaten hebben bruikbare voedingsdata; producten zonder voedingsdata worden niet teruggegeven.
- Multipack-records worden uit zoekresultaten gefilterd.
- Met
countryworden alleen producten teruggegeven waarvan de primaire markt matcht. Dit is catalogusdekking, geen live voorraadstatus. - Geen fuzzy-matching. Spelfouten matchen niet.
Fouten
401— ontbrekende of ongeldige sleutel.400— ongeldig country-formaat.429— quotum overschreden.