---
title: "PUT /mr-api/application/{appId}/feature-groups/{fgId}"
method: PUT
path: "/mr-api/application/{appId}/feature-groups/{fgId}"
tags: ["FeatureGroupService"]
---

# PUT /mr-api/application/{appId}/feature-groups/{fgId}

`PUT /mr-api/application/{appId}/feature-groups/{fgId}`

Get feature groups for this application

## Request body

- FeatureGroupUpdate — An update, everything is optional, we will only update what we update
  - `name` string, nullable — allow changing the name
  - `description` string, nullable
  - `features` FeatureGroupUpdateFeature[], nullable — allow updating the features
    - `id` string, uuid, required
    - `value` unknown
  - `strategies` FeatureGroupStrategy[], nullable — We only honour the first one
    - `id` string — unique id for this strategy
    - `name` string, required — The strategy name
    - `percentage` integer — value between 0 and 1000000 - for four decimal places
    - `percentageAttributes` string[] — if you don't wish to apply percentage based on user id, you can use one or more attributes defined here
    - `attributes` RolloutStrategyAttribute[]
      - `conditional` 'EQUALS' | 'ENDS_WITH' | 'STARTS_WITH' | 'GREATER' | 'GREATER_EQUALS' | 'LESS' | 'LESS_EQUALS' | 'NOT_EQUALS' | 'INCLUDES' | 'EXCLUDES' | 'REGEX'
      - `fieldName` string
      - `values` RolloutStrategyArrayType[] — the value(s) associated with this rule
        - unknown
      - `type` 'STRING' | 'SEMANTIC_VERSION' | 'NUMBER' | 'DATE' | 'DATETIME' | 'BOOLEAN' | 'IP_ADDRESS'
      - `id` string — A temporary id used only when validating. Saving strips these out as they are not otherwise necessary
  - `order` integer
  - `version` integer, required

## Response `200`

Feature Group

- FeatureGroup
  - `id` string, uuid, required
  - `name` string, required
  - `order` integer, required
  - `description` string
  - `version` integer, required
  - `environmentId` string, uuid, required
  - `environmentName` string, required
  - `features` FeatureGroupFeature[], required
    - `id` string, uuid, required
    - `name` string, required
    - `key` string, required
    - `value` unknown
    - `type` 'BOOLEAN' | 'STRING' | 'NUMBER' | 'JSON', required
    - `locked` boolean
  - `strategies` FeatureGroupStrategy[] — We only honour the first one
    - `id` string — unique id for this strategy
    - `name` string, required — The strategy name
    - `percentage` integer — value between 0 and 1000000 - for four decimal places
    - `percentageAttributes` string[] — if you don't wish to apply percentage based on user id, you can use one or more attributes defined here
    - `attributes` RolloutStrategyAttribute[]
      - `conditional` 'EQUALS' | 'ENDS_WITH' | 'STARTS_WITH' | 'GREATER' | 'GREATER_EQUALS' | 'LESS' | 'LESS_EQUALS' | 'NOT_EQUALS' | 'INCLUDES' | 'EXCLUDES' | 'REGEX'
      - `fieldName` string
      - `values` RolloutStrategyArrayType[] — the value(s) associated with this rule
        - unknown
      - `type` 'STRING' | 'SEMANTIC_VERSION' | 'NUMBER' | 'DATE' | 'DATETIME' | 'BOOLEAN' | 'IP_ADDRESS'
      - `id` string — A temporary id used only when validating. Saving strips these out as they are not otherwise necessary

## Other responses

- `401` — no permission
- `404` — no application or feature group
- `412` — attempt to update an old group
- `413` — attempted to update order position to one already in use
- `414` — attempting to update feature group for archived environment
- `415` — attempting to update feature group that is archived

---

[API](https://skmtc.net/featurehub-io/apis/managementresourceapi.md) · [All operations](https://skmtc.net/featurehub-io/apis/managementresourceapi/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/featurehub-io/managementresourceapi/versions/faed5fd616c3/schema)
