Search and filter features
GET /api/admin/search/features
Search and filter by selected fields.
Request
Query Parameters
- query stringThe search query for the feature name or tag 
- project stringPossible values: Value must match regular expression ^(IS|IS_NOT|IS_ANY_OF|IS_NONE_OF):(.*?)(,([a-zA-Z0-9_]+))*$Id of the project where search and filter is performed. The project id can be specified with an operator. The supported operators are IS, IS_NOT, IS_ANY_OF, IS_NONE_OF. 
- state stringPossible values: Value must match regular expression ^(IS|IS_NOT|IS_ANY_OF|IS_NONE_OF):(.*?)(,([a-zA-Z0-9_]+))*$The state of the feature active/stale. The state can be specified with an operator. The supported operators are IS, IS_NOT, IS_ANY_OF, IS_NONE_OF. 
- type stringPossible values: Value must match regular expression ^(IS|IS_NOT|IS_ANY_OF|IS_NONE_OF):(.*?)(,([a-zA-Z0-9_]+))*$The feature flag type to filter by. The type can be specified with an operator. The supported operators are IS, IS_NOT, IS_ANY_OF, IS_NONE_OF. 
- createdBy stringPossible values: Value must match regular expression ^(IS|IS_NOT|IS_ANY_OF|IS_NONE_OF):(.*?)(,([a-zA-Z0-9_]+))*$The feature flag creator to filter by. The creators can be specified with an operator. The supported operators are IS, IS_NOT, IS_ANY_OF, IS_NONE_OF. 
- tag stringPossible values: Value must match regular expression ^(INCLUDE|DO_NOT_INCLUDE|INCLUDE_ALL_OF|INCLUDE_ANY_OF|EXCLUDE_IF_ANY_OF|EXCLUDE_ALL):(?:\s*[^,:]+:[^,:]+\s*)(?:,\s*[^,:]+:[^,:]+\s*)*$The list of feature tags to filter by. Feature tag has to specify a type and a value joined with a colon. 
- segment stringPossible values: Value must match regular expression ^(INCLUDE|DO_NOT_INCLUDE|INCLUDE_ALL_OF|INCLUDE_ANY_OF|EXCLUDE_IF_ANY_OF|EXCLUDE_ALL):(.*?)(,([a-zA-Z0-9_]+))*$The list of segments with operators to filter by. The segment valid operators are INCLUDE, DO_NOT_INCLUDE, INCLUDE_ALL_OF, INCLUDE_ANY_OF, EXCLUDE_IF_ANY_OF, EXCLUDE_ALL. 
- status string[]The list of feature environment status to filter by. Feature environment has to specify a name and a status joined with a colon. 
- offset stringThe number of features to skip when returning a page. By default it is set to 0. 
- limit stringThe number of feature environments to return in a page. By default it is set to 50. 
- sortBy stringThe field to sort the results by. By default it is set to "createdAt". 
- sortOrder stringPossible values: [ asc,desc]The sort order for the sortBy. By default it is det to "asc". 
- favoritesFirst stringThe flag to indicate if the favorite features should be returned first. By default it is set to false. 
- createdAt stringPossible values: Value must match regular expression ^(IS_BEFORE|IS_ON_OR_AFTER):\d{4}-\d{2}-\d{2}$The date the feature was created. The date can be specified with an operator. The supported operators are IS_BEFORE, IS_ON_OR_AFTER. 
- 200
- 401
- 403
- 404
searchFeaturesSchema
- application/json
- Schema
- Example (from schema)
Schema
- features object[]required- The full list of features in this project matching search and filter criteria. Array [name string required- Unique feature name type string required- Type of the flag e.g. experiment, kill-switch, release, operational, permission description string nullable required- Detailed description of the feature dependencyType string nullable required- Possible values: [ - parent,- child,- null]- The type of dependency. 'parent' means that the feature is a parent feature, 'child' means that the feature is a child feature. archived boolean- trueif the feature is archivedproject string required- Name of the project the feature belongs to stale boolean required- trueif the feature is stale based on the age and feature type, otherwise- false.favorite boolean required- trueif the feature was favorited, otherwise- false.impressionData boolean required- trueif the impression data collection is enabled for the feature, otherwise- false.createdAt date-time nullable required- The date the feature was created archivedAt date-time nullable- The date the feature was archived lastSeenAt date-time nullable deprecated- The date when metrics where last collected for the feature. This field was deprecated in v5 and will be removed in a future release, use the one in featureEnvironmentSchema - environments object[]required- The list of environments where the feature can be used Array [name string required- The name of the environment featureName string- The name of the feature environment string- The name of the environment type string required- The type of the environment enabled boolean required- trueif the feature is enabled for the environment, otherwise- false.sortOrder number- The sort order of the feature environment in the feature environments list variantCount number- The number of defined variants - strategies object[]- A list of activation strategies for the feature environment 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 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]- variants object[]- A list of variants for the feature environment Array [name string required- The variants name. Is unique for this feature flag 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 ]]lastSeenAt date-time nullable- The date when metrics where last collected for the feature environment hasStrategies boolean- Whether the feature has any strategies defined. hasEnabledStrategies boolean- Whether the feature has any enabled strategies defined. yes integer- How many times the toggle evaluated to true in last hour bucket no integer- How many times the toggle evaluated to false in last hour bucket ]segments string[] required- The list of segments the feature is enabled for. - variants object[]deprecated- The list of feature variants. This field was deprecated in v5 Array [name string required- The variants name. Is unique for this feature flag 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 ]]strategies object[] deprecated- This is a legacy field that was deprecated in v5 - tags object[]nullable- The list of feature tags Array [value string required- Possible values: - >= 2 charactersand- <= 50 characters- The value of the tag. ]- lifecycle object- Current lifecycle stage of the feature stage string required- Possible values: [ - initial,- pre-live,- live,- completed,- archived]- The name of the current lifecycle stage status string nullable- The name of the detailed status of a given stage. E.g. completed stage can be kept or discarded. enteredStageAt date-time required- When the feature entered this stage - createdBy objectrequired- User who created the feature flag id integer required- The user id name string required- Name of the user imageUrl string required- URL used for the user profile image ]
- total numberTotal count of the features matching search and filter criteria 
{
  "features": [
    {
      "name": "disable-comments",
      "type": "kill-switch",
      "description": "Controls disabling of the comments section in case of an incident",
      "dependencyType": "parent",
      "archived": true,
      "project": "dx-squad",
      "stale": false,
      "favorite": true,
      "impressionData": false,
      "createdAt": "2023-01-28T15:21:39.975Z",
      "archivedAt": "2023-01-29T15:21:39.975Z",
      "environments": [
        {
          "name": "my-dev-env",
          "featureName": "disable-comments",
          "environment": "development",
          "type": "development",
          "enabled": true,
          "sortOrder": 3,
          "variantCount": 0,
          "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"
                  ]
                }
              ]
            }
          ],
          "lastSeenAt": "2023-01-28T16:21:39.975Z",
          "hasStrategies": true,
          "hasEnabledStrategies": true,
          "yes": 974,
          "no": 50
        }
      ],
      "segments": [
        "pro-users",
        "main-segment"
      ],
      "tags": [
        {
          "value": "a-tag-value",
          "type": "simple"
        }
      ],
      "lifecycle": {
        "stage": "initial",
        "status": "kept",
        "enteredStageAt": "2023-01-28T15:21:39.975Z"
      },
      "createdBy": {
        "id": 123,
        "name": "User",
        "imageUrl": "https://example.com/242x200.png"
      }
    }
  ],
  "total": 10
}
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\"."
}