Publieke API voor deelnemende kringloopwinkels. Base URL:
https://winkels.denationalekringloopbon.nl
Authenticatie
GET /api/stores vereist een applicatie-API-key. Maak keys aan in het
admin-dashboard onder API Keys (één key per applicatie, bijv.
denationalekringloopbon.nl).
curl 'https://winkels.denationalekringloopbon.nl/api/stores?limit=20' \
-H 'Authorization: Bearer wkb_…'
De publieke HTML-pagina op /winkels gebruikt server-side data en
client-side zoeken — geen API-key nodig voor bezoekers.
Integratie-advies
Gebruik altijd server-side zoeken en paginering via query parameters. Haal niet de volledige lijst op om client-side te filteren of pagineren.
- Zoeken: stuur
q(ofsearch) mee — filtering en query-logging gebeuren op de server. - Paginering: gebruik
limitenoffsetvoor elke pagina. LeesX-Total-Countuit de response headers voor het totaal aantal treffers. - Debouncing: wacht ~300–500 ms na typen voordat je een zoek-request stuurt.
- Caching: cache alleen requests zonder
q,limitofoffset.
Endpoints
Alle gepubliceerde winkels. Dit is de canonical winkel-API — de hoofdsite en andere frontends halen hier hun data vandaan.
| Query | Beschrijving |
|---|---|
q of search | Filter op naam, plaats, adres of categorie. Logt de zoekopdracht server-side. |
limit | Maximaal aantal resultaten per pagina (1–100). Gebruik dit voor server-side paginering. |
offset | Aantal over te slaan resultaten (standaard 0). Combineer met limit voor volgende pagina's. |
# Eerste pagina (20 resultaten)
curl 'https://winkels.denationalekringloopbon.nl/api/stores?limit=20&offset=0' \
-H 'Authorization: Bearer wkb_JOUW_KEY'
# Zoeken + paginering
curl 'https://winkels.denationalekringloopbon.nl/api/stores?q=amsterdam&limit=20&offset=0' \
-H 'Authorization: Bearer wkb_JOUW_KEY'
# Volgende pagina
curl 'https://winkels.denationalekringloopbon.nl/api/stores?q=amsterdam&limit=20&offset=20'
Response: JSON-array. Met limit bevat de response ook headers
X-Total-Count, X-Offset en X-Limit.
CORS: open (*). Zoekopdrachten worden server-side gelogd in D1.
Store object
{
"id": "uuid",
"name": "055Fashion",
"slug": "055fashion",
"address": "Schotweg 4-b, Apeldoorn",
"city": "Apeldoorn",
"postal_code": "7311DT",
"phone": "06 51036369",
"email": "info@example.nl",
"website": "https://www.example.nl",
"latitude": 52.21,
"longitude": 5.95,
"categories": ["Tweedehands kledingwinkel"],
"store_type": "winkel",
"image_url": "https://…",
"description": "<p>HTML beschrijving</p>",
"status": "published",
"participates_nkb": true,
"has_action": false,
"action_description": null
}
Pagina's
GET /— Winkeloverzicht (HTML)GET /winkels— Alias voor winkeloverzichtGET /api/docs— Deze documentatieGET /admin/dashboard/api-keys— Admin (API keys beheren)
Bron van data
winkels.denationalekringloopbon.nl is de bron van waarheid voor winkeldata.
De database (D1) wordt beheerd via het admin-dashboard of het CRM.
Andere websites — waaronder denationalekringloopbon.nl — consumeren
GET /api/stores van dit domein. Er is geen automatische import
meer vanuit de oude NKB-site; bewerkingen blijven behouden.