Aan de slag
Introductie
Wat de Borkol storefront-API is, de base URL en versionering, en een quickstart in drie stappen.
Bekijk als MarkdownDe Borkol storefront-API is de publieke HTTP-API van het Borkol-commerceplatform. Hij geeft je programmatische lees- en schrijftoegang tot één winkel (een tenant): de productcatalogus, voorraadniveaus, klanten, bestellingen en custom objects. Je gebruikt hem om custom storefronts, headless frontends, mobiele apps en server-side integraties tegen een Borkol-winkel te bouwen.
De API is een conventionele JSON-over-HTTPS-API. Elke request body en response body is JSON. Authenticatie gebeurt met een tenant-API-key die als bearer token wordt meegestuurd. Er zijn geen cookies, geen sessies en geen OAuth-flows op de storefront-API.
Base URL
Alle requests gaan naar:
https://api.borkol.comDe API is geversioneerd in het URL-pad. De huidige en enige versie is v1, dus elke route in deze documentatie begint met /v1. Geauthenticeerde storefront-routes leven onder /v1/api/...; de enige ongeauthenticeerde route is de health check op /v1/ping.
Module-surfaces worden gemount onder /v1/api/{module}:
| Module | Mount point |
|---|---|
| Commerce | /v1/api/commerce (plus /v1/api/commerce/configurator) |
| Stock | /v1/api/stock |
| Customers | /v1/api/customers |
| Objects | /v1/api/objects |
| Forms | /v1/api/forms |
Een module-surface is alleen bereikbaar wanneer die module voor jouw winkel is ingeschakeld. Het aanroepen van een route van een uitgeschakelde module geeft 403 {"error": "Module not enabled: {key}"} terug. Zie Errors en rate limits voor de volledige errorcatalogus.
Authenticatie in één regel
Elke /v1/api-request stuurt een tenant-API-key mee als bearer token:
Authorization: Bearer {api_key}De key identificeert de winkel, dus een aparte tenant-header is niet nodig. Merchants maken keys aan in het client-dashboard (app.borkol.com) onder Settings > API keys. Elke key draagt een set scopes (bijvoorbeeld commerce:read) die bepalen welke endpoints hij mag aanroepen. Alle details staan op de pagina Authenticatie.
Conventies
Deze gelden voor de hele API:
- Resource-ID's zijn UUID-strings (API-key-ID's, die alleen voorkomen in de merchant-dashboardflow, zijn integers).
- Geldbedragen zijn integers in minor units (centen) met een apart ISO 4217
currency-veld.15900met"currency": "EUR"betekent EUR 159.00. - Timestamps zijn ISO 8601-strings.
- Lijst-endpoints gebruiken de paginatie-envelope die eenmalig gedocumenteerd is in Errors en rate limits. De basis-endpoints op deze pagina's (
/v1/ping,/v1/api/me) geven kale JSON-objecten terug zonder wrapper.
Quickstart
Drie requests brengen je van niets naar je eerste catalogusaanroep.
Stap 1: controleer de connectiviteit. /v1/ping heeft geen credentials nodig en bevestigt dat de base URL en API-versie bereikbaar zijn.
curl https://api.borkol.com/v1/ping{
"status": "ok",
"version": "v1"
}Stap 2: controleer je API-key. Maak in het client-dashboard (Settings > API keys) een key aan met minimaal de scope commerce:read en roep daarna /v1/api/me aan. Dat geeft de winkel terug waar de key bij hoort en de scopes die de key draagt. Dit endpoint vereist geen scope, alleen een geldige key.
curl https://api.borkol.com/v1/api/me \
-H "Authorization: Bearer {api_key}"{
"tenant": {
"id": "9c4e7f0a-2b31-4d6e-8f0a-1d2c3b4a5e6f",
"name": "Example Store",
"slug": "example-store"
},
"scopes": ["tenant:read", "commerce:read"]
}Stap 3: haal de catalogus op. Vraag met een key die commerce:read draagt de productlijst van de commerce-module op. Deze request faalt met 403 {"error": "Module not enabled: commerce"} als de commerce-module niet is ingeschakeld voor de winkel, en met 403 {"message": "Invalid ability provided."} als de key de scope commerce:read mist.
curl https://api.borkol.com/v1/api/commerce/products \
-H "Authorization: Bearer {api_key}"De response is een gepagineerde productlijst; de product-endpoints zijn gedocumenteerd in het hoofdstuk Commerce.
Waar nu naartoe
- Authenticatie: API keys, scopes, het
/v1/api/meendpoint en tenant-suspensie. - Errors en rate limits: elke error-envelope, de vorm van de 422-validatiefout, rate limiting en de paginatie-envelope.
- Webhooks: event-gedreven notificaties voor bestellingen en voorraadwijzigingen.