Všechny koncové body vracejí application/json. Chyby se řídí RFC 7807 (Problem+JSON). Každá odpověď nese hlavičku X-Request-Id pro korelaci se serverovým auditním logem.
| Method | Path | Oprávnění | Účel |
|---|---|---|---|
| GET | /v1/health | public | Health-check bez autentizace. |
| GET | /v1/me | any | Informace o vlastním účtu a metadata klíče. |
| GET | /v1/products | read:products | Seznam všech veřejně nabízených produktů s cenami. |
| GET | /v1/products/{id} | read:products | Detail produktu včetně konfiguračních možností. |
| POST | /v1/orders | write:orders | Zadat objednávku. Idempotency-Key povinný. |
| GET | /v1/orders/{id} | read:orders | Stav vlastní objednávky. |
| GET | /v1/services | read:services | Seznam vlastních služeb (stránkovaný). |
| GET | /v1/services/{id} | read:services | Detail vlastní služby. |
| GET | /v1/services/{id}/credentials | read:credentials | Přístupové údaje služby (samostatné oprávnění, auditováno). |
| POST | /v1/services/{id}/actions | write:services | Servisní akce: start, stop, restart, reinstalace, pozastavení, obnovení, ukončení. |
| GET | /v1/billing/balance | read:billing | Zůstatek kreditu. |
| GET | /v1/billing/invoices | read:billing | Seznam Vašich faktur (stránkovaný). |
| GET | /v1/billing/invoices/{id}/pdf | read:billing | PDF faktury. |
| GET | /v1/webhooks | read:webhooks | Aktuální webhook URL. |
| PUT | /v1/webhooks | write:webhooks | Nastavit nebo zrušit webhook URL. |
Idempotence
POST /v1/orders a POST /v1/services/{id}/actions vyžadují hlavičku Idempotency-Key (1-80 znaků z [A-Za-z0-9_.-]). Server po 24 hodin cachuje odpověď a hash těla; druhý požadavek se stejným klíčem a stejným tělem vrátí stejnou odpověď, druhý požadavek se stejným klíčem ale odlišným tělem je odmítnut s 409 idempotency_conflict.
Omezení rychlosti
Standardně 60 požadavků/minutu (s burstem 20) a 5000/den pro každý klíč, plus 600 požadavků/minutu pro každou IP nezávisle na klíči. Při překročení následuje HTTP 429 s hlavičkou Retry-After. Hlavičky odpovědi X-RateLimit-Remaining a X-RateLimit-Reset ukazují aktuální stav.

