Evaluate an Unleash context against a set of environments and projects.
POST /api/admin/playground
Deprecated. Will be removed in the next Unleash major update. Use the provided context, environment, and projects to evaluate toggles on this Unleash instance. Returns a list of all toggles that match the parameters and what they evaluate to. The response also contains the input parameters that were provided.
Request
- application/json
Body
required
playgroundRequestSchema
- environment string requiredThe environment to evaluate toggles in. 
- projects object- A list of projects to check for toggles in. oneOf- MOD1
- MOD2
 Array [string]string- Possible values: [ - *]- Check toggles in all projects. 
- context objectrequired- The Unleash context as modeled in client SDKs appName string required- Possible values: - non-empty- The name of the application. currentTime date-time- A DateTime (or similar) data class instance or a string in an RFC3339-compatible format. Defaults to the current time if not set by the user. environment string deprecated- The environment the app is running in. - properties object- Additional Unleash context properties property name* stringremoteAddress string- The app's IP address sessionId string- An identifier for the current session userId string- An identifier for the current user property name* any- The Unleash context as modeled in client SDKs 
- 200
- 400
- 401
playgroundResponseSchema
- application/json
- Schema
- Example (from schema)
Schema
- input objectrequired- The given input used to evaluate the features. environment string required- The environment to evaluate toggles in. - projects object- A list of projects to check for toggles in. oneOf- MOD1
- MOD2
 Array [string]string- Possible values: [ - *]- Check toggles in all projects. - context objectrequired- The Unleash context as modeled in client SDKs appName string required- Possible values: - non-empty- The name of the application. currentTime date-time- A DateTime (or similar) data class instance or a string in an RFC3339-compatible format. Defaults to the current time if not set by the user. environment string deprecated- The environment the app is running in. - properties object- Additional Unleash context properties property name* stringremoteAddress string- The app's IP address sessionId string- An identifier for the current session userId string- An identifier for the current user property name* any- The Unleash context as modeled in client SDKs 
- features object[]required- The list of features that have been evaluated. Array [name string required- The feature's name. projectId string required- The ID of the project that contains this feature. - strategies objectrequired- The feature's applicable strategies and cumulative results of the strategies - result objectrequired- The cumulative results of all the feature's strategies. Can be - true,- false, or- unknown. This property will only be- unknownif one or more of the strategies can't be fully evaluated and the rest of the strategies all resolve to- false.anyOf- MOD1
- MOD2
 booleanstring- Possible values: [ - unknown]- data object[]required- The strategies that apply to this feature. Array [name string required- The strategy's name. title string- Description of the feature's purpose. id string required- The strategy's id. - result objectrequired- The strategy's evaluation result. If the strategy is a custom strategy that Unleash can't evaluate, - evaluationStatuswill be- unknown. Otherwise, it will be- trueor- falseanyOf- MOD1
- MOD2
 evaluationStatus string required- Possible values: [ - incomplete,- unevaluated]- Signals that this strategy could not be evaluated. This is most likely because you're using a custom strategy that Unleash doesn't know about. The - unevaluatedresult is also returned if the strategy is disabled.- enabled objectrequired- Whether this strategy resolves to - falseor if it might resolve to- true. Because Unleash can't evaluate the strategy, it can't say for certain whether it will be- true, but if you have failing constraints or segments, it can determine that your strategy would be- false.anyOf- MOD1
- MOD2
 boolean- Possible values: [ - false]string- Possible values: [ - unknown]evaluationStatus string required- Possible values: [ - complete]- Signals that this strategy was evaluated successfully. enabled boolean required- Whether this strategy evaluates to true or not. - variant objectnullable- The feature variant you receive based on the provided context or the disabled variant. If a feature is disabled or doesn't have any variants, you would get the disabled variant. Otherwise, you'll get one of the feature's defined variants. name string required- The variant's name. If there is no variant or if the toggle is disabled, this will be - disabledenabled boolean required- Whether the variant is enabled or not. If the feature is disabled or if it doesn't have variants, this property will be - false- payload object- An optional payload attached to the variant. type string required- Possible values: [ - json,- csv,- string,- number]- The format of the payload. value string required- The payload value stringified. - variants object[]- The feature variants. 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 ]]disabled boolean nullable required- The strategy's status. Disabled strategies are not evaluated - segments object[]required- The strategy's segments and their evaluation results. Array [id integer required- The segment's id. name string required- The name of the segment. result boolean required- Whether this was evaluated as true or false. - constraints object[]required- The list of constraints in this 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.result boolean required- Whether this was evaluated as true or false. ]]- constraints object[]required- The strategy's constraints and their evaluation results. 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.result boolean required- Whether this was evaluated as true or false. ]- parameters objectrequired- The strategy's constraints and their evaluation results. property name* string- links objectrequired- A set of links to actions you can perform on this strategy edit string required]hasUnsatisfiedDependency boolean- Whether the feature has a parent dependency that is not satisfied isEnabledInCurrentEnvironment boolean required- Whether the feature is active and would be evaluated in the provided environment in a normal SDK context. isEnabled boolean required- Whether this feature is enabled or not in the current environment. If a feature can't be fully evaluated (that is, - strategies.resultis- unknown), this will be- falseto align with how client SDKs treat unresolved feature states.- variant objectnullablerequired- The feature variant you receive based on the provided context or the disabled variant. If a feature is disabled or doesn't have any variants, you would get the disabled variant. Otherwise, you'll get one of thefeature's defined variants. name string required- The variant's name. If there is no variant or if the toggle is disabled, this will be - disabledenabled boolean required- Whether the variant is enabled or not. If the feature is disabled or if it doesn't have variants, this property will be - false- payload object- An optional payload attached to the variant. type string required- The format of the payload. value string required- The payload value stringified. feature_enabled boolean- Use - featureEnabledinstead.featureEnabled boolean deprecated- Whether the feature is enabled or not. - variants object[]required- The feature variants. 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 ]]]
{
  "input": {
    "environment": "development",
    "projects": [
      "my-project"
    ],
    "context": {
      "appName": "My cool application.",
      "currentTime": "2022-07-05T12:56:41+02:00",
      "properties": {
        "customContextField": "this is one!",
        "otherCustomField": "3"
      },
      "remoteAddress": "192.168.1.1",
      "sessionId": "b65e7b23-fec0-4814-a129-0e9861ef18fc",
      "userId": "username@provider.com"
    }
  },
  "features": [
    {
      "name": "my-feature",
      "projectId": "my-project",
      "strategies": {
        "result": true,
        "data": [
          {
            "name": "string",
            "title": "Beta rollout",
            "id": "3AECCF7E-FF82-4174-8287-8EBE06079A50",
            "result": {},
            "disabled": false,
            "segments": [
              {
                "id": 0,
                "name": "segment A",
                "result": true,
                "constraints": [
                  {
                    "contextName": "appName",
                    "operator": "IN",
                    "caseInsensitive": false,
                    "inverted": false,
                    "values": [
                      "my-app",
                      "my-other-app"
                    ],
                    "value": "my-app",
                    "result": true
                  }
                ]
              }
            ],
            "constraints": [
              {
                "contextName": "appName",
                "operator": "IN",
                "caseInsensitive": false,
                "inverted": false,
                "values": [
                  "my-app",
                  "my-other-app"
                ],
                "value": "my-app",
                "result": true
              }
            ],
            "parameters": {
              "myParam1": "param value"
            },
            "links": {
              "edit": "/projects/some-project/features/some-feature/strategies/edit?environmentId=some-env&strategyId= 3AECCF7E-FF82-4174-8287-8EBE06079A50"
            }
          }
        ]
      },
      "hasUnsatisfiedDependency": true,
      "isEnabledInCurrentEnvironment": true,
      "isEnabled": true,
      "variant": {
        "name": "green",
        "enabled": true
      },
      "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."
}