Start rapid
Obții o cheie, trimiți prima cerere către ai.codai.ro, alegi un wire format.
Gateway-ul codai rulează la https://ai.codai.ro. Vorbește trei wire formats — OpenAI Chat Completions, Anthropic Messages și OpenAI Responses API — și un singur nume de model, codai. Orice SDK folosești deja funcționează; gateway-ul traduce în spate.
Obții o cheie API
Te autentifici pe hub.codai.ro și deschizi Keys → Create key. Cheile arată ca codai_xxxxxxxx și se afișează o singură dată — păstrează-o într-o variabilă de mediu:
$env:CODAI_API_KEY = 'codai_xxxxxxxx'Trimiți prima cerere
curl https://ai.codai.ro/v1/chat/completions \
-H "Authorization: Bearer $CODAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "codai",
"messages": [
{ "role": "user", "content": "Scrie o funcție Python pe o linie care returnează al n-lea număr Fibonacci." }
]
}'Un răspuns reușit este un chat completion standard:
{
"id": "chatcmpl-…",
"object": "chat.completion",
"model": "codai",
"choices": [
{
"index": 0,
"message": { "role": "assistant", "content": "def fib(n): return n if n < 2 else fib(n - 1) + fib(n - 2)" },
"finish_reason": "stop"
}
],
"usage": { "prompt_tokens": 27, "completion_tokens": 21, "total_tokens": 48 }
}Citești header-ele de răspuns
Fiecare răspuns îți spune ce s-a întâmplat de fapt. Cele două pe care le vei folosi cel mai des:
| Header | Semnificație |
|---|---|
x-codai-routed-to | Modelul upstream care a servit cererea. |
x-codai-cost-micro-usd | Costul acestei cereri în micro-USD, număr întreg (când e cunoscut înaintea primului byte — vezi limite și prețuri). |
Lista completă este pe pagina header-e de cerere.
Ca să le vezi, adaugi -i la cererea curl de mai sus:
HTTP/2 200
x-codai-routed-to: claude-sonnet-5-5
x-codai-upstream: claude-sonnet-5-5
x-codai-cost-micro-usd: 18401840 micro-USD înseamnă 0,00184 $. Pe stream-urile native costul nu se știe când pleacă header-ele, așa că primești x-codai-cost-estimate: pending, iar cifra exactă vine ulterior din GET /v1/receipt.
codai sau un model fixat?
Ce face `codai` astăzi
model: "codai" este în prezent un lanț de modele Claude actuale ale Anthropic, cu failover automat între deployment-uri: când un deployment nu e disponibil, răspunde următorul din lanț. Nu trece singur la alți furnizori. Fixezi un nume când vrei același model de fiecare dată: un alias de workload precum codai-fast sau codai-max, ori un nume upstream direct, pe planurile care îl permit. În ambele cazuri x-codai-routed-to îți spune ce model a răspuns. Modelul propriu codai este în beta opt-in ca codai-1-beta (îl ceri după nume; nu este listat). Detalii în modele.
Folosești deja un SDK?
Îl îndrepți către gateway și păstrezi codul.
import OpenAI from 'openai';
const client = new OpenAI({
apiKey: process.env.CODAI_API_KEY,
baseURL: 'https://ai.codai.ro/v1',
});
const res = await client.chat.completions.create({
model: 'codai',
messages: [{ role: 'user', content: 'Salut!' }],
});
console.log(res.choices[0].message.content);Base URL-ul OpenAI include /v1; base URL-ul Anthropic este doar host-ul. Dacă le inversezi primești un 404 not_found care seamănă cu o eroare de autentificare.
Pașii următori
Modele
La ce se rezolvă `codai`, celelalte alias-uri, effort și thinking.
Wire formats
Chat Completions, Messages și Responses — forma cererii și a răspunsului.
Streaming
Formele SSE per format și unde ajunge usage.
Clienți
VS Code, Copilot CLI, Cursor, Continue, MCP.
SDK-uri
Clienții oficiali TypeScript și Python.
Limite și prețuri
Rate limits, plafoane de cheltuieli și contractul de erori.
Ultima actualizare: