# Feature Flags

APIs to create and manage Feature Flags

## Returns all Feature Flags for the project

 - [GET /cf/admin/features](https://apidocs.harness.io/feature-flags/getallfeatures.md): Returns all the Feature Flag details for the given project

## Creates a Feature Flag

 - [POST /cf/admin/features](https://apidocs.harness.io/feature-flags/createfeatureflag.md): Creates a Feature Flag in the Project

## Delete a Feature Flag

 - [DELETE /cf/admin/features/{identifier}](https://apidocs.harness.io/feature-flags/deletefeatureflag.md): Delete Feature Flag for the given identifier and account ID

## Returns a Feature Flag

 - [GET /cf/admin/features/{identifier}](https://apidocs.harness.io/feature-flags/getfeatureflag.md): Returns details such as Variation name, identifier etc for the given Feature Flag

## Updates a Feature Flag

 - [PATCH /cf/admin/features/{identifier}](https://apidocs.harness.io/feature-flags/patchfeature.md): This operation is used to modify a Feature Flag.  The request body can include one or more instructions that can modify
flag attributes such as the state (off|on), the variations that are returned and serving rules.
For example if you want to turn a flag off you can use this opeartion and send the setFeatureFlagState

{
  "kind": "setFeatureFlagState",
  "parameters": {
    "state": "off"
  }
}

## Updates a Feature Flag

 - [PUT /cf/admin/features/{identifier}](https://apidocs.harness.io/feature-flags/putfeatureflag.md): Updates a Feature Flag in the Project

## Return a list of dependant flags

 - [GET /cf/admin/features/{identifier}/dependants](https://apidocs.harness.io/feature-flags/getdependentfeatures.md): Given identifier return list all the flags which depend on it.

## Restore a Feature Flag

 - [POST /cf/admin/features/{identifier}/restore](https://apidocs.harness.io/feature-flags/restorefeatureflag.md): Restore Feature Flag for the given identifier and account ID

