---
title: "Update Theme Preference"
method: PATCH
path: "/auth/me/theme"
tags: ["auth"]
---

# Update Theme Preference

`PATCH /auth/me/theme`

Persist the user's theme preference (system / light / dark / null).

`null` clears the column so the client falls back to its default
(system). Pydantic enforces the enum at request validation time so an
arbitrary string can't reach the column.

## Request body

- ThemePreferenceRequest — Body for PATCH /auth/me/theme. `None` clears the stored preference and lets the client default (system) take over.
  - `theme_preference` 'system' | 'light' | 'dark', nullable

## Response `200`

Successful Response

- UserResponse
  - `id` string, required
  - `github_username` string, nullable
  - `avatar_url` string, nullable
  - `email` string, nullable
  - `tier` 'free' | 'pro' | 'teams' | 'admin', required
  - `llm_credit_balance_cents` integer, required
  - `monthly_credit_reset_at` string, date-time, nullable
  - `billing_interval` string, nullable
  - `preferred_model` string, nullable
  - `theme_preference` 'system' | 'light' | 'dark', nullable
  - `notification_preferences` object
  - `deleted_at` string, date-time, nullable
  - `has_subscription` boolean
  - `has_billing_account` boolean
  - `free_answers_used` integer, nullable
  - `free_answers_limit` integer, nullable
  - `free_answers_remaining` integer, nullable

## Other responses

- `422` — Validation Error

---

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