Skip to main content

Clone a feature flag

POST 

<your-unleash-url>/api/admin/projects/:projectId/features/:featureName/clone

Creates a copy of the specified feature flag. The copy can be created in any project.

Request

Path Parameters

    projectId stringrequired
    featureName stringrequired

Bodyrequired

cloneFeatureSchema

    namestringrequired

    The name of the new feature

    Example: new-feature
    replaceGroupIdboolean

    Whether to use the new feature name as its group ID or not. Group ID is used for calculating stickiness. Defaults to true.

    Example: true

Responses

featureSchema

Schema
    namestringrequired

    Unique feature name

    Example: disable-comments
    typestring

    Type of the flag e.g. experiment, kill-switch, release, operational, permission

    Example: kill-switch
    descriptionstringnullable

    Detailed description of the feature

    Example: Controls disabling of the comments section in case of an incident
    archivedboolean

    true if the feature is archived

    Example: true
    projectstring

    Name of the project the feature belongs to

    Example: dx-squad
    enabledboolean

    true if the feature is enabled, otherwise false.

    Example: true
    staleboolean

    true if the feature is stale based on the age and feature type, otherwise false.

    Example: false
    favoriteboolean

    true if the feature was favorited, otherwise false.

    Example: true
    impressionDataboolean

    true if the impression data collection is enabled for the feature, otherwise false.

    Example: false
    createdAtdate-timenullable

    The date the feature was created

    Example: 2023-01-28T15:21:39.975Z
    createdBy object

    User who created the feature flag

    idintegerrequired

    The user id

    Example: 123
    namestringrequired

    Name of the user

    Example: User
    imageUrlstringrequired

    URL used for the user profile image

    Example: https://example.com/242x200.png
    archivedAtdate-timenullable

    The date the feature was archived

    Example: 2023-01-29T15:21:39.975Z
    lastSeenAtdate-timenullabledeprecated

    The date when metrics where last collected for the feature. This field was deprecated in v5, use the one in featureEnvironmentSchema

    Example: 2023-01-28T16:21:39.975Z
    environments object[]

    The list of environments where the feature can be used

  • Array [
  • namestringrequired

    The name of the environment

    Example: my-dev-env
    featureNamestring

    The name of the feature

    Example: disable-comments
    environmentstring

    The name of the environment

    Example: development
    typestring

    The type of the environment

    Example: development
    enabledbooleanrequired

    true if the feature is enabled for the environment, otherwise false.

    Example: true
    sortOrdernumber

    The sort order of the feature environment in the feature environments list

    Example: 3
    variantCountnumber

    The number of defined variants

    strategies object[]

    A list of activation strategies for the feature environment

  • Array [
  • idstring

    A uuid for the feature strategy

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

    The name or type of strategy

    Example: flexibleRollout
    titlestringnullable

    A descriptive title for the strategy

    Example: Gradual Rollout 25-Prod
    disabledbooleannullable

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

    Example: false
    featureNamestring

    The name or feature the strategy is attached to

    Example: myAwesomeFeature
    sortOrdernumber

    The order of the strategy in the list

    Example: 9999
    segmentsnumber[]

    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/activation-strategies#constraints

  • Array [
  • contextNamestringrequired

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

    Example: appName
    operatorstringrequired

    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
    caseInsensitiveboolean

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

    Default value: false
    invertedboolean

    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
    valuesstring[]

    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"]
    valuestring

    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 [
  • namestringrequired

    The variant name. Must be unique for this feature flag

    Example: blue_group
    weightintegerrequired

    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

    weightTypestringrequired

    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
    stickinessstringrequired

    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

    typestringrequired

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

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

    valuestringrequired

    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 [
  • namestringrequired

    The variants name. Is unique for this feature flag

    Example: blue_group
    weightnumberrequired

    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

    weightTypestring

    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
    stickinessstring

    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

    typestringrequired

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

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

    valuestringrequired

    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 [
  • contextNamestringrequired

    The name of the context field used to determine overrides

    Example: userId
    valuesstring[]required

    Which values that should be overriden

    Example: ["red","blue"]
  • ]
  • ]
  • lastSeenAtdate-timenullable

    The date when metrics where last collected for the feature environment

    Example: 2023-01-28T16:21:39.975Z
    hasStrategiesboolean

    Whether the feature has any strategies defined.

    hasEnabledStrategiesboolean

    Whether the feature has any enabled strategies defined.

  • ]
  • variants object[]deprecated

    The list of feature variants

  • Array [
  • namestringrequired

    The variants name. Is unique for this feature flag

    Example: blue_group
    weightnumberrequired

    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

    weightTypestring

    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
    stickinessstring

    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

    typestringrequired

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

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

    valuestringrequired

    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 [
  • contextNamestringrequired

    The name of the context field used to determine overrides

    Example: userId
    valuesstring[]required

    Which values that should be overriden

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

    This was deprecated in v5 and will be removed in a future major version

    tags object[]nullable

    The list of feature tags

  • Array [
  • valuestringrequired

    The value of the tag.

    Possible values: >= 2 characters and <= 50 characters

    Example: a-tag-value
    typestringrequired

    The type of the tag

    Possible values: >= 2 characters and <= 50 characters

    Example: simple
  • ]
  • childrenstring[]

    The list of child feature names. This is an experimental field and may change.

    lifecycle object

    Current lifecycle stage of the feature

    stagestringrequired

    The name of the current lifecycle stage

    Possible values: [initial, pre-live, live, completed, archived]

    Example: initial
    enteredStageAtdate-timerequired

    When the feature entered this stage

    Example: 2023-01-28T15:21:39.975Z
    dependencies object[]

    The list of parent dependencies. This is an experimental field and may change.

  • Array [
  • featurestringrequired

    The name of the parent feature

    Example: some-feature
    enabledboolean

    Whether the parent feature is enabled or not

    Example: true
    variantsstring[]

    The list of variants the parent feature should resolve to. Only valid when feature is enabled.

  • ]
  • collaborators object

    Information related to users who have made changes to this feature flage.

    users object[]required

    Users who have made any changes to this feature flags. The list is sorted in reverse chronological order (most recent changes first)

  • Array [
  • idintegerrequired

    The user's id

    Example: 123
    namestringrequired

    The user's name, username, or email (prioritized in that order). If none of those are present, this property will be set to the string unknown

    Example: User
    imageUrlstringrequired

    The URL to the user's profile image

    Example: https://example.com/242x200.png
  • ]

Authorization: Authorization

name: Authorizationtype: apiKeyin: headerdescription: API key needed to access this API
curl -L '<your-unleash-url>/api/admin/projects/:projectId/features/:featureName/clone' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: <Authorization>' \
-d '{
"name": "new-feature",
"replaceGroupId": true
}'
Request Collapse all
Base URL
<your-unleash-url>
Auth
Parameters
— pathrequired
— pathrequired
Body required
{
  "name": "new-feature",
  "replaceGroupId": true
}
ResponseClear

Click the Send API Request button above and see the response here!