Setări
Setări la nivel de cont, comune tuturor dispozitivelor: citire cu valori implicite, actualizări îmbinate, versiuni optimiste.
Un singur obiect de setări per cont (per utilizator, nu per cheie): ce schimbi pe telefon citesc și ceasul, desktopul și hub-ul. GET /v1/settings răspunde mereu cu obiectul complet, cu valorile implicite aplicate; version este 0 și updatedAt este null până la prima scriere.
PATCH /v1/settings îmbină în adâncime un obiect parțial peste ce este salvat și validează strict rezultatul — o cheie necunoscută sau o valoare greșită dau 400. Trimite version citită ultima dată ca scrierea să fie condiționată: dacă între timp altcineva a schimbat setările primești 409 version_conflict cu current (forma de la GET) și nu se scrie nimic. O pană a bazei de date dă 503 settings_unavailable, niciodată valori implicite prezentate drept setările tale.
| Cheie | Valori | Implicit |
|---|---|---|
transcripts.waveform | ring, bars, blob, dot, off | ring |
transcripts.haptics | true / false | true |
transcripts.liveText | true / false | true |
transcripts.target | auto, phone, watch | auto |
transcripts.language | etichetă BCP-47 (cel mult 16 caractere) sau null pentru detectare automată | null |
Aceleași operații există în SDK-uri (client.settings.get() / client.settings.update(partial, { version }) în TypeScript, client.settings.update(partial, version=…) în Python), în CLI (codaid settings get, codaid settings set transcripts.waveform=bars) și în serverul MCP (settings_get, settings_update).
bearerAuthAutorizareBearer <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).
x-request-id?stringId de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128Setările cu valorile implicite aplicate.
application/json- response
settings*version*integerContor pentru concurență optimistă; 0 = nescris niciodată.
0 <= valueupdatedAt*|Momentul ultimei scrieri; null dacă nu s-a scris niciodată.
date-timecurl -X GET 'https://ai.codai.ro/v1/settings'{ "settings": { "transcripts": { "waveform": "ring", "haptics": true, "liveText": true, "target": "auto", "language": null } }, "version": 0, "updatedAt": "2019-08-24T14:15:22Z"}bearerAuthAutorizareBearer <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).
x-request-id?stringId de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128Un obiect parțial al setărilor plus versiunea așteptată, opțional.
application/json- body
settings*Obiect parțial din UserSettings; cheile necunoscute sunt respinse.
version?integerVersiunea curentă așteptată; o nepotrivire dă 409.
0 <= valueSetările salvate cu valorile implicite aplicate (aceeași formă ca la GET).
application/json- response
settings*version*integerContor pentru concurență optimistă; 0 = nescris niciodată.
0 <= valueupdatedAt*|Momentul ultimei scrieri; null dacă nu s-a scris niciodată.
date-timecurl -X PATCH 'https://ai.codai.ro/v1/settings' \ -H 'Content-Type: application/json' \ -d '{ "settings": {}}'{ "settings": { "transcripts": { "waveform": "ring", "haptics": true, "liveText": true, "target": "auto", "language": null } }, "version": 0, "updatedAt": "2019-08-24T14:15:22Z"}