Add a strategy to a feature flag
POST /api/admin/projects/:projectId/features/:featureName/environments/:environment/strategies
Add a strategy to a feature flag in the specified environment.
Request
Path Parameters
- projectId string required
- featureName string required
- environment string required
- application/json
Body
required
createFeatureStrategySchema
- name string requiredThe name of the strategy type 
- title string nullableA descriptive title for the strategy 
- disabled boolean nullableA toggle to disable the strategy. defaults to false. Disabled strategies are not evaluated or returned to the SDKs 
- sortOrder numberThe order of the strategy in the list 
- constraints object[]- A list of the constraints attached to the strategy. See https://docs.getunleash.io/reference/strategy-constraints Array [contextName string required- The name of the context field that this constraint should apply to. operator string required- Possible values: [ - NOT_IN,- IN,- STR_ENDS_WITH,- STR_STARTS_WITH,- STR_CONTAINS,- NUM_EQ,- NUM_GT,- NUM_GTE,- NUM_LT,- NUM_LTE,- DATE_AFTER,- DATE_BEFORE,- SEMVER_EQ,- SEMVER_GT,- SEMVER_LT]- The operator to use when evaluating this constraint. For more information about the various operators, refer to the strategy constraint operator documentation. caseInsensitive boolean- Default value: - false- Whether the operator should be case sensitive or not. Defaults to - false(being case sensitive).inverted boolean- Default value: - false- Whether the result should be negated or not. If - true, will turn a- trueresult into a- falseresult and vice versa.values string[]- The context values that should be used for constraint evaluation. Use this property instead of - valuefor properties that accept multiple values.value string- The context value that should be used for constraint evaluation. Use this property instead of - valuesfor properties that only accept single values.]
- variants object[]- Strategy level variants Array [name string required- The variant name. Must be unique for this feature flag weight integer required- Possible values: - <= 1000- The weight is the likelihood of any one user getting this variant. It is an integer between 0 and 1000. See the section on variant weights for more information weightType string required- Possible values: [ - variable,- fix]- Set to - fixif 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. Refer to the variant weight documentation.stickiness string required- The stickiness to use for distribution of this variant. 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 ]
- parameters object- A list of parameters for a strategy property name* string
- segments number[]Ids of segments to use for this strategy 
- 200
- 401
- 403
- 404
featureStrategySchema
- application/json
- Schema
- Example (from schema)
Schema
- id stringA uuid for the feature strategy 
- name string requiredThe name or type of strategy 
- title string nullableA descriptive title for the strategy 
- disabled boolean nullableA toggle to disable the strategy. defaults to false. Disabled strategies are not evaluated or returned to the SDKs 
- featureName stringThe name or feature the strategy is attached to 
- sortOrder numberThe order of the strategy in the list 
- segments number[]A list of segment ids attached to the strategy 
- constraints object[]- A list of the constraints attached to the strategy. See https://docs.getunleash.io/reference/strategy-constraints Array [contextName string required- The name of the context field that this constraint should apply to. operator string required- Possible values: [ - NOT_IN,- IN,- STR_ENDS_WITH,- STR_STARTS_WITH,- STR_CONTAINS,- NUM_EQ,- NUM_GT,- NUM_GTE,- NUM_LT,- NUM_LTE,- DATE_AFTER,- DATE_BEFORE,- SEMVER_EQ,- SEMVER_GT,- SEMVER_LT]- The operator to use when evaluating this constraint. For more information about the various operators, refer to the strategy constraint operator documentation. caseInsensitive boolean- Default value: - false- Whether the operator should be case sensitive or not. Defaults to - false(being case sensitive).inverted boolean- Default value: - false- Whether the result should be negated or not. If - true, will turn a- trueresult into a- falseresult and vice versa.values string[]- The context values that should be used for constraint evaluation. Use this property instead of - valuefor properties that accept multiple values.value string- The context value that should be used for constraint evaluation. Use this property instead of - valuesfor properties that only accept single values.]
- variants object[]- Strategy level variants Array [name string required- The variant name. Must be unique for this feature flag weight integer required- Possible values: - <= 1000- The weight is the likelihood of any one user getting this variant. It is an integer between 0 and 1000. See the section on variant weights for more information weightType string required- Possible values: [ - variable,- fix]- Set to - fixif 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. Refer to the variant weight documentation.stickiness string required- The stickiness to use for distribution of this variant. 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 ]
- parameters object- A list of parameters for a strategy property name* string
{
  "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": {}
}
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\"."
}