Přejít na hlavní obsah
← Referenční příručka API

Ověřování

Každé volání kromě GET /v1/health a POST /v1/validate/* nese API klíč.

Pošlete Authorization: Bearer <key>. Klíče se vytvářejí na nástěnce. Celý klíč se zobrazí jednou: ukládá se jen jeho hash SHA-256, takže ztracený klíč nelze obnovit — vytvořte nový a starý odvolejte.

Authorization: Bearer co_live_…

Tři druhy klíčů

  • Živé klíče — pro provoz. Patří k tarifu Engine API a čerpají jeho měsíční kvótu.
  • Testovací klíče — zdarma pro každý přihlášený účet: 1 000 volání měsíčně, nikdy se neúčtují, počítají se odděleně od živých klíčů. GET /v1/usage pro ně vrací env: "test".
  • Veřejný demo klíč — za tlačítky „Run this example“: bez účtu, jen malé synchronní úlohy 2D, 1D a dřevo, s rychlostním limitem. Každá odpověď nese X-CutOptim-Demo: true.

Jedna kvóta na účet

Účet může mít až 10 aktivních živých klíčů a všechny čerpají stejnou měsíční kvótu — víc klíčů nepřidá víc volání. Slouží k oddělení prostředí a integrací. Když se kvóta vyčerpá, každý klíč vrací 402, dokud neskončí měsíc nebo nezvolíte vyšší tarif.

Výměna a odvolání klíče

Vytvořte nový klíč, přepněte na něj integraci a pak na nástěnce odvolejte starý. Odvolaný klíč je okamžitě odmítnut s 403 key_revoked. Odvolání není účetní operace a nevrací už spotřebovaná volání.

GET /v1/usage

{
  "plan": "studio",
  "used": 137,
  "limit": 10000,
  "remaining": 9863,
  "periodEnd": "2026-08-01",
  "keyPrefix": "co_live_ab12",
  "contractVersion": "1"
}

Jen pro čtení: nespotřebuje volání a neposílá hlavičky rate limitu. ⚠️ used a limit popisují ÚČET, ne klíč, kterým jste volali: každý aktivní klíč účtu čerpá z jedné společné kvóty, takže více klíčů neznamená více kvóty. used počítá probíhající kalendářní měsíc UTC přes všechny, remaining je limit minus used a nikdy neklesne pod nulu, periodEnd je den vynulování jako prosté datum YYYY-MM-DD a keyPrefix je nerizikový zobrazovací prefix použitého klíče.

Samotný klíč nevrací žádný endpoint — ukládá se jen jeho hash, ztracený klíč se tedy nahrazuje, ne obnovuje.

PoleTypPopis
planstringThe tier slug frozen onto the key when it was minted. Re-pricing the product later does not rewrite a live key.
usedintegerCalls counted in the current UTC calendar month, across EVERY key on the account — revoked keys included, so revoking a key cannot un-spend what it spent (053) — not just the one you called with. The quota is account-wide.
limitintegerThe monthly cap for the ACCOUNT: the largest monthly quota frozen onto any of its ACTIVE keys (049). All active keys draw on this one allowance; creating more keys does not create more quota. Keys are for separating environments and integrations (and for revoking one without disturbing the rest).
remainingintegerlimit − used, never negative.
periodEndstring (date)First day of next month as YYYY-MM-DD — a DATE, not a timestamp. The counter resets at 00:00 UTC on that day.
keyPrefixstringNon-secret display prefix of the calling key, so you can tell which key you queried. The key itself is never returned by any endpoint.
contractVersionstringShape version. Currently "1".
env"test"Present ("test") only for a TEST key: created in the dashboard, never billed, with its own monthly allowance separate from the live keys. Absent for a live key — a live key gets exactly the body it always got.
keyClass"tenant"Present ("tenant") only for a key CutOptim issues to its own first-party service. Absent for every key you create in the dashboard.