---
title: "Update options for the current user"
method: PUT
path: "/user-options"
tags: ["Users"]
---

# Update options for the current user

`PUT /user-options`

Replaces or extends the stored UI preferences for the currently
authenticated user. The request body is merged with any existing
options at the top level — keys that are not present in the
request are left untouched, but nested objects are replaced
wholesale.

## Request body

- UserOptions — A free-form map of UI preferences for the authenticated user. Trybe stores user-supplied options such as default site picker selections, dismissed onboarding tips, table column preferences, and so on. Keys and values are arbitrary — clients should round- trip unknown keys without modifying them.

## Response `200`

A map of options for a user

- object — Single-item envelope mixin. `allOf` this into any show response that wraps its `data` payload in an outer object; the concrete schema (e.g. `ShowUser`) adds its own `data` property with the appropriate `$ref` and keeps its own title so the SDK surface is unchanged.
  - `data` UserOptions, required — A free-form map of UI preferences for the authenticated user. Trybe stores user-supplied options such as default site picker selections, dismissed onboarding tips, table column preferences, and so on. Keys and values are arbitrary — clients should round- trip unknown keys without modifying them.

## Other responses

- `401` — The user is unauthenticated
- `403` — The authenticated user does not have permission.
- `422` — The request didn't pass validation

---

[API](https://skmtc.dev/try/apis/trybe-api.md) · [All operations](https://skmtc.dev/try/apis/trybe-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/try/trybe-api/revisions/f37f92702da5/schema)
