---
title: "Update user preferences"
method: PUT
path: "/api/v1/user/preferences"
tags: ["preferences", "api/v1/user"]
---

# Update user preferences

`PUT /api/v1/user/preferences`

Update user preferences.

Auth: Required (bearer token).
Scope: Organization-scoped in authenticated context.
Side effects: May mutate server state.

## Headers

- `Accept` string

## Response `200`

OK

- UserPreferencesResponse — UserPreferencesResponse schema
  - `data` object, nullable
    - `created_at` string, date-time
    - `id` string, uuid
    - `preferences` object
      - `debug_mode` boolean
      - `show_api_error_details` boolean
      - `terminal_cursor_blink` boolean, nullable
      - `terminal_cursor_style` string, nullable
      - `terminal_cursor_width` integer, nullable
      - `terminal_font_family` string, nullable
      - `terminal_font_size` integer, nullable
      - `terminal_font_weight` string, nullable
      - `terminal_letter_spacing` number, double, nullable
      - `terminal_line_height` number, double, nullable
      - `terminal_scrollback` integer, nullable
      - `terminal_tab_stop_width` integer, nullable
    - `updated_at` string, date-time
    - `user` object, nullable
      - `avatar` string
      - `created_at` string, date-time
      - `email` string
      - `email_verified` boolean
      - `id` string, uuid
      - `image` string, nullable
      - `is_onboarded` boolean
      - `is_verified` boolean
      - `name` string
      - `organization_users` object[], nullable
        - `created_at` string, date-time
        - `id` string, uuid
        - `organization` object, nullable
          - `created_at` string, date-time
          - `id` string, uuid
          - `logo` string, nullable
          - `metadata` string, nullable
          - `name` string
          - `slug` string
        - `organization_id` string, uuid
        - `role` string
        - `user` User, nullable
          - `avatar` string
          - `created_at` string, date-time
          - `email` string
          - `email_verified` boolean
          - `id` string, uuid
          - `image` string, nullable
          - `is_onboarded` boolean
          - `is_verified` boolean
          - `name` string
          - `organization_users` object[], nullable
            - `created_at` string, date-time
            - `id` string, uuid
            - `organization` object, nullable
              - …
            - `organization_id` string, uuid
            - `role` string
            - `user` User — recursive
            - `user_id` string, uuid
          - `organizations` object[], nullable
            - `created_at` string, date-time
            - `id` string, uuid
            - `logo` string, nullable
            - `metadata` string, nullable
            - `name` string
            - `slug` string
          - `provision_status` string, nullable
          - `updated_at` string, date-time
          - `username` string
        - `user_id` string, uuid
      - `organizations` object[], nullable
        - `created_at` string, date-time
        - `id` string, uuid
        - `logo` string, nullable
        - `metadata` string, nullable
        - `name` string
        - `slug` string
      - `provision_status` string, nullable
      - `updated_at` string, date-time
      - `username` string
    - `user_id` string, uuid
  - `message` string
  - `status` string

## Other responses

- `400` — Bad Request _(validation or deserialization error)_
- `500` — Internal Server Error _(panics)_
- `default`

## Changes

- **2026-03-09** `344ac18cbced` — 36 warning, 18 info
  - removed the optional property `data/user/organization_users/items/deleted_at` from the response with the `200` status (media type: application/json)
  - removed the optional property `data/user/organization_users/items/deleted_at` from the response with the `200` status (media type: application/xml)
  - removed the optional property `data/user/organization_users/items/updated_at` from the response with the `200` status (media type: application/json)
  - removed the optional property `data/user/organization_users/items/updated_at` from the response with the `200` status (media type: application/xml)
  - …50 more
- **2026-02-27** `93bf2b2f361d` — 32 breaking
  - the response property `data/user/organization_users` became nullable for the status `200` (media type: application/json)
  - the response property `data/user/organization_users` became nullable for the status `200` (media type: application/xml)
  - the response property `data/user/organization_users/items/user/organization_users` became nullable for the status `200` (media type: application/json)
  - the response property `data/user/organization_users/items/user/organization_users` became nullable for the status `200` (media type: application/xml)
  - …28 more
- …earlier changes not shown

[Full history](https://skmtc.dev/nixopus/apis/openapi/changes/api/v1/user/preferences/put.md)

---

[API](https://skmtc.dev/nixopus/apis/openapi.md) · [All operations](https://skmtc.dev/nixopus/apis/openapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/nixopus/openapi/revisions/344ac18cbced/schema)
