Toate endpointurile returnează application/json. Erorile respectă RFC 7807 (Problem+JSON). Fiecare răspuns include antetul X-Request-Id pentru corelarea cu jurnalul de audit de pe server.
| Method | Path | Permisiune | Scop |
|---|---|---|---|
| GET | /v1/health | public | Verificare de sănătate fără autentificare. |
| GET | /v1/me | any | Informații despre cont și metadate ale cheii. |
| GET | /v1/products | read:products | Lista tuturor produselor listate public, cu prețuri. |
| GET | /v1/products/{id} | read:products | Detalii despre produs, inclusiv opțiunile de configurare. |
| POST | /v1/orders | write:orders | Plasarea unei comenzi. Idempotency-Key obligatoriu. |
| GET | /v1/orders/{id} | read:orders | Starea unei comenzi proprii. |
| GET | /v1/services | read:services | Lista propriilor servicii (paginate). |
| GET | /v1/services/{id} | read:services | Detalii despre un serviciu propriu. |
| GET | /v1/services/{id}/credentials | read:credentials | Credențiale ale serviciului (permisiune separată, înregistrate în audit). |
| POST | /v1/services/{id}/actions | write:services | Acțiune asupra serviciului: start, stop, reboot, cancel (la sfârșitul perioadei de facturare), cancel_revoke. |
| GET | /v1/billing/balance | read:billing | Soldul de credit. |
| GET | /v1/billing/invoices | read:billing | Lista facturilor dumneavoastră (paginate). |
| GET | /v1/billing/invoices/{id}/pdf | read:billing | PDF-ul facturii. |
| GET | /v1/webhooks | read:webhooks | Adresa URL curentă a webhookului. |
| PUT | /v1/webhooks | write:webhooks | Setarea sau eliminarea adresei URL pentru webhook. |
Idempotență
POST /v1/orders și POST /v1/services/{id}/actions necesită un antet Idempotency-Key (între 1 și 80 de caractere din [A-Za-z0-9_.-]). Cheia este legată de metodă, cale și corp. Dacă repetați aceeași cerere cu aceeași cheie în decurs de o oră, primiți răspunsul memorat; după aceea primiți 410 cu reason replay_stale și trebuie să trimiteți o cheie nouă. Aceeași cheie folosită cu un alt corp sau pe un alt endpoint este respinsă cu 409 idempotency_conflict.
Limitare a ratei
Implicit se aplică 60 de cereri pe minut (plus un burst de 20) și 5.000 pe zi per cheie, 120 pe minut per cont pentru toate cheile împreună și 600 pe minut per IP sursă. La depășirea unei limite primiți HTTP 429 cu antetul Retry-After. Antetele de răspuns X-RateLimit-Remaining și X-RateLimit-Reset indică starea curentă a limitei pentru cheie.

