Apply a patch to a feature's variants (in all environments).
PATCH <your-unleash-url>/api/admin/projects/:projectId/features/:featureName/variants
Authorization
name: Authorizationtype: apiKeyin: header
Apply a list of patches patch to the specified feature's variants. The patch objects should conform to the JSON-patch format (RFC 6902).
⚠️ Warning: This method is not atomic. If something fails in the middle of applying the patch, you can be left with a half-applied patch. We recommend that you instead patch variants on a per-environment basis, which is an atomic operation.
Request
Path Parameters
- projectId string required
- featureName string required
- application/json
Body
arrayrequired
patchesSchema
- Array [
- path string required
The path to the property to operate on
- op string required
Possible values: [
add
,remove
,replace
,copy
,move
]The kind of operation to perform
- from string
The target to move or copy from, if performing one of those operations
- value
The value to add or replace, if performing one of those operations
- ]
- 200
- 400
- 401
- 403
- 404
featureVariantsSchema
- application/json
- Schema
- Example (from schema)
Schema
- version integer required
The version of the feature variants schema.
variants object[]required
{
"version": 1,
"variants": [
{
"name": "blue_group",
"weight": 0,
"weightType": "variable",
"stickiness": "custom.context.field",
"payload": {
"type": "json",
"value": "{\"color\": \"red\"}"
},
"overrides": [
{
"contextName": "userId",
"values": [
"red",
"blue"
]
}
]
}
]
}
The request data does not match what we expect.
- 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": "ValidationError",
"message": "The request payload you provided doesn't conform to the schema. The .parameters property should be object. You sent []."
}
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\"."
}
Authorization
name: Authorizationtype: apiKeyin: header
Request
Request
curl -L -X PATCH '<your-unleash-url>/api/admin/projects/:projectId/features/:featureName/variants' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: <API_KEY_VALUE>' \
--data-raw '[
{
"path": "/type",
"op": "replace",
"from": "/type",
"value": "kill-switch"
}
]'
curl -L -X PATCH '<your-unleash-url>/api/admin/projects/:projectId/features/:featureName/variants' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: <API_KEY_VALUE>' \
--data-raw '[
{
"path": "/type",
"op": "replace",
"from": "/type",
"value": "kill-switch"
}
]'
curl -L -X PATCH '<your-unleash-url>/api/admin/projects/:projectId/features/:featureName/variants' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: <API_KEY_VALUE>' \
--data-raw '[
{
"path": "/type",
"op": "replace",
"from": "/type",
"value": "kill-switch"
}
]'
curl -L -X PATCH '<your-unleash-url>/api/admin/projects/:projectId/features/:featureName/variants' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: <API_KEY_VALUE>' \
--data-raw '[
{
"path": "/type",
"op": "replace",
"from": "/type",
"value": "kill-switch"
}
]'
curl -L -X PATCH '<your-unleash-url>/api/admin/projects/:projectId/features/:featureName/variants' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: <API_KEY_VALUE>' \
--data-raw '[
{
"path": "/type",
"op": "replace",
"from": "/type",
"value": "kill-switch"
}
]'
curl -L -X PATCH '<your-unleash-url>/api/admin/projects/:projectId/features/:featureName/variants' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: <API_KEY_VALUE>' \
--data-raw '[
{
"path": "/type",
"op": "replace",
"from": "/type",
"value": "kill-switch"
}
]'
curl -L -X PATCH '<your-unleash-url>/api/admin/projects/:projectId/features/:featureName/variants' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: <API_KEY_VALUE>' \
--data-raw '[
{
"path": "/type",
"op": "replace",
"from": "/type",
"value": "kill-switch"
}
]'
curl -L -X PATCH '<your-unleash-url>/api/admin/projects/:projectId/features/:featureName/variants' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: <API_KEY_VALUE>' \
--data-raw '[
{
"path": "/type",
"op": "replace",
"from": "/type",
"value": "kill-switch"
}
]'
curl -L -X PATCH '<your-unleash-url>/api/admin/projects/:projectId/features/:featureName/variants' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: <API_KEY_VALUE>' \
--data-raw '[
{
"path": "/type",
"op": "replace",
"from": "/type",
"value": "kill-switch"
}
]'