---
title: "Save the application configuration"
method: PUT
path: "/api/v1/admin/config"
tags: ["admin"]
---

# Save the application configuration

`PUT /api/v1/admin/config`

## Request

- Base URL: `https://api.cadencz.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.cadencz.com/api/v1/admin/config`
- Auth: HTTP bearer

Validates and persists a new configuration, records the change set for audit, and publishes it to every worker. Requires `confirm: true` and the `expected_version` returned by GET /admin/config.

## Request body

- AdminConfigSaveRequest
  - `config` object, required
  - `expected_version` integer, nullable
  - `section` string, nullable
  - `note` string, nullable
  - `confirm` boolean

## Response `200`

Successful Response

- AdminConfigResponse: Everything the admin screen needs in one round trip.
  - `version` integer, required
  - `config` object, required
  - `defaults` object, required
  - `schema` object, required
  - `updated_at` string, nullable, required
  - `updated_by` string, nullable, required
  - `updated_by_email` string, nullable, required
  - `migration_required` boolean
  - `warnings` string[]

## Other responses

- `400`: The request payload is invalid.
- `401`: Missing or invalid Supabase bearer token.
- `409`: The requested state transition is not allowed.
- `422`: Validation Error

---

[API](https://skmtc.dev/cadencz/apis/cadencz-api.md) · [All operations](https://skmtc.dev/cadencz/apis/cadencz-api/llms.txt) · [OpenAPI document](https://skmtc.dev/cadencz/apis/cadencz-api/revisions/3392fe5e93db?raw)
