Update a feature flag
PUT <your-unleash-url>/api/admin/projects/:projectId/features/:featureName
Authorization
name: Authorizationtype: apiKeyin: headerdescription: API key needed to access this API
Updates the specified feature if the feature belongs to the specified project. Only the provided properties are updated; any feature properties left out of the request body are left untouched.
Request
Path Parameters
- projectId string required
- featureName string required
- application/json
Body
required
updateFeatureSchema
- description string
Detailed description of the feature
- type
Possible values: [
experiment
,kill-switch
,release
,operational
,permission
]Type of the flag e.g. experiment, kill-switch, release, operational, permission
- stale boolean
true
if the feature is archived - archived boolean
If
true
the feature flag will be moved to the archive with a propertyarchivedAt
set to current time - impressionData boolean
true
if the impression data collection is enabled for the feature
- 200
- 401
- 403
- 404
- 415
featureSchema
- application/json
- Schema
- Example (from schema)
Schema
- name string required
Unique feature name
- type string
Type of the flag e.g. experiment, kill-switch, release, operational, permission
- description string nullable
Detailed description of the feature
- archived boolean
true
if the feature is archived - project string
Name of the project the feature belongs to
- enabled boolean
true
if the feature is enabled, otherwisefalse
. - stale boolean
true
if the feature is stale based on the age and feature type, otherwisefalse
. - favorite boolean
true
if the feature was favorited, otherwisefalse
. - impressionData boolean
true
if the impression data collection is enabled for the feature, otherwisefalse
. - createdAt date-time nullable
The date the feature was created
createdBy object
- archivedAt date-time nullable
The date the feature was archived
- lastSeenAt date-time nullable deprecated
The date when metrics where last collected for the feature. This field was deprecated in v5, use the one in featureEnvironmentSchema
environments object[]
variants object[]deprecated
- strategies object[] deprecated
This was deprecated in v5 and will be removed in a future major version
tags object[]nullable
- children string[]
The list of child feature names. This is an experimental field and may change.
lifecycle object
dependencies object[]
collaborators object
{
"name": "disable-comments",
"type": "kill-switch",
"description": "Controls disabling of the comments section in case of an incident",
"archived": true,
"project": "dx-squad",
"enabled": true,
"stale": false,
"favorite": true,
"impressionData": false,
"createdAt": "2023-01-28T15:21:39.975Z",
"createdBy": {
"id": 123,
"name": "User",
"imageUrl": "https://example.com/242x200.png"
},
"archivedAt": "2023-01-29T15:21:39.975Z",
"environments": [
{
"name": "my-dev-env",
"featureName": "disable-comments",
"environment": "development",
"type": "development",
"enabled": true,
"sortOrder": 3,
"variantCount": 0,
"strategies": [
{
"id": "6b5157cb-343a-41e7-bfa3-7b4ec3044840",
"name": "flexibleRollout",
"title": "Gradual Rollout 25-Prod",
"disabled": false,
"featureName": "myAwesomeFeature",
"sortOrder": 9999,
"segments": [
1,
2
],
"constraints": [
{
"contextName": "appName",
"operator": "IN",
"caseInsensitive": false,
"inverted": false,
"values": [
"my-app",
"my-other-app"
],
"value": "my-app"
}
],
"variants": [
{
"name": "blue_group",
"weight": 0,
"weightType": "fix",
"stickiness": "custom.context.field",
"payload": {
"type": "json",
"value": "{\"color\": \"red\"}"
}
}
],
"parameters": {}
}
],
"variants": [
{
"name": "blue_group",
"weight": 0,
"weightType": "variable",
"stickiness": "custom.context.field",
"payload": {
"type": "json",
"value": "{\"color\": \"red\"}"
},
"overrides": [
{
"contextName": "userId",
"values": [
"red",
"blue"
]
}
]
}
],
"lastSeenAt": "2023-01-28T16:21:39.975Z",
"hasStrategies": true,
"hasEnabledStrategies": true
}
],
"tags": [
{
"value": "a-tag-value",
"type": "simple"
}
],
"children": [
"some-feature"
],
"lifecycle": {
"stage": "initial",
"enteredStageAt": "2023-01-28T15:21:39.975Z"
},
"dependencies": [
{
"feature": "some-feature",
"enabled": true,
"variants": [
"some-feature-blue-variant"
]
}
],
"collaborators": {
"users": [
{
"id": 123,
"name": "User",
"imageUrl": "https://example.com/242x200.png"
}
]
}
}
Authorization information is missing or invalid. Provide a valid API token as the authorization
header, e.g. authorization:*.*.my-admin-token
.
- application/json
- Schema
- Example (from schema)
Schema
- id string
The ID of the error instance
- name string
The name of the error kind
- message string
A description of what went wrong.
{
"id": "9c40958a-daac-400e-98fb-3bb438567008",
"name": "AuthenticationRequired",
"message": "You must log in to use Unleash. Your request had no authorization header, so we could not authorize you. Try logging in at /auth/simple/login."
}
The provided user credentials are valid, but the user does not have the necessary permissions to perform this operation
- application/json
- Schema
- Example (from schema)
Schema
- id string
The ID of the error instance
- name string
The name of the error kind
- message string
A description of what went wrong.
{
"id": "9c40958a-daac-400e-98fb-3bb438567008",
"name": "NoAccessError",
"message": "You need the \"UPDATE_ADDON\" permission to perform this action in the \"development\" environment."
}
The requested resource was not found.
- application/json
- Schema
- Example (from schema)
Schema
- id string
The ID of the error instance
- name string
The name of the error kind
- message string
A description of what went wrong.
{
"id": "9c40958a-daac-400e-98fb-3bb438567008",
"name": "NotFoundError",
"message": "Could not find the addon with ID \"12345\"."
}
The operation does not support request payloads of the provided type. Please ensure that you're using one of the listed payload types and that you have specified the right content type in the "content-type" header.
- application/json
- Schema
- Example (from schema)
Schema
- id string
The ID of the error instance
- name string
The name of the error kind
- message string
A description of what went wrong.
{
"id": "9c40958a-daac-400e-98fb-3bb438567008",
"name": "ContentTypeerror",
"message": "We do not accept the content-type you provided (application/xml). Try using one of the content-types we do accept instead (application/json) and make sure the body is in the corresponding format."
}
Authorization
name: Authorizationtype: apiKeyin: headerdescription: API key needed to access this API
Request
Request
curl -L -X PUT '<your-unleash-url>/api/admin/projects/:projectId/features/:featureName' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: <API_KEY_VALUE>' \
--data-raw '{
"description": "Controls disabling of the comments section in case of an incident",
"type": "kill-switch",
"stale": true,
"archived": true,
"impressionData": false
}'
curl -L -X PUT '<your-unleash-url>/api/admin/projects/:projectId/features/:featureName' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: <API_KEY_VALUE>' \
--data-raw '{
"description": "Controls disabling of the comments section in case of an incident",
"type": "kill-switch",
"stale": true,
"archived": true,
"impressionData": false
}'
curl -L -X PUT '<your-unleash-url>/api/admin/projects/:projectId/features/:featureName' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: <API_KEY_VALUE>' \
--data-raw '{
"description": "Controls disabling of the comments section in case of an incident",
"type": "kill-switch",
"stale": true,
"archived": true,
"impressionData": false
}'
curl -L -X PUT '<your-unleash-url>/api/admin/projects/:projectId/features/:featureName' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: <API_KEY_VALUE>' \
--data-raw '{
"description": "Controls disabling of the comments section in case of an incident",
"type": "kill-switch",
"stale": true,
"archived": true,
"impressionData": false
}'
curl -L -X PUT '<your-unleash-url>/api/admin/projects/:projectId/features/:featureName' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: <API_KEY_VALUE>' \
--data-raw '{
"description": "Controls disabling of the comments section in case of an incident",
"type": "kill-switch",
"stale": true,
"archived": true,
"impressionData": false
}'
curl -L -X PUT '<your-unleash-url>/api/admin/projects/:projectId/features/:featureName' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: <API_KEY_VALUE>' \
--data-raw '{
"description": "Controls disabling of the comments section in case of an incident",
"type": "kill-switch",
"stale": true,
"archived": true,
"impressionData": false
}'
curl -L -X PUT '<your-unleash-url>/api/admin/projects/:projectId/features/:featureName' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: <API_KEY_VALUE>' \
--data-raw '{
"description": "Controls disabling of the comments section in case of an incident",
"type": "kill-switch",
"stale": true,
"archived": true,
"impressionData": false
}'
curl -L -X PUT '<your-unleash-url>/api/admin/projects/:projectId/features/:featureName' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: <API_KEY_VALUE>' \
--data-raw '{
"description": "Controls disabling of the comments section in case of an incident",
"type": "kill-switch",
"stale": true,
"archived": true,
"impressionData": false
}'
curl -L -X PUT '<your-unleash-url>/api/admin/projects/:projectId/features/:featureName' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: <API_KEY_VALUE>' \
--data-raw '{
"description": "Controls disabling of the comments section in case of an incident",
"type": "kill-switch",
"stale": true,
"archived": true,
"impressionData": false
}'