---
title: "Changes to Update Product Preferences"
method: POST
path: "/v1/products/{productId}/preferences"
---

# Changes to Update Product Preferences

`POST /v1/products/{productId}/preferences`

> Every recorded change to this operation, newest first.

## Timeline

Changed in 3 of 16 revisions.

- **2026-06-08** `fc2e575e2bd3`: 8 info
- **2025-10-09** `8b8a102e5ed1`: 20 breaking, 12 info
- **2024-05-18** `f14408c16a8c`: 1 info

## Changes

- **2026-06-08** `fc2e575e2bd3`: 8 info
  - added the new optional request property `approveRequired` (media type: application/json)
  - added the new optional request property `approveRequired` (media type: text/json)
  - added the new optional request property `approveRequired` (media type: application/*+json)
  - added the new optional request property `approveRequiredEnvironments` (media type: application/json)
  - added the new optional request property `approveRequiredEnvironments` (media type: text/json)
  - added the new optional request property `approveRequiredEnvironments` (media type: application/*+json)
  - added the required property `approveRequired` to the response with the `200` status
  - added the required property `approveRequiredEnvironments` to the response with the `200` status
- **2025-10-09** `8b8a102e5ed1`: 20 breaking, 12 info
  - added `#/components/schemas/KeyGenerationMode` to the `keyGenerationMode` request property `allOf` list (media type: application/json)
  - added `#/components/schemas/KeyGenerationMode` to the `keyGenerationMode` request property `allOf` list (media type: text/json)
  - added `#/components/schemas/KeyGenerationMode` to the `keyGenerationMode` request property `allOf` list (media type: application/*+json)
  - removed the enum value `camelCase` of the request property `keyGenerationMode` (media type: application/json)
  - removed the enum value `camelCase` of the request property `keyGenerationMode` (media type: text/json)
  - removed the enum value `camelCase` of the request property `keyGenerationMode` (media type: application/*+json)
  - removed the enum value `kebabCase` of the request property `keyGenerationMode` (media type: application/json)
  - removed the enum value `kebabCase` of the request property `keyGenerationMode` (media type: text/json)
  - removed the enum value `kebabCase` of the request property `keyGenerationMode` (media type: application/*+json)
  - removed the enum value `lowerCase` of the request property `keyGenerationMode` (media type: application/json)
  - removed the enum value `lowerCase` of the request property `keyGenerationMode` (media type: text/json)
  - removed the enum value `lowerCase` of the request property `keyGenerationMode` (media type: application/*+json)
  - removed the enum value `pascalCase` of the request property `keyGenerationMode` (media type: application/json)
  - removed the enum value `pascalCase` of the request property `keyGenerationMode` (media type: text/json)
  - removed the enum value `pascalCase` of the request property `keyGenerationMode` (media type: application/*+json)
  - removed the enum value `upperCase` of the request property `keyGenerationMode` (media type: application/json)
  - removed the enum value `upperCase` of the request property `keyGenerationMode` (media type: text/json)
  - removed the enum value `upperCase` of the request property `keyGenerationMode` (media type: application/*+json)
  - the `keyGenerationMode` request property type changed from `string` to no type (media type: application/json)
  - the `keyGenerationMode` request property type changed from `string` to no type (media type: application/*+json)
  - the request property `keyGenerationMode` became nullable (media type: application/json)
  - the request property `keyGenerationMode` became nullable (media type: text/json)
  - the request property `keyGenerationMode` became nullable (media type: application/*+json)
  - the `keyGenerationMode` request property type was generalized from `string` to no type (media type: text/json)
  - the response property `keyGenerationMode` became required for the status `200`
  - the response property `mandatorySettingHint` became required for the status `200`
  - the response property `reasonRequired` became required for the status `200`
  - the response property `reasonRequiredEnvironments` became required for the status `200`
  - the response property `reasonRequiredEnvironments/items/environmentId` became required for the status `200`
  - the response property `reasonRequiredEnvironments/items/environmentName` became required for the status `200`
  - the response property `reasonRequiredEnvironments/items/reasonRequired` became required for the status `200`
  - the response property `showVariationId` became required for the status `200`
- **2024-05-18** `f14408c16a8c`: 1 info
  - endpoint added

---

[Operation](https://skmtc.dev/configcat/apis/configcat-public-management-api/docs/v1/products/:productId/preferences/post.md) - [API](https://skmtc.dev/configcat/apis/configcat-public-management-api.md) - [Page](https://skmtc.dev/configcat/apis/configcat-public-management-api/changes/v1/products/:productId/preferences/post)
