Skip to main content

Get all flags (SDK)

GET 

/api/client/features

Returns the SDK configuration for all feature flags that are available to the provided API key. Used by SDKs to configure local evaluation

Responses

clientFeaturesSchema

Schema

    version numberrequired

    A version number for the format used in the response. Most Unleash instances now return version 2, which includes segments as a separate array

    Example: 2

    features

    object[]

    required

    A list of feature flags with their configuration

  • Array [

  • name stringrequired

    The unique name of a feature flag. Is validated to be URL safe on creation

    Example: new.payment.flow.stripe
    type string

    What kind of feature flag is this. Refer to the documentation on feature flag types for more information

    Example: release
    description stringnullable

    A description of the flag

    Example: No variants here
    enabled booleanrequired

    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

    Example: true
    stale boolean

    If this is true Unleash believes this feature flag has been active longer than Unleash expects a flag of this type to be active

    Example: false
    impressionData booleannullable

    Set to true if SDKs should trigger impression events when this flag is evaluated

    Example: false
    project string

    Which project this feature flag belongs to

    Example: new.payment.flow

    strategies

    object[]

    Evaluation strategies for this flag. Each entry in this list will be evaluated and ORed together

  • Array [

  • id string

    A uuid for the feature strategy

    Example: 6b5157cb-343a-41e7-bfa3-7b4ec3044840
    name stringrequired

    The name or type of strategy

    Example: flexibleRollout
    title stringnullable

    A descriptive title for the strategy

    Example: Gradual Rollout 25-Prod
    disabled booleannullable

    A toggle to disable the strategy. defaults to false. Disabled strategies are not evaluated or returned to the SDKs

    Example: false
    featureName string

    The name or feature the strategy is attached to

    Example: myAwesomeFeature
    sortOrder number

    The order of the strategy in the list

    Example: 9999
    segments number[]

    A list of segment ids attached to the strategy

    Example: [1,2]

    constraints

    object[]

    A list of the constraints attached to the strategy. See https://docs.getunleash.io/reference/strategy-constraints

  • Array [

  • contextName stringrequired

    The name of the context field that this constraint should apply to.

    Example: appName
    operator stringrequired

    The operator to use when evaluating this constraint. For more information about the various operators, refer to the strategy constraint operator documentation.

    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]

    Example: IN
    caseInsensitive boolean

    Whether the operator should be case sensitive or not. Defaults to false (being case sensitive).

    Default value: false
    inverted boolean

    Whether the result should be negated or not. If true, will turn a true result into a false result and vice versa.

    Default value: false
    values string[]

    The context values that should be used for constraint evaluation. Use this property instead of value for properties that accept multiple values.

    Example: ["my-app","my-other-app"]
    value string

    The context value that should be used for constraint evaluation. Use this property instead of values for properties that only accept single values.

    Example: my-app
  • ]

  • variants

    object[]

    Strategy level variants

  • Array [

  • name stringrequired

    The variant name. Must be unique for this feature flag

    Example: blue_group
    weight integerrequired

    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

    Possible values: <= 1000

    weightType stringrequired

    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. Refer to the variant weight documentation.

    Possible values: [variable, fix]

    Example: fix
    stickiness stringrequired

    The stickiness to use for distribution of this variant. Stickiness is how Unleash guarantees that the same user gets the same variant every time

    Example: custom.context.field

    payload

    object

    Extra data configured for this variant

    type stringrequired

    The type of the value. Commonly used types are string, number, json and csv.

    Possible values: [json, csv, string, number]

    value stringrequired

    The actual value of payload

  • ]

  • parameters

    object

    A list of parameters for a strategy

    property name* string
  • ]

  • variants

    object[]

    nullable

    Variants configured for this flag

  • Array [

  • name stringrequired

    The variants name. Is unique for this feature flag

    Example: blue_group
    weight numberrequired

    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

    Possible values: <= 1000

    weightType string

    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

    Possible values: [variable, fix]

    Example: variable
    stickiness string

    Stickiness is how Unleash guarantees that the same user gets the same variant every time

    Example: custom.context.field

    payload

    object

    Extra data configured for this variant

    type stringrequired

    The type of the value. Commonly used types are string, number, json and csv.

    Possible values: [json, csv, string, number]

    value stringrequired

    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 stringrequired

    The name of the context field used to determine overrides

    Example: userId
    values string[]required

    Which values that should be overriden

    Example: ["red","blue"]
  • ]

  • ]

  • dependencies

    object[]

    Feature dependencies for this flag

  • Array [

  • feature stringrequired

    The name of the feature we depend on.

    Example: parent_feature
    enabled boolean

    Whether the parent feature should be enabled. When false variants are ignored. true by default.

    Example: false
    variants string[]

    The list of variants the parent feature should resolve to. Leave empty when you only want to check the enabled status.

    Example: ["variantA","variantB"]
  • ]

  • ]

  • segments

    object[]

    A list of Segments configured for this Unleash instance

  • Array [

  • id numberrequired

    The segment's id.

    name string

    The name of the segment.

    Example: segment A

    constraints

    object[]

    required

    List of constraints that determine which users are part of the segment

  • Array [

  • contextName stringrequired

    The name of the context field that this constraint should apply to.

    Example: appName
    operator stringrequired

    The operator to use when evaluating this constraint. For more information about the various operators, refer to the strategy constraint operator documentation.

    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]

    Example: IN
    caseInsensitive boolean

    Whether the operator should be case sensitive or not. Defaults to false (being case sensitive).

    Default value: false
    inverted boolean

    Whether the result should be negated or not. If true, will turn a true result into a false result and vice versa.

    Default value: false
    values string[]

    The context values that should be used for constraint evaluation. Use this property instead of value for properties that accept multiple values.

    Example: ["my-app","my-other-app"]
    value string

    The context value that should be used for constraint evaluation. Use this property instead of values for properties that only accept single values.

    Example: my-app
  • ]

  • ]

  • 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

    Example: [["simple:payment","simple:stripejourney"]]
    project string[]deprecated

    Features that are part of these projects are included in this response. This is now handled by API tokens and was marked as deprecated in v5

    Example: ["new.payment.flow"]
    namePrefix string

    Features are filtered to only include features whose name starts with this prefix

    Example: payment
    environment stringdeprecated

    Strategies for the feature flag configured for this environment are included. This is now handled by API tokens and was marked as deprecated in v5

    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

    Example: true
Loading...