Alla endpoints returnerar application/json. Fel följer RFC 7807 (Problem+JSON). Svaret innehåller alltid headern X-Request-Id för korrelation med den serversida granskningsloggen.
| Method | Path | Behörighet | Syfte |
|---|---|---|---|
| GET | /v1/health | public | Hälsokontroll utan autentisering. |
| GET | /v1/me | any | Egen kontoinformation samt nyckelmetadata. |
| GET | /v1/products | read:products | Lista över alla offentligt listade produkter med priser. |
| GET | /v1/products/{id} | read:products | Produktdetaljer inklusive konfigurationsalternativ. |
| POST | /v1/orders | write:orders | Lägg en beställning. Idempotency-Key krävs. |
| GET | /v1/orders/{id} | read:orders | Status för en egen beställning. |
| GET | /v1/services | read:services | Lista över egna tjänster (paginerad). |
| GET | /v1/services/{id} | read:services | Detaljer för en egen tjänst. |
| GET | /v1/services/{id}/credentials | read:credentials | Tjänstens inloggningsuppgifter (separat behörighet, granskad). |
| POST | /v1/services/{id}/actions | write:services | Tjänsteåtgärd: start, stop, reboot, cancel (till faktureringsperiodens slut), cancel_revoke. |
| GET | /v1/billing/balance | read:billing | Saldo. |
| GET | /v1/billing/invoices | read:billing | Lista över dina fakturor (paginerad). |
| GET | /v1/billing/invoices/{id}/pdf | read:billing | Faktura-PDF. |
| GET | /v1/webhooks | read:webhooks | Aktuell Webhook-URL. |
| PUT | /v1/webhooks | write:webhooks | Ställ in eller ta bort Webhook-URL. |
Idempotens
POST /v1/orders och POST /v1/services/{id}/actions kräver headern Idempotency-Key (1 till 80 tecken från [A-Za-z0-9_.-]). Nyckeln är knuten till metod, sökväg och body. Om du upprepar samma förfrågan med samma nyckel inom en timme får du det sparade svaret; därefter får du 410 med reason replay_stale och bör skicka en ny nyckel. Samma nyckel med en annan body eller på en annan endpoint avvisas med 409 idempotency_conflict.
Hastighetsbegränsningar
Som standard gäller 60 förfrågningar per minut (plus en burst på 20) och 5 000 per dag per nyckel, 120 per minut per konto över alla nycklar och 600 per minut per käll-IP. När en gräns överskrids får du HTTP 429 med headern Retry-After. Svarets headers X-RateLimit-Remaining och X-RateLimit-Reset visar aktuell status för gränsen per nyckel.

