Create (overwrite) variants for a feature toggle in all environments
PUT /api/admin/projects/:projectId/features/:featureName/variants
This overwrites the current variants for the feature specified in the :featureName parameter in all environments.
The backend will validate the input for the following invariants
- If there are variants, there needs to be at least one variant with weightType: variable
- The sum of the weights of variants with weightType: fixmust be strictly less than 1000 (< 1000)
The backend will also distribute remaining weight up to 1000 after adding the variants with weightType: fix together amongst the variants of weightType: variable
Request
Path Parameters
- projectId string required
- featureName string required
- application/json
Body
 arrayrequired
variantsSchema
- Array [
- name string requiredThe variants name. Is unique for this feature toggle 
- weight number requiredPossible values: <= 1000The weight is the likelihood of any one user getting this variant. It is a number between 0 and 1000. See the section on variant weights for more information 
- weightType stringPossible values: [ variable,fix]Set to fix if this variant must have exactly the weight allocated to it. If the type is variable, the weight will adjust so that the total weight of all variants adds up to 1000 
- stickiness stringStickiness is how Unleash guarantees that the same user gets the same variant every time 
- payload object- Extra data configured for this variant type string required- Possible values: [ - json,- csv,- string,- number]- The type of the value. Commonly used types are string, number, json and csv. value string required- The actual value of payload 
- overrides object[]- Overrides assigning specific variants to specific users. The weighting system automatically assigns users to specific groups for you, but any overrides in this list will take precedence. Array [contextName string required- The name of the context field used to determine overrides values string[] required- Which values that should be overriden ]
- ]
- 200
- 400
- 401
- 403
- 404
featureVariantsSchema
- application/json
- Schema
- Example (from schema)
Schema
- version integer requiredThe version of the feature variants schema. 
- variants object[]required- All variants defined for a specific feature toggle. Array [name string required- The variants name. Is unique for this feature toggle weight number required- Possible values: - <= 1000- The weight is the likelihood of any one user getting this variant. It is a number between 0 and 1000. See the section on variant weights for more information weightType string- Possible values: [ - variable,- fix]- Set to fix if this variant must have exactly the weight allocated to it. If the type is variable, the weight will adjust so that the total weight of all variants adds up to 1000 stickiness string- Stickiness is how Unleash guarantees that the same user gets the same variant every time - payload object- Extra data configured for this variant type string required- Possible values: [ - json,- csv,- string,- number]- The type of the value. Commonly used types are string, number, json and csv. value string required- The actual value of payload - overrides object[]- Overrides assigning specific variants to specific users. The weighting system automatically assigns users to specific groups for you, but any overrides in this list will take precedence. Array [contextName string required- The name of the context field used to determine overrides values string[] required- Which values that should be overriden ]]
{
  "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 stringThe ID of the error instance 
- name stringThe name of the error kind 
- message stringA 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 stringThe ID of the error instance 
- name stringThe name of the error kind 
- message stringA 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 stringThe ID of the error instance 
- name stringThe name of the error kind 
- message stringA 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 stringThe ID of the error instance 
- name stringThe name of the error kind 
- message stringA description of what went wrong. 
{
  "id": "9c40958a-daac-400e-98fb-3bb438567008",
  "name": "NotFoundError",
  "message": "Could not find the addon with ID \"12345\"."
}