Ontwikkelaarsportaal — API

Koppel externe systemen aan het ZwemExpert / ExpertSwimCamp-platform via onze REST API: kampen, inschrijvingen, betalingen, klanten en meer — plus uitgaande webhooks voor realtime updates.

Basis-URL

https://zwemexpert-website.mike-6ba.workers.dev/api/public/v1

Authenticatie

Elke aanvraag vereist een API-sleutel via de Authorization: Bearer …-header (of X-API-Key). Sleutels worden door een beheerder aangemaakt en zijn per merk en per scope beperkt.

curl -H "Authorization: Bearer ze_live_…" \
  "https://zwemexpert-website.mike-6ba.workers.dev/api/public/v1/camps?limit=10&locale=nl"

Conventies

Scopes

camps:readKampen en beschikbaarheid lezen
coaches:readCoaches lezen
registrations:readInschrijvingen lezen
registrations:writeInschrijvingen aanmaken/wijzigen
participants:readDeelnemers (kinderen) lezen
customers:readKlanten (ouders) lezen
payments:readBetalingen lezen
waitlist:readWachtlijst lezen
waitlist:writeWachtlijst-aanmeldingen toevoegen
stats:readKerncijfers lezen
webhooks:manageWebhooks beheren

Fouten

Fouten hebben een stabiele error.code en een gelokaliseerde error.message.

authentication_error401Ongeldige/ontbrekende sleutel
permission_error403Scope of merk niet toegestaan
invalid_request_error400/422Ongeldige invoer
not_found404Resource bestaat niet
rate_limit_error429Te veel verzoeken
idempotency_error409Idempotency-conflict
api_error500Interne fout

Webhooks

Abonneer je op events; wij leveren een POST met een HMAC-SHA256-handtekening (header X-ZE-Signature: t=…,v1=…, ondertekend over `${t}.${body}` met het webhook-secret).

Beschikbare events: registration.created, registration.updated, registration.status_changed, registration.cancelled, payment.paid, payment.failed, payment.refunded, camp.published, camp.updated, camp.full, waitlist.created.

POST https://jouw-systeem.nl/webhook
X-ZE-Event: registration.created
X-ZE-Signature: t=1736531200,v1=

{ "id": "evt_…", "type": "registration.created",
  "created": "2026-07-11T12:00:00Z", "brand": "zwemexpert",
  "data": { "object": { "object": "registration", "id": 123, … } } }

Endpoint-overzicht

Volledige machine-leesbare spec: openapi.json (importeerbaar in Postman, Insomnia of Redoc).

Endpoints laden…
Bekijk kampen 2026