# Setări (/ro/docs/api/gateway/settings)

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`).

<OpenAPIPage document="./openapi/ro/gateway.yaml" operations={[{path: '/v1/settings',method: 'get'},{path: '/v1/settings',method: 'patch'}]} />
