Get all toggles (SDK)
GET /api/client/features
Returns the SDK configuration for all feature toggles that are available to the provided API key. Used by SDKs to configure local evaluation
Request
- 200
clientFeaturesSchema
- application/json
- Schema
- Example (from schema)
Schema
- version number requiredA version number for the format used in the response. Most Unleash instances now return version 2, which includes segments as a separate array 
- features object[]required- A list of feature toggles with their configuration Array [name string required- The unique name of a feature toggle. Is validated to be URL safe on creation type string- What kind of feature flag is this. Refer to the documentation on feature toggle types for more information description string nullable- A description of the toggle enabled boolean required- Whether the feature flag is enabled for the current API key or not. This is ANDed with the evaluation results of the strategies list, so if this is false, the evaluation result will always be false stale boolean- If this is true Unleash believes this feature toggle has been active longer than Unleash expects a toggle of this type to be active impressionData boolean nullable- Set to true if SDKs should trigger impression events when this toggle is evaluated project string- Which project this feature toggle belongs to - strategies object[]- Evaluation strategies for this toggle. Each entry in this list will be evaluated and ORed together Array [id string- A uuid for the feature strategy name string required- The name or type of strategy title string nullable- A descriptive title for the strategy disabled boolean nullable- A toggle to disable the strategy. defaults to false. Disabled strategies are not evaluated or returned to the SDKs featureName string- The name or feature the strategy is attached to sortOrder number- The 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 toggle 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]- variants object[]nullable- Variants configured for this 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 ]]- dependencies object[]- Feature dependencies for this toggle Array [feature string required- The name of the feature we depend on. enabled boolean- Whether the parent feature should be enabled. When - falsevariants are ignored.- trueby default.variants string[]- The list of variants the parent feature should resolve to. Leave empty when you only want to check the - enabledstatus.]]
- segments object[]- A list of Segments configured for this Unleash instance Array [id number required- The segment's id. name string- The name of the segment. - constraints object[]required- List of constraints that determine which users are part of the segment 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.]]
- query object- A summary of filters and parameters sent to the endpoint. Used by the server to build the features and segments response tag array[]- Features tagged with one of these tags are included project string[] deprecated- Features that are part of these projects are included in this response. (DEPRECATED) - Handled by API tokens namePrefix string- Features are filtered to only include features whose name starts with this prefix environment string deprecated- Strategies for the feature toggle configured for this environment are included. (DEPRECATED) - Handled by API tokens inlineSegmentConstraints boolean- Set to true if requesting client does not support Unleash-Client-Specification 4.2.2 or newer. Modern SDKs will have this set to false, since they will be able to merge constraints and segments themselves 
{
  "version": 2,
  "features": [
    {
      "name": "new.payment.flow.stripe",
      "type": "release",
      "description": "No variants here",
      "enabled": true,
      "stale": false,
      "impressionData": false,
      "project": "new.payment.flow",
      "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"
              ]
            }
          ]
        }
      ],
      "dependencies": [
        {
          "feature": "parent_feature",
          "enabled": false,
          "variants": [
            "variantA",
            "variantB"
          ]
        }
      ]
    }
  ],
  "segments": [
    {
      "id": 0,
      "name": "segment A",
      "constraints": [
        {
          "contextName": "appName",
          "operator": "IN",
          "caseInsensitive": false,
          "inverted": false,
          "values": [
            "my-app",
            "my-other-app"
          ],
          "value": "my-app"
        }
      ]
    }
  ],
  "query": {
    "tag": [
      [
        "simple:payment",
        "simple:stripejourney"
      ]
    ],
    "namePrefix": "payment",
    "inlineSegmentConstraints": true
  }
}