Skip to main content

Create (overwrite) variants for a feature flag in all environments

PUT 

<your-unleash-url>/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: fix must 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 stringrequired
    featureName stringrequired

Body arrayrequired

variantsSchema

  • Array [
  • namestringrequired

    The variants name. Is unique for this feature flag

    Example: blue_group
    weightnumberrequired

    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

    Possible values: <= 1000

    weightTypestring

    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

    Possible values: [variable, fix]

    Example: variable
    stickinessstring

    Stickiness is how Unleash guarantees that the same user gets the same variant every time

    Example: custom.context.field
    payload object

    Extra data configured for this variant

    typestringrequired

    The type of the value. Commonly used types are string, number, json and csv.

    Possible values: [json, csv, string, number]

    valuestringrequired

    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 [
  • contextNamestringrequired

    The name of the context field used to determine overrides

    Example: userId
    valuesstring[]required

    Which values that should be overriden

    Example: ["red","blue"]
  • ]
  • ]

Responses

featureVariantsSchema

Schema
    versionintegerrequired

    The version of the feature variants schema.

    Example: 1
    variants object[]required

    All variants defined for a specific feature flag.

  • Array [
  • namestringrequired

    The variants name. Is unique for this feature flag

    Example: blue_group
    weightnumberrequired

    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

    Possible values: <= 1000

    weightTypestring

    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

    Possible values: [variable, fix]

    Example: variable
    stickinessstring

    Stickiness is how Unleash guarantees that the same user gets the same variant every time

    Example: custom.context.field
    payload object

    Extra data configured for this variant

    typestringrequired

    The type of the value. Commonly used types are string, number, json and csv.

    Possible values: [json, csv, string, number]

    valuestringrequired

    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 [
  • contextNamestringrequired

    The name of the context field used to determine overrides

    Example: userId
    valuesstring[]required

    Which values that should be overriden

    Example: ["red","blue"]
  • ]
  • ]

Authorization: Authorization

name: Authorizationtype: apiKeyin: headerdescription: API key needed to access this API
curl -L -X PUT '<your-unleash-url>/api/admin/projects/:projectId/features/:featureName/variants' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: <Authorization>' \
-d '[
{
"name": "blue_group",
"weight": 0,
"weightType": "variable",
"stickiness": "custom.context.field",
"payload": {
"type": "json",
"value": "{\"color\": \"red\"}"
},
"overrides": [
{
"contextName": "userId",
"values": [
"red",
"blue"
]
}
]
}
]'
Request Collapse all
Base URL
<your-unleash-url>
Auth
Parameters
— pathrequired
— pathrequired
Body required
[
  {
    "name": "blue_group",
    "weight": 0,
    "weightType": "variable",
    "stickiness": "custom.context.field",
    "payload": {
      "type": "json",
      "value": "{\"color\": \"red\"}"
    },
    "overrides": [
      {
        "contextName": "userId",
        "values": [
          "red",
          "blue"
        ]
      }
    ]
  }
]
ResponseClear

Click the Send API Request button above and see the response here!