---
title: "Changes to Update an existing app by ID"
method: PUT
path: "/api/v1/apps/{id}"
---

# Changes to Update an existing app by ID

`PUT /api/v1/apps/{id}`

> Every recorded change to this endpoint, newest first.

## Timeline

Changed in 4 of 50 revisions.

- **2025-08-13** `5ad1a47c235e` — 1 breaking
- **2025-05-07** `426c1916f602` — 10 info
- **2024-10-03** `795cad873b47` — 11 info
- **2024-08-11** `11e2773b3a1e` — 15 breaking, 5 warning, 1 info

## Changes

- **2025-08-13** `5ad1a47c235e` — 1 breaking
  - removed the required property `app/allOf[#/components/schemas/App]/secret` from the response with the `200` status
- **2025-05-07** `426c1916f602` — 10 info
  - added the new optional request property `allowEmailMfaAsBackup`
  - added the new optional request property `requireEmailMfa`
  - added the new optional request property `requireOtpMfa`
  - added the new optional request property `requireSmsMfa`
  - added the new optional request property `useSystemMfaConfig`
  - added the required property `app/allOf[#/components/schemas/App]/allowEmailMfaAsBackup` to the response with the `200` status
  - added the required property `app/allOf[#/components/schemas/App]/requireEmailMfa` to the response with the `200` status
  - added the required property `app/allOf[#/components/schemas/App]/requireOtpMfa` to the response with the `200` status
  - added the required property `app/allOf[#/components/schemas/App]/requireSmsMfa` to the response with the `200` status
  - added the required property `app/allOf[#/components/schemas/App]/useSystemMfaConfig` to the response with the `200` status
- **2024-10-03** `795cad873b47` — 11 info
  - the response property `app/allOf[#/components/schemas/App]/clientId` became required for the status `200`
  - the response property `app/allOf[#/components/schemas/App]/createdAt` became required for the status `200`
  - the response property `app/allOf[#/components/schemas/App]/deletedAt` became required for the status `200`
  - the response property `app/allOf[#/components/schemas/App]/id` became required for the status `200`
  - the response property `app/allOf[#/components/schemas/App]/isActive` became required for the status `200`
  - the response property `app/allOf[#/components/schemas/App]/name` became required for the status `200`
  - the response property `app/allOf[#/components/schemas/App]/redirectUris` became required for the status `200`
  - the response property `app/allOf[#/components/schemas/App]/secret` became required for the status `200`
  - the response property `app/allOf[#/components/schemas/App]/type` became required for the status `200`
  - the response property `app/allOf[#/components/schemas/App]/updatedAt` became required for the status `200`
  - the response property `app/allOf[subschema #2]/scopes` became required for the status `200`
- **2024-08-11** `11e2773b3a1e` — 15 breaking, 5 warning, 1 info
  - the response property `app/allOf[#/components/schemas/App]/clientId` became optional for the status `200`
  - the response property `app/allOf[#/components/schemas/App]/createdAt` became optional for the status `200`
  - the response property `app/allOf[#/components/schemas/App]/deletedAt` became optional for the status `200`
  - the response property `app/allOf[#/components/schemas/App]/id` became optional for the status `200`
  - the response property `app/allOf[#/components/schemas/App]/isActive` became optional for the status `200`
  - the response property `app/allOf[#/components/schemas/App]/name` became optional for the status `200`
  - the response property `app/allOf[#/components/schemas/App]/redirectUris` became optional for the status `200`
  - the response property `app/allOf[#/components/schemas/App]/type` became optional for the status `200`
  - the response property `app/allOf[#/components/schemas/App]/updatedAt` became optional for the status `200`
  - the response property `app/allOf[subschema #2]/scopes` became optional for the status `200`
  - removed the required property `app/allOf[#/components/schemas/App]/allowEmailMfaAsBackup` from the response with the `200` status
  - removed the required property `app/allOf[#/components/schemas/App]/requireEmailMfa` from the response with the `200` status
  - removed the required property `app/allOf[#/components/schemas/App]/requireOtpMfa` from the response with the `200` status
  - removed the required property `app/allOf[#/components/schemas/App]/requireSmsMfa` from the response with the `200` status
  - removed the required property `app/allOf[#/components/schemas/App]/useSystemMfaConfig` from the response with the `200` status
  - removed the request property `allowEmailMfaAsBackup`
  - removed the request property `requireEmailMfa`
  - removed the request property `requireOtpMfa`
  - removed the request property `requireSmsMfa`
  - removed the request property `useSystemMfaConfig`
  - added the optional property `app/allOf[#/components/schemas/App]/secret` to the response with the `200` status

---

[Operation](https://skmtc.dev/valuemelody/apis/melody-auth-s2s-api/docs/api/v1/apps/:id/put.md) · [API](https://skmtc.dev/valuemelody/apis/melody-auth-s2s-api.md) · [Page](https://skmtc.dev/valuemelody/apis/melody-auth-s2s-api/changes/api/v1/apps/:id/put)
