Alle endpoints leveren application/json. Fouten volgen RFC 7807 (Problem+JSON). Elke response bevat een X-Request-Id-header voor correlatie met het serverzijdige auditlogboek.
| Method | Path | Machtiging | Doel |
|---|---|---|---|
| GET | /v1/health | public | Health-check zonder authenticatie. |
| GET | /v1/me | any | Eigen accountgegevens plus sleutel-metadata. |
| GET | /v1/products | read:products | Lijst van alle openbaar vermelde producten met prijzen. |
| GET | /v1/products/{id} | read:products | Productdetails inclusief configuratie-opties. |
| POST | /v1/orders | write:orders | Bestelling plaatsen. Idempotency-Key verplicht. |
| GET | /v1/orders/{id} | read:orders | Status van een eigen bestelling. |
| GET | /v1/services | read:services | Lijst van eigen services (gepagineerd). |
| GET | /v1/services/{id} | read:services | Details van een eigen service. |
| GET | /v1/services/{id}/credentials | read:credentials | Service-toegangsgegevens (aparte machtiging, audit-gelogd). |
| POST | /v1/services/{id}/actions | write:services | Service-actie: start, stop, reboot, cancel (per einde van de factureringsperiode), cancel_revoke. |
| GET | /v1/billing/balance | read:billing | Tegoed. |
| GET | /v1/billing/invoices | read:billing | Lijst van uw facturen (gepagineerd). |
| GET | /v1/billing/invoices/{id}/pdf | read:billing | Factuur-PDF. |
| GET | /v1/webhooks | read:webhooks | Huidige webhook-URL. |
| PUT | /v1/webhooks | write:webhooks | Webhook-URL instellen of verwijderen. |
Idempotentie
POST /v1/orders en POST /v1/services/{id}/actions vereisen de header Idempotency-Key (1 tot 80 tekens uit [A-Za-z0-9_.-]). De key is gebonden aan methode, pad en body. Herhaalt u dezelfde aanvraag binnen een uur met dezelfde key, dan krijgt u de opgeslagen response terug; daarna volgt 410 met reason replay_stale en moet u een nieuwe key sturen. Dezelfde key met een andere body of op een ander endpoint wordt afgewezen met 409 idempotency_conflict.
Snelheidsbeperkingen
Standaard 60 aanvragen per minuut (plus een burst van 20) en 5.000 per dag per sleutel, 120 per minuut per account over alle sleutels heen en 600 per minuut per bron-IP. Wordt een limiet overschreden, dan krijgt u HTTP 429 met de header Retry-After. De response-headers X-RateLimit-Remaining en X-RateLimit-Reset tonen de actuele stand van de limiet per sleutel.

