codai docs
Referință APIGateway

Consum și chei

Consumul tău împărțit pe zi, cheie, dispozitiv, aplicație, platformă, model, client sau etichetă, plus cheile tale API cu atribuirea pe dispozitiv și etichete.

Aceste rute întorc aceleași date pe care le arată hub-ul în paginile de consum și de chei, limitate la contul care deține cheia apelantă. Folosește-le din scripturi, din SDK-uri, din CLI sau dintr-un agent ca să afli „cât m-a costat mașina asta săptămâna trecută?” fără să deschizi hub-ul.

Consum

GET /v1/usage întoarce câte un rând pentru fiecare valoare a lui group_by (implicit day) pe o fereastră de zile UTC. from și to sunt date YYYY-MM-DD incluse; fără ele primești ultimele 30 de zile, inclusiv azi. O fereastră are cel mult 400 de zile.

  • Grupare după day, key, device, app (client OAuth), platform, model, client sau tag.
  • Filtre: key, device, app, platform, model sau tag; filtrele se aplică înainte de grupare, deci group_by=model&device=<id> înseamnă „ce modele a folosit dispozitivul acesta”.
  • Coloane: requests, errors, tasks (sarcini pornite), prompt_tokens, completion_tokens, cached_read_tokens și cost_micro_usd — micro-USD ca șir zecimal ("1250000" = 1,25 USD). Împarte la 1 000 000 pentru dolari; nu-l transforma în float dacă aduni multe rânduri.
  • MCP. Agenții apelează unealta doar-citire usage_get (days = fereastra care se încheie azi, implicit 30; group_by opțional). Serverul MCP nu are unealtă pentru chei: cheile rămân în hub, SDK-uri și CLI.
  • Istoric. Ultimele 30 de zile sunt citite din evenimentele brute de consum; zilele mai vechi vin dintr-o agregare zilnică. Etichetele stau pe cheie și sunt unite la citire, deci etichetarea unei chei îi reatribuie tot istoricul.

Chei și etichete

GET /v1/keys listează cheile tale (adaugă include_revoked=true pentru cele revocate). Fiecare cheie are kind (device, user, app, service), device_id și platform pe care a fost emisă, client_version, tags, marcajele de timp și current: true pentru cheia care face apelul. Secretul nu este returnat niciodată. Cheile emise pentru aplicații terțe nu apar.

PATCH /v1/keys/{id} înlocuiește etichetele unei chei: cel mult 16 etichete de până la 32 de caractere, iar [] le șterge. Etichetele le alegi tu — un proiect, un client, un centru de cost — iar apoi GET /v1/usage?group_by=tag împarte cheltuielile după ele.

import { Codai } from 'codai-sdk';

const codai = new Codai({ apiKey: process.env.CODAI_API_KEY! });
const byDevice = await codai.usage.get({ from: '2026-09-01', to: '2026-09-30', group_by: 'device' });
const { data: keys } = await codai.keys.list();
await codai.keys.setTags(keys[0]!.id, ['client-acme']);
from codai import Codai

codai = Codai(api_key="codai_...")
by_model = codai.usage.get({"group_by": "model"})
keys = codai.keys.list(include_revoked=True)["data"]
codai.keys.set_tags(keys[0]["id"], ["client-acme"])
GET
/v1/usage

Autorizare

bearerAuth
headerAutorizareBearer <codai_…>

O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).

Parametri query

from?string

Prima zi (inclusă, YYYY-MM-DD, UTC). Implicit cu 30 de zile înainte de to.

Formatdate
to?string

Ultima zi (inclusă, YYYY-MM-DD, UTC). Implicit azi.

Formatdate
group_by?string

Dimensiunea fiecărui rând.

Implicit"day"
Valoare din"day""key""device""app""platform""model""client""tag"
key?string

Doar această cheie API a ta (uuid).

Formatuuid
device?string

Doar acest dispozitiv (uuid).

Formatuuid
app?string

Doar acest id de client OAuth (aplicație).

Lungimelength <= 64
platform?string

Doar această platformă de client (de exemplu vscode, desktop, android).

Lungimelength <= 16
model?string

Doar acest model (modelul din amonte, altfel cel cerut).

Lungimelength <= 128
tag?string

Doar cheile care au această etichetă.

Lungimelength <= 32

Parametri header

x-request-id?string

Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.

Lungimelength <= 128

Corpul răspunsului

Rândurile de consum pentru fereastră.

application/json
  1. response

Consumul contului apelant pentru o fereastră, grupat după o dimensiune.

from*string

Prima zi a ferestrei (inclusă).

Formatdate
to*string

Ultima zi a ferestrei (inclusă).

Formatdate
group_by*string
Valoare din"day""key""device""app""platform""model""client""tag"
data*array<>
Exemplu de cerere
curl -X GET 'https://ai.codai.ro/v1/usage'
Exemplu de răspuns
{  "from": "2019-08-24",  "to": "2019-08-24",  "group_by": "day",  "data": [    {      "key": "string",      "requests": 0,      "errors": 0,      "tasks": 0,      "prompt_tokens": 0,      "completion_tokens": 0,      "cached_read_tokens": 0,      "cost_micro_usd": "string"    }  ]}
GET
/v1/keys

Autorizare

bearerAuth
headerAutorizareBearer <codai_…>

O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).

Parametri query

include_revoked?string

true întoarce și cheile revocate.

Implicit"false"
Valoare din"true""false"

Parametri header

x-request-id?string

Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.

Lungimelength <= 128

Corpul răspunsului

Cheile tale.

application/json
  1. response
data*array<>
Exemplu de cerere
curl -X GET 'https://ai.codai.ro/v1/keys'
Exemplu de răspuns
{  "data": [    {      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",      "label": "string",      "prefix": "string",      "enabled": true,      "kind": "device",      "app": "string",      "device_id": "string",      "platform": "string",      "client_version": "string",      "tags": [        "string"      ],      "created_at": "2019-08-24T14:15:22Z",      "last_used_at": "2019-08-24T14:15:22Z",      "expires_at": "2019-08-24T14:15:22Z",      "idle_expiry_days": 0,      "revoked_at": "2019-08-24T14:15:22Z",      "current": true    }  ]}
PATCH
/v1/keys/{id}

Autorizare

bearerAuth
headerAutorizareBearer <codai_…>

O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).

Parametri de cale

id*string

Id-ul cheii API (uuid).

Formatuuid

Parametri header

x-request-id?string

Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.

Lungimelength <= 128

Corpul cererii

application/json
  1. body
tags*array<>
Elementeitems <= 16

Corpul răspunsului

Etichetele salvate acum pe cheie.

application/json
  1. response
id*string
Formatuuid
tags*array<string>
Exemplu de cerere
curl -X PATCH 'https://ai.codai.ro/v1/keys/497f6eca-6276-4993-bfeb-53cbbbba6f08' \  -H 'Content-Type: application/json' \  -d '{  "tags": [    "string"  ]}'
Exemplu de răspuns
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "tags": [    "string"  ]}

Pe această pagină