Preskoči na glavni sadržaj
← Referenca API-ja

Autentifikacija

Svaki poziv osim GET /v1/health i POST /v1/validate/* nosi API ključ.

Pošaljite Authorization: Bearer <key>. Ključevi se stvaraju na nadzornoj ploči. Cijeli ključ prikazuje se jednom: pohranjuje se samo njegov SHA-256 hash, pa se izgubljeni ključ ne može vratiti — stvorite novi, a stari opozovite.

Authorization: Bearer co_live_…

Tri vrste ključeva

  • Live ključevi — za produkciju. Dolaze uz Engine API paket i troše njegovu mjesečnu kvotu.
  • Testni ključevi — besplatni za svaki prijavljeni račun: 1.000 poziva mjesečno, nikad se ne naplaćuju, broje se odvojeno od live ključeva. GET /v1/usage za njih vraća env: "test".
  • Javni demo ključ — iza gumba „Run this example”: bez računa, samo mali sinkroni poslovi 2D, 1D i drvo, s ograničenjem brzine. Svaki odgovor nosi X-CutOptim-Demo: true.

Jedna kvota po računu

Račun može imati do 10 aktivnih live ključeva i svi troše istu mjesečnu kvotu — više ključeva ne daje više poziva. Služe za odvajanje okruženja i integracija. Kad se kvota potroši, svaki ključ vraća 402 dok ne prođe mjesec ili ne odaberete veći paket.

Zamjena i opoziv ključa

Stvorite novi ključ, prebacite integraciju na njega, a zatim na nadzornoj ploči opozovite stari. Opozvani ključ odmah se odbija s 403 key_revoked. Opoziv nije radnja naplate i ne vraća već potrošene pozive.

GET /v1/usage

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

Samo za čitanje: ne troši poziv i ne šalje zaglavlja ograničenja brzine. ⚠️ used i limit opisuju RAČUN, a ne ključ kojim ste pozvali: svaki aktivni ključ na računu crpi iz jedne zajedničke dozvole, pa stvaranje više ključeva ne stvara više kvote. used broji tekući UTC kalendarski mjesec kroz sve njih, remaining je limit minus used i nikada nije negativan, periodEnd je dan resetiranja kao obični YYYY-MM-DD datum, a keyPrefix je netajni prikazni prefiks ključa kojim ste pozvali.

Sam ključ nijedan endpoint nikada ne vraća — pohranjuje se samo njegov hash, pa se izgubljeni ključ zamjenjuje, a ne obnavlja.

PoljeTipOpis
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.