Search and filter features
GET /api/admin/search/features
Search and filter by selected fields.
Request
Query Parameters
- query string
The search query for the feature name or tag
- project string
Possible 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 string
Possible 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 string
Possible 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 string
Possible 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 string
Possible 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 string
Possible 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 string
The number of features to skip when returning a page. By default it is set to 0.
- limit string
The number of feature environments to return in a page. By default it is set to 50.
- sortBy string
The field to sort the results by. By default it is set to "createdAt".
- sortOrder string
Possible values: [
asc
,desc
]The sort order for the sortBy. By default it is det to "asc".
- favoritesFirst string
The flag to indicate if the favorite features should be returned first. By default it is set to false.
- createdAt string
Possible 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 requiredUnique feature name
type string requiredType of the flag e.g. experiment, kill-switch, release, operational, permission
description string nullable requiredDetailed description of the feature
dependencyType string nullable requiredPossible 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 booleantrue
if the feature is archivedproject string requiredName of the project the feature belongs to
stale boolean requiredtrue
if the feature is stale based on the age and feature type, otherwisefalse
.favorite boolean requiredtrue
if the feature was favorited, otherwisefalse
.impressionData boolean requiredtrue
if the impression data collection is enabled for the feature, otherwisefalse
.createdAt date-time nullable requiredThe date the feature was created
archivedAt date-time nullableThe date the feature was archived
lastSeenAt date-time nullable deprecatedThe 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 requiredThe name of the environment
featureName stringThe name of the feature
environment stringThe name of the environment
type string requiredThe type of the environment
enabled boolean requiredtrue
if the feature is enabled for the environment, otherwisefalse
.sortOrder numberThe sort order of the feature environment in the feature environments list
variantCount numberThe number of defined variants
strategies object[]
A list of activation strategies for the feature environment
Array [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 requiredThe name of the context field that this constraint should apply to.
operator string requiredPossible 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 booleanDefault value:
false
Whether the operator should be case sensitive or not. Defaults to
false
(being case sensitive).inverted booleanDefault value:
false
Whether the result should be negated or not. If
true
, will turn atrue
result into afalse
result and vice versa.values string[]The context values that should be used for constraint evaluation. Use this property instead of
value
for properties that accept multiple values.value stringThe context value that should be used for constraint evaluation. Use this property instead of
values
for properties that only accept single values.]variants object[]
Strategy level variants
Array [name string requiredThe variant name. Must be unique for this feature flag
weight integer requiredPossible 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 requiredPossible values: [
variable
,fix
]Set to
fix
if this variant must have exactly the weight allocated to it. If the type isvariable
, the weight will adjust so that the total weight of all variants adds up to 1000. Refer to the variant weight documentation.stickiness string requiredThe 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 requiredPossible values: [
json
,csv
,string
,number
]The type of the value. Commonly used types are string, number, json and csv.
value string requiredThe 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 requiredThe variants name. Is unique for this feature flag
weight number requiredPossible 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 stringPossible 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 stringStickiness is how Unleash guarantees that the same user gets the same variant every time
payload object
Extra data configured for this variant
type string requiredPossible values: [
json
,csv
,string
,number
]The type of the value. Commonly used types are string, number, json and csv.
value string requiredThe 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 requiredThe name of the context field used to determine overrides
values string[] requiredWhich values that should be overriden
]]lastSeenAt date-time nullableThe date when metrics where last collected for the feature environment
hasStrategies booleanWhether the feature has any strategies defined.
hasEnabledStrategies booleanWhether the feature has any enabled strategies defined.
yes integerHow many times the toggle evaluated to true in last hour bucket
no integerHow many times the toggle evaluated to false in last hour bucket
]segments string[] requiredThe 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 requiredThe variants name. Is unique for this feature flag
weight number requiredPossible 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 stringPossible 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 stringStickiness is how Unleash guarantees that the same user gets the same variant every time
payload object
Extra data configured for this variant
type string requiredPossible values: [
json
,csv
,string
,number
]The type of the value. Commonly used types are string, number, json and csv.
value string requiredThe 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 requiredThe name of the context field used to determine overrides
values string[] requiredWhich values that should be overriden
]]strategies object[] deprecatedThis is a legacy field that was deprecated in v5
tags object[]nullable
The list of feature tags
Array [value string requiredPossible values:
>= 2 characters
and<= 50 characters
The value of the tag.
]lifecycle object
Current lifecycle stage of the feature
stage string requiredPossible values: [
initial
,pre-live
,live
,completed
,archived
]The name of the current lifecycle stage
status string nullableThe name of the detailed status of a given stage. E.g. completed stage can be kept or discarded.
enteredStageAt date-time requiredWhen the feature entered this stage
createdBy objectrequired
User who created the feature flag
id integer requiredThe user id
name string requiredName of the user
imageUrl string requiredURL used for the user profile image
]- total number
Total 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 string
The ID of the error instance
- name string
The name of the error kind
- message string
A 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 string
The ID of the error instance
- name string
The name of the error kind
- message string
A 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 string
The ID of the error instance
- name string
The name of the error kind
- message string
A description of what went wrong.
{
"id": "9c40958a-daac-400e-98fb-3bb438567008",
"name": "NotFoundError",
"message": "Could not find the addon with ID \"12345\"."
}