---
title: "🛡️ Save app settings."
method: PATCH
path: "/api/v1/settings"
tags: ["Settings"]
---

# 🛡️ Save app settings.

`PATCH /api/v1/settings`

When saving app settings, set the `app` for which this update applies. Explicitly set the app to `null` to apply the update to all apps. Account-scoped settings ignore `app` entirely and are always saved against the caller; settings that belong to the whole install require the `UserSettings.Update` capability.<br /><hr /><h3>🛡️ Requires one of these Capabilities: <code>UserSettings.Update</code></h3>

## Request body

- UpsertSettings
  - `app` 'admin' | 'music' | 'photos' | 'cinema'
  - `settings` object, required

## Response `200`

- UpsertSettingsResponse
  - `updated` object

## Other responses

- `401` — Possible reasons: The authorization token is invalid.
- `403` — Possible reasons: The payload changes a setting that belongs to the whole server and the user lacks UserSettings.Update.

## Changes

- **2026-07-25** `d2efaa34d8a2` — 1 info
  - added the non-success response with the status `403`

[Change history](https://skmtc.dev/cardinalapps/apis/cardinal-media-server-api/changes/api/v1/settings/patch.md)

---

[API](https://skmtc.dev/cardinalapps/apis/cardinal-media-server-api.md) · [All operations](https://skmtc.dev/cardinalapps/apis/cardinal-media-server-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/cardinalapps/cardinal-media-server-api/revisions/d2efaa34d8a2/schema)
