Cont
Cardul contului tău, consimțămintele, chitanțele de cost, feedback-ul pe ture și catalogul de modele on-device.
GET /v1/receipt e endpoint-ul de cost: trimiți session_id pentru o conversație sau since pentru o fereastră și citești cost_micro_usd — micro-USD, niciodată convertiți. Consimțământul pentru antrenare e opt-in (training_opt_out are implicit true). Context de prețuri: limite & prețuri.
Autorizare
bearerAuth O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de /v1/realtime.
În: header
Parametri header
Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128Corpul răspunsului
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/account"{ "wallet": { "balance_eur": 12.5, "next_expiry_at": "2019-08-24T14:15:22Z", "promo_granted_eur": 0, "promo_cap_eur": 0, "history": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "delta_eur": 10, "source": "welcome_grant", "expires_at": "2019-08-24T14:15:22Z", "promo": "string", "multiplier": 0, "list_eur": 0, "note": "string", "created_at": "2019-08-24T14:15:22Z" } ] }, "promo": { "slug": "launch-50", "title": "string", "banner_en": "string", "banner_ro": "string", "multiplier": 0.5, "ends_at": "2019-08-24T14:15:22Z" }, "referral": { "username": "string", "consented": true, "share_url": "https://codai.ro/r/dragos_v", "invited": 0, "rewarded": 0, "pending": 0, "flagged": 0, "earned_eur": 0, "month_remaining": 0, "lifetime_remaining": 0, "reward_eur": 0, "referee_reward_eur": 0, "qualify_spend_eur": 0 }, "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5", "email": "[email protected]", "training_opt_out": true, "consents": [ { "surface": "desktop", "terms_version": "1.1", "privacy_version": "training-consent-v2-2026-09", "accepted_at": "2026-09-20T09:15:00.000Z" } ], "user": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "email": "[email protected]", "name": "string", "username": "string", "suggested_username": "string" }, "key": { "id": "string", "app_id": "affd1d10-9538-4fc8-9e0b-4594a28c1335" }, "plan": { "tier": "pro", "status": "active", "current_period_end": "2019-08-24T14:15:22Z", "cancel_at_period_end": true, "has_billing_account": true, "max_routing_tier": "small" }, "usage": { "tasks_today": 0, "tasks_per_day": 0, "tasks_month": 0, "tasks_per_month": 0, "budget_eur_per_day": 0, "budget_eur_per_month": 0, "credits": 0 }, "referral_redeem_until": "2019-08-24T14:15:22Z", "features": { "byok": true, "subagents": true, "persistent_memory": true, "limits_exempt": true }, "billing_url": "https://codai.ro/api/mobile/billing"}Autorizare
bearerAuth O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de /v1/realtime.
În: header
Parametri header
Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128UUID stabil al dispozitivului. Înregistrează dispozitivul la prima folosire (nume/platformă din x-codai-device-name / x-codai-device-platform) și selectează protocolul de sesiuni partajate.
uuidCorpul cererii
application/json
Cel puțin un câmp este obligatoriu; cheile necunoscute sunt respinse.
Definiții TypeScript
Folosește tipul request body în TypeScript.
Obiect strict — cheile necunoscute sunt respinse și cel puțin un câmp trebuie să fie prezent.
1 <= propertiesCorpul răspunsului
application/json
application/json
application/json
application/json
curl -X PATCH "https://example.com/v1/account" \ -H "x-codai-device: 497f6eca-6276-4993-bfeb-53cbbbba6f08" \ -H "Content-Type: application/json" \ -d '{}'{ "wallet": { "balance_eur": 12.5, "next_expiry_at": "2019-08-24T14:15:22Z", "promo_granted_eur": 0, "promo_cap_eur": 0, "history": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "delta_eur": 10, "source": "welcome_grant", "expires_at": "2019-08-24T14:15:22Z", "promo": "string", "multiplier": 0, "list_eur": 0, "note": "string", "created_at": "2019-08-24T14:15:22Z" } ] }, "promo": { "slug": "launch-50", "title": "string", "banner_en": "string", "banner_ro": "string", "multiplier": 0.5, "ends_at": "2019-08-24T14:15:22Z" }, "referral": { "username": "string", "consented": true, "share_url": "https://codai.ro/r/dragos_v", "invited": 0, "rewarded": 0, "pending": 0, "flagged": 0, "earned_eur": 0, "month_remaining": 0, "lifetime_remaining": 0, "reward_eur": 0, "referee_reward_eur": 0, "qualify_spend_eur": 0 }, "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5", "email": "[email protected]", "training_opt_out": true, "consents": [ { "surface": "desktop", "terms_version": "1.1", "privacy_version": "training-consent-v2-2026-09", "accepted_at": "2026-09-20T09:15:00.000Z" } ], "username_error": "invalid", "referral_result": "window_closed"}Autorizare
bearerAuth O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de /v1/realtime.
În: header
Parametri query
Sesiunea la care limitezi (se potrivește pe session_id sau pe cheia de sesiune derivată). Are prioritate față de since.
Limita inferioară ISO 8601 pe started_at. Ignorată când dai session_id. Implicit acum 24h. Neparsabil → 400.
date-timeParametri header
Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128Corpul răspunsului
application/json
application/json
application/json
curl -X GET "https://example.com/v1/receipt"{ "events": 0, "tasks": 0, "cost_micro_usd_total": 1834210, "cost_usd": 1.83421, "prompt_tokens": 0, "completion_tokens": 0, "cached_read_tokens": 0, "cache_write_tokens": 0, "by_upstream": [ { "upstream_model": "claude-sonnet-4-5", "events": 0, "cost_micro_usd": 0 } ], "window": { "from": "2019-08-24T14:15:22Z", "to": "2019-08-24T14:15:22Z", "session_id": "string" }}Autorizare
bearerAuth O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de /v1/realtime.
În: header
Parametri header
Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128Corpul cererii
application/json
Rating plus exact unul dintre event_id, session_id, client_request_id.
Definiții TypeScript
Folosește tipul request body în TypeScript.
Un rating plus o țintă. Zod respinge body-ul când niciuna dintre cele trei ținte nu e prezentă.
Un rating plus o țintă. Zod respinge body-ul când niciuna dintre cele trei ținte nu e prezentă.
Corpul răspunsului
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/feedback" \ -H "Content-Type: application/json" \ -d '{ "rating": 1 }'{ "ok": true, "event_id": "3f0b2c9e-1d4a-4b8c-9e7f-2a6d5c4b3a10"}Autorizare
bearerAuth O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de /v1/realtime.
În: header
Parametri header
Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128Corpul răspunsului
application/json
application/json
application/json
curl -X GET "https://example.com/v1/phone/models"{ "models": [ { "id": "codai-nano-1b-q8", "name": "string", "file": "codai-nano-1b-q8.litertlm", "sizeBytes": 3700000000, "sha256": "string", "backends": [ "cpu", "gpu" ], "base": "string", "notes": "string", "url": "http://example.com", "expiresAt": "2019-08-24T14:15:22Z" } ]}