---
title: Update a feature flag
description: Updates an existing feature flag's metadata such as name and description.
breadcrumbs: Docs > API > Update a feature flag
---

> For the complete documentation index, see [llms.txt](https://docs.datadoghq.com/llms.txt).

# Update a feature flag

## v2 (latest)

| Datadog site      | API endpoint                                                             |
| ----------------- | ------------------------------------------------------------------------ |
| app.datadoghq.com | PUT https://api.datadoghq.com/api/v2/feature-flags/{feature_flag_id}     |
| us3.datadoghq.com | PUT https://api.us3.datadoghq.com/api/v2/feature-flags/{feature_flag_id} |
| us5.datadoghq.com | PUT https://api.us5.datadoghq.com/api/v2/feature-flags/{feature_flag_id} |
| app.datadoghq.eu  | PUT https://api.datadoghq.eu/api/v2/feature-flags/{feature_flag_id}      |
| ap1.datadoghq.com | PUT https://api.ap1.datadoghq.com/api/v2/feature-flags/{feature_flag_id} |
| ap2.datadoghq.com | PUT https://api.ap2.datadoghq.com/api/v2/feature-flags/{feature_flag_id} |
| uk1.datadoghq.com | PUT https://api.uk1.datadoghq.com/api/v2/feature-flags/{feature_flag_id} |
| app.ddog-gov.com  | PUT https://api.ddog-gov.com/api/v2/feature-flags/{feature_flag_id}      |
| us2.ddog-gov.com  | PUT https://api.us2.ddog-gov.com/api/v2/feature-flags/{feature_flag_id}  |

### Overview

Updates an existing feature flag's metadata such as
name and description. Does not modify targeting rules or allocations.

To change the owning team, update `tags` and include a tag of the form
`team:<team-handle>` in the array. `tags` is a full replacement of the
existing tag set (including any `team:` tag), so include every tag you
want to keep, not just the ones you're adding.

This endpoint requires all of the following permissions:

- `feature_flag_config_write`
- `feature_flag_environment_config_read`

OAuth apps require the `feature_flag_config_write`, `feature_flag_environment_config_read` authorization [scope](https://docs.datadoghq.com/api/latest/scopes.md#feature-flags) to access this endpoint.

### Arguments

#### Path Parameters

| Field                        | Type   | Description                 |
| ---------------------------- | ------ | --------------------------- |
| feature_flag_id [*required*] | string | The ID of the feature flag. |

### Request

#### Body Data (required)

{% tabs %}
{% tab label="Model" %}
| Parent field | Field                   | Type     | Description                                                                                                                                                                                                                                                    |
| ------------ | ----------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|              | data [*required*]       | object   | Data for updating a feature flag.                                                                                                                                                                                                                              |
| data         | attributes [*required*] | object   | Attributes for updating a feature flag.                                                                                                                                                                                                                        |
| attributes   | description             | string   | The description of the feature flag.                                                                                                                                                                                                                           |
| attributes   | json_schema             | string   | JSON schema for validation when value_type is JSON.                                                                                                                                                                                                            |
| attributes   | name                    | string   | The name of the feature flag.                                                                                                                                                                                                                                  |
| attributes   | tags                    | [string] | Tags associated with the feature flag. This field replaces the full set of existing tags; omit it to leave tags unchanged, or pass an empty array to clear all tags. The owning team is set by including a tag of the form `team:<team-handle>` in this array. |
| data         | type [*required*]       | enum     | The resource type. Allowed enum values: `feature-flags`.                                                                                                                                                                                                       |
{% /tab %}

{% tab label="Example" %}
```json
{
  "data": {
    "type": "feature-flags",
    "attributes": {
      "description": "Updated description for the feature flag",
      "name": "Updated Test Feature Flag Example-Feature-Flag"
    }
  }
}
```
{% /tab %}
{% /tabs %}

### Response

{% tabs %}
{% tab label="200" %}
OK

{% tabs %}
{% tab label="Model" %}
Response containing a feature flag.

| Parent field              | Field                         | Type      | Description                                                                                                                                                                                                                                                                                                                        |
| ------------------------- | ----------------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|                           | data [*required*]             | object    | A feature flag resource.                                                                                                                                                                                                                                                                                                           |
| data                      | attributes [*required*]       | object    | Attributes of a feature flag.                                                                                                                                                                                                                                                                                                      |
| attributes                | archived_at                   | date-time | The timestamp when the feature flag was archived.                                                                                                                                                                                                                                                                                  |
| attributes                | created_at                    | date-time | The timestamp when the feature flag was created.                                                                                                                                                                                                                                                                                   |
| attributes                | created_by                    | uuid      | The ID of the user who created the feature flag.                                                                                                                                                                                                                                                                                   |
| attributes                | description [*required*]      | string    | The description of the feature flag.                                                                                                                                                                                                                                                                                               |
| attributes                | distribution_channel          | string    | Distribution channel for the feature flag.                                                                                                                                                                                                                                                                                         |
| attributes                | feature_flag_environments     | [object]  | Environment-specific settings for the feature flag.                                                                                                                                                                                                                                                                                |
| feature_flag_environments | allocations                   | object    | Allocation metadata for this environment.                                                                                                                                                                                                                                                                                          |
| feature_flag_environments | default_allocation_key        | string    | A system-generated allocation key, in the format `allocation-default-<hash>`, that SDKs report in flag evaluation results and exposure events when a subject receives the environment's default variant because no targeting rule matched. It has no corresponding allocation ID and cannot be used with the allocation endpoints. |
| feature_flag_environments | default_variant_id            | string    | The ID of the default variant for this environment.                                                                                                                                                                                                                                                                                |
| feature_flag_environments | environment_id [*required*]   | uuid      | The ID of the environment.                                                                                                                                                                                                                                                                                                         |
| feature_flag_environments | environment_name              | string    | The name of the environment.                                                                                                                                                                                                                                                                                                       |
| feature_flag_environments | environment_queries           | [string]  | Queries that target this environment.                                                                                                                                                                                                                                                                                              |
| feature_flag_environments | is_production                 | boolean   | Indicates whether the environment is production.                                                                                                                                                                                                                                                                                   |
| feature_flag_environments | observe_full_evaluation_data  | boolean   | Indicates whether feature flag evaluation events include original targeting identifiers and full evaluation context.                                                                                                                                                                                                               |
| feature_flag_environments | override_allocation_key       | string    | A system-generated allocation key, in the format `allocation-override-<hash>`, that SDKs report in flag evaluation results and exposure events when the environment's override variant is served. It has no corresponding allocation ID and cannot be used with the allocation endpoints.                                          |
| feature_flag_environments | override_variant_id           | string    | The ID of the override variant for this environment.                                                                                                                                                                                                                                                                               |
| feature_flag_environments | pending_suggestion_id         | string    | Pending suggestion identifier, if approval is required.                                                                                                                                                                                                                                                                            |
| feature_flag_environments | require_feature_flag_approval | boolean   | Indicates whether feature flag changes require approval in this environment.                                                                                                                                                                                                                                                       |
| feature_flag_environments | status [*required*]           | enum      | The status of a feature flag in an environment. Allowed enum values: `ENABLED`, `DISABLED`.                                                                                                                                                                                                                                        |
| attributes                | is_favorite                   | boolean   | Indicates whether the current user has marked the feature flag as a favorite.                                                                                                                                                                                                                                                      |
| attributes                | json_schema                   | string    | JSON schema for validation when value_type is JSON.                                                                                                                                                                                                                                                                                |
| attributes                | key [*required*]              | string    | The unique key of the feature flag.                                                                                                                                                                                                                                                                                                |
| attributes                | last_updated_by               | uuid      | The ID of the user who last updated the feature flag.                                                                                                                                                                                                                                                                              |
| attributes                | name [*required*]             | string    | The name of the feature flag.                                                                                                                                                                                                                                                                                                      |
| attributes                | require_approval              | boolean   | Indicates whether this feature flag requires approval for changes.                                                                                                                                                                                                                                                                 |
| attributes                | staleness_details             | object    | The feature flag's current staleness state and suggested actions.                                                                                                                                                                                                                                                                  |
| staleness_details         | code_references               | [object]  | Repositories and files where the flag is referenced in source code.                                                                                                                                                                                                                                                                |
| code_references           | files                         | [string]  | Paths of files that reference the feature flag in this repository.                                                                                                                                                                                                                                                                 |
| code_references           | repo_url                      | string    | The URL of the source code repository, when available.                                                                                                                                                                                                                                                                             |
| code_references           | scm_repository_id             | string    | The identifier of the source code repository.                                                                                                                                                                                                                                                                                      |
| staleness_details         | dismissed_by                  | string    | The ID of the user who dismissed the staleness recommendation.                                                                                                                                                                                                                                                                     |
| staleness_details         | id                            | string    | The ID of the feature flag whose staleness state is returned.                                                                                                                                                                                                                                                                      |
| staleness_details         | recommended_actions           | [object]  | Suggested actions for the flag. The first action is the primary recommendation.                                                                                                                                                                                                                                                    |
| recommended_actions       | action                        | string    | The action to consider. Values include `remove_from_code`, `archive_flag`, `mark_as_permanent`, `snooze`, and `check_sdk_config`.                                                                                                                                                                                                  |
| recommended_actions       | description                   | string    | An explanation of the suggested action.                                                                                                                                                                                                                                                                                            |
| staleness_details         | skip_state_check_until        | date-time | Time until which staleness checks are paused for the flag.                                                                                                                                                                                                                                                                         |
| staleness_details         | stale_reason                  | string    | Why the flag is stale or has a manually selected state. Values include `FULLY_ROLLED_OUT`, `NO_EVALUATIONS`, `NO_ACTIVITY`, and `USER_SET`.                                                                                                                                                                                        |
| staleness_details         | staleness_status              | string    | The current state, such as `ACTIVE`, `STALE`, or `PERMANENT`.                                                                                                                                                                                                                                                                      |
| attributes                | staleness_status              | string    | Indicates the whether a feature flag is stale or not.                                                                                                                                                                                                                                                                              |
| attributes                | staleness_status_override     | enum      | An explicit staleness status override. Omitted when no override is set. Allowed enum values: `STALE`, `PERMANENT`.                                                                                                                                                                                                                 |
| attributes                | tags                          | [string]  | Tags associated with the feature flag.                                                                                                                                                                                                                                                                                             |
| attributes                | updated_at                    | date-time | The timestamp when the feature flag was last updated.                                                                                                                                                                                                                                                                              |
| attributes                | value_type [*required*]       | enum      | The type of values for the feature flag variants. Allowed enum values: `BOOLEAN`, `INTEGER`, `NUMERIC`, `STRING`, `JSON`.                                                                                                                                                                                                          |
| attributes                | variants [*required*]         | [object]  | The variants of the feature flag.                                                                                                                                                                                                                                                                                                  |
| variants                  | created_at                    | date-time | The timestamp when the variant was created.                                                                                                                                                                                                                                                                                        |
| variants                  | id [*required*]               | uuid      | The unique identifier of the variant.                                                                                                                                                                                                                                                                                              |
| variants                  | key [*required*]              | string    | The unique key of the variant.                                                                                                                                                                                                                                                                                                     |
| variants                  | name [*required*]             | string    | The name of the variant.                                                                                                                                                                                                                                                                                                           |
| variants                  | updated_at                    | date-time | The timestamp when the variant was last updated.                                                                                                                                                                                                                                                                                   |
| variants                  | value [*required*]            | string    | The value of the variant as a string.                                                                                                                                                                                                                                                                                              |
| data                      | id [*required*]               | uuid      | The unique identifier of the feature flag.                                                                                                                                                                                                                                                                                         |
| data                      | type [*required*]             | enum      | The resource type. Allowed enum values: `feature-flags`.                                                                                                                                                                                                                                                                           |
{% /tab %}

{% tab label="Example" %}
```json
{
  "data": {
    "attributes": {
      "archived_at": "2023-01-01T00:00:00Z",
      "created_at": "2023-01-01T00:00:00Z",
      "created_by": "550e8400-e29b-41d4-a716-446655440010",
      "description": "This is an example feature flag for demonstration",
      "distribution_channel": "ALL",
      "feature_flag_environments": [
        {
          "allocations": {},
          "default_allocation_key": "allocation-default-123abc",
          "default_variant_id": "550e8400-e29b-41d4-a716-446655440002",
          "environment_id": "550e8400-e29b-41d4-a716-446655440001",
          "environment_name": "env-search-term",
          "environment_queries": [
            "test-feature-flag",
            "env-search-term"
          ],
          "is_production": false,
          "observe_full_evaluation_data": false,
          "override_allocation_key": "allocation-override-123abc",
          "override_variant_id": "550e8400-e29b-41d4-a716-446655440003",
          "pending_suggestion_id": "550e8400-e29b-41d4-a716-446655440099",
          "require_feature_flag_approval": false,
          "status": "ENABLED"
        }
      ],
      "is_favorite": false,
      "json_schema": "{\"type\": \"object\", \"properties\": {\"enabled\": {\"type\": \"boolean\"}}}",
      "key": "feature-flag-abc123",
      "last_updated_by": "550e8400-e29b-41d4-a716-446655440010",
      "name": "Feature Flag ABC123",
      "require_approval": false,
      "staleness_details": {
        "code_references": [
          {
            "files": [
              "src/feature_flags.ts"
            ],
            "repo_url": "https://github.com/example/application",
            "scm_repository_id": "repository-1"
          }
        ],
        "dismissed_by": "550e8400-e29b-41d4-a716-446655440010",
        "id": "550e8400-e29b-41d4-a716-446655440000",
        "recommended_actions": [
          {
            "action": "archive_flag",
            "description": "Archive the feature flag."
          }
        ],
        "skip_state_check_until": "2026-09-30T12:00:00Z",
        "stale_reason": "NO_EVALUATIONS",
        "staleness_status": "ACTIVE"
      },
      "staleness_status": "ACTIVE",
      "staleness_status_override": "PERMANENT",
      "tags": [
        []
      ],
      "updated_at": "2023-01-01T00:00:00Z",
      "value_type": "BOOLEAN",
      "variants": [
        {
          "created_at": "2023-01-01T00:00:00Z",
          "id": "550e8400-e29b-41d4-a716-446655440002",
          "key": "variant-abc123",
          "name": "Variant ABC123",
          "updated_at": "2023-01-01T00:00:00Z",
          "value": "true"
        }
      ]
    },
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "type": "feature-flags"
  }
}
```
{% /tab %}
{% /tabs %}
{% /tab %}

{% tab label="400" %}
Bad Request

{% tabs %}
{% tab label="Model" %}
API error response.

| Field               | Type     | Description       |
| ------------------- | -------- | ----------------- |
| errors [*required*] | [string] | A list of errors. |
{% /tab %}

{% tab label="Example" %}
```json
{
  "errors": [
    "Bad Request"
  ]
}
```
{% /tab %}
{% /tabs %}
{% /tab %}

{% tab label="403" %}
Forbidden

{% tabs %}
{% tab label="Model" %}
API error response.

| Field               | Type     | Description       |
| ------------------- | -------- | ----------------- |
| errors [*required*] | [string] | A list of errors. |
{% /tab %}

{% tab label="Example" %}
```json
{
  "errors": [
    "Bad Request"
  ]
}
```
{% /tab %}
{% /tabs %}
{% /tab %}

{% tab label="404" %}
Not Found

{% tabs %}
{% tab label="Model" %}
API error response.

| Field               | Type     | Description       |
| ------------------- | -------- | ----------------- |
| errors [*required*] | [string] | A list of errors. |
{% /tab %}

{% tab label="Example" %}
```json
{
  "errors": [
    "Bad Request"
  ]
}
```
{% /tab %}
{% /tabs %}
{% /tab %}

{% tab label="429" %}
Too many requests

{% tabs %}
{% tab label="Model" %}
API error response.

| Field               | Type     | Description       |
| ------------------- | -------- | ----------------- |
| errors [*required*] | [string] | A list of errors. |
{% /tab %}

{% tab label="Example" %}
```json
{
  "errors": [
    "Bad Request"
  ]
}
```
{% /tab %}
{% /tabs %}
{% /tab %}
{% /tabs %}

### Code Example

{% tabs %}
{% tab label="Curl" %}
```bash
# Path parameters
export feature_flag_id="550e8400-e29b-41d4-a716-446655440000"

# Set your Datadog site and credentials
export DD_SITE="datadoghq.com" # Or us3.datadoghq.com, us5.datadoghq.com, datadoghq.eu, ap1.datadoghq.com, ap2.datadoghq.com, uk1.datadoghq.com, ddog-gov.com, us2.ddog-gov.com
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"

curl -X PUT "https://api.${DD_SITE}/api/v2/feature-flags/${feature_flag_id}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
  "data": {
    "type": "feature-flags",
    "attributes": {
      "description": "Updated description for the feature flag",
      "name": "Updated Test Feature Flag Example-Feature-Flag"
    }
  }
}
EOF
```
{% /tab %}

{% tab label="Go" %}
```go
// Update a feature flag returns "OK" response

package main

import (
	"context"
	"encoding/json"
	"fmt"
	"os"

	"github.com/DataDog/datadog-api-client-go/v2/api/datadog"
	"github.com/DataDog/datadog-api-client-go/v2/api/datadogV2"
	"github.com/google/uuid"
)

func main() {
	// there is a valid "feature_flag" in the system
	FeatureFlagDataID := uuid.MustParse(os.Getenv("FEATURE_FLAG_DATA_ID"))

	body := datadogV2.UpdateFeatureFlagRequest{
		Data: datadogV2.UpdateFeatureFlagData{
			Type: datadogV2.UPDATEFEATUREFLAGDATATYPE_FEATURE_FLAGS,
			Attributes: datadogV2.UpdateFeatureFlagAttributes{
				Description: datadog.PtrString("Updated description for the feature flag"),
				Name:        datadog.PtrString("Updated Test Feature Flag Example-Feature-Flag"),
			},
		},
	}
	ctx := datadog.NewDefaultContext(context.Background())
	ctx = context.WithValue(ctx, datadog.ContextAccessToken, os.Getenv("DD_BEARER_TOKEN"))
	configuration := datadog.NewConfiguration()
	apiClient := datadog.NewAPIClient(configuration)
	api := datadogV2.NewFeatureFlagsApi(apiClient)
	resp, r, err := api.UpdateFeatureFlag(ctx, FeatureFlagDataID, body)

	if err != nil {
		fmt.Fprintf(os.Stderr, "Error when calling `FeatureFlagsApi.UpdateFeatureFlag`: %v\n", err)
		fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
	}

	responseContent, _ := json.MarshalIndent(resp, "", "  ")
	fmt.Fprintf(os.Stdout, "Response from `FeatureFlagsApi.UpdateFeatureFlag`:\n%s\n", responseContent)
}
```

#### Instructions

First [install the library and its dependencies](https://docs.datadoghq.com/api/latest.md?code-lang=go) and then save the example to `main.go` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"
```
{% /tab %}

{% tab label="Java" %}
```java
// Update a feature flag returns "OK" response

import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.FeatureFlagsApi;
import com.datadog.api.client.v2.model.FeatureFlagResponse;
import com.datadog.api.client.v2.model.UpdateFeatureFlagAttributes;
import com.datadog.api.client.v2.model.UpdateFeatureFlagData;
import com.datadog.api.client.v2.model.UpdateFeatureFlagDataType;
import com.datadog.api.client.v2.model.UpdateFeatureFlagRequest;
import java.util.UUID;

public class Example {
  public static void main(String[] args) {
    ApiClient defaultClient = ApiClient.getDefaultApiClient();
    defaultClient.setAccessToken(System.getenv("DD_BEARER_TOKEN"));
    FeatureFlagsApi apiInstance = new FeatureFlagsApi(defaultClient);

    // there is a valid "feature_flag" in the system
    UUID FEATURE_FLAG_DATA_ID = null;
    try {
      FEATURE_FLAG_DATA_ID = UUID.fromString(System.getenv("FEATURE_FLAG_DATA_ID"));
    } catch (IllegalArgumentException e) {
      System.err.println("Error parsing UUID: " + e.getMessage());
    }

    UpdateFeatureFlagRequest body =
        new UpdateFeatureFlagRequest()
            .data(
                new UpdateFeatureFlagData()
                    .type(UpdateFeatureFlagDataType.FEATURE_FLAGS)
                    .attributes(
                        new UpdateFeatureFlagAttributes()
                            .description("Updated description for the feature flag")
                            .name("Updated Test Feature Flag Example-Feature-Flag")));

    try {
      FeatureFlagResponse result = apiInstance.updateFeatureFlag(FEATURE_FLAG_DATA_ID, body);
      System.out.println(result);
    } catch (ApiException e) {
      System.err.println("Exception when calling FeatureFlagsApi#updateFeatureFlag");
      System.err.println("Status code: " + e.getCode());
      System.err.println("Reason: " + e.getResponseBody());
      System.err.println("Response headers: " + e.getResponseHeaders());
      e.printStackTrace();
    }
  }
}
```

#### Instructions

First [install the library and its dependencies](https://docs.datadoghq.com/api/latest.md?code-lang=java) and then save the example to `Example.java` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"
```
{% /tab %}

{% tab label="Python" %}
```python
"""
Update a feature flag returns "OK" response
"""

from os import environ
from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.feature_flags_api import FeatureFlagsApi
from datadog_api_client.v2.model.update_feature_flag_attributes import UpdateFeatureFlagAttributes
from datadog_api_client.v2.model.update_feature_flag_data import UpdateFeatureFlagData
from datadog_api_client.v2.model.update_feature_flag_data_type import UpdateFeatureFlagDataType
from datadog_api_client.v2.model.update_feature_flag_request import UpdateFeatureFlagRequest

# there is a valid "feature_flag" in the system
FEATURE_FLAG_DATA_ID = environ["FEATURE_FLAG_DATA_ID"]

body = UpdateFeatureFlagRequest(
    data=UpdateFeatureFlagData(
        type=UpdateFeatureFlagDataType.FEATURE_FLAGS,
        attributes=UpdateFeatureFlagAttributes(
            description="Updated description for the feature flag",
            name="Updated Test Feature Flag Example-Feature-Flag",
        ),
    ),
)

configuration = Configuration()
configuration.access_token = environ["DD_BEARER_TOKEN"]
with ApiClient(configuration) as api_client:
    api_instance = FeatureFlagsApi(api_client)
    response = api_instance.update_feature_flag(feature_flag_id=FEATURE_FLAG_DATA_ID, body=body)

    print(response)
```

#### Instructions

First [install the library and its dependencies](https://docs.datadoghq.com/api/latest.md?code-lang=python) and then save the example to `example.py` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"
```
{% /tab %}

{% tab label="Ruby" %}
```ruby
# Update a feature flag returns "OK" response

require "datadog_api_client"
DatadogAPIClient.configure do |config|
  config.access_token = ENV["DD_BEARER_TOKEN"]
end
api_instance = DatadogAPIClient::V2::FeatureFlagsAPI.new

# there is a valid "feature_flag" in the system
FEATURE_FLAG_DATA_ID = ENV["FEATURE_FLAG_DATA_ID"]

body = DatadogAPIClient::V2::UpdateFeatureFlagRequest.new({
  data: DatadogAPIClient::V2::UpdateFeatureFlagData.new({
    type: DatadogAPIClient::V2::UpdateFeatureFlagDataType::FEATURE_FLAGS,
    attributes: DatadogAPIClient::V2::UpdateFeatureFlagAttributes.new({
      description: "Updated description for the feature flag",
      name: "Updated Test Feature Flag Example-Feature-Flag",
    }),
  }),
})
p api_instance.update_feature_flag(FEATURE_FLAG_DATA_ID, body)
```

#### Instructions

First [install the library and its dependencies](https://docs.datadoghq.com/api/latest.md?code-lang=ruby) and then save the example to `example.rb` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" ruby "example.rb"
```
{% /tab %}

{% tab label="Rust" %}
```rust
// Update a feature flag returns "OK" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV2::api_feature_flags::FeatureFlagsAPI;
use datadog_api_client::datadogV2::model::UpdateFeatureFlagAttributes;
use datadog_api_client::datadogV2::model::UpdateFeatureFlagData;
use datadog_api_client::datadogV2::model::UpdateFeatureFlagDataType;
use datadog_api_client::datadogV2::model::UpdateFeatureFlagRequest;

#[tokio::main]
async fn main() {
    // there is a valid "feature_flag" in the system
    let feature_flag_data_id =
        uuid::Uuid::parse_str(&std::env::var("FEATURE_FLAG_DATA_ID").unwrap())
            .expect("Invalid UUID");
    let body = UpdateFeatureFlagRequest::new(UpdateFeatureFlagData::new(
        UpdateFeatureFlagAttributes::new()
            .description("Updated description for the feature flag".to_string())
            .name("Updated Test Feature Flag Example-Feature-Flag".to_string()),
        UpdateFeatureFlagDataType::FEATURE_FLAGS,
    ));
    let configuration = datadog::Configuration::new();
    let api = FeatureFlagsAPI::with_config(configuration);
    let resp = api
        .update_feature_flag(feature_flag_data_id.clone(), body)
        .await;
    if let Ok(value) = resp {
        println!("{:#?}", value);
    } else {
        println!("{:#?}", resp.unwrap_err());
    }
}
```

#### Instructions

First [install the library and its dependencies](https://docs.datadoghq.com/api/latest.md?code-lang=rust) and then save the example to `src/main.rs` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo run
```
{% /tab %}

{% tab label="TypeScript" %}
```typescript
/**
 * Update a feature flag returns "OK" response
 */

import { client, v2 } from "@datadog/datadog-api-client";

const configuration = client.createConfiguration({
  authMethods: {
    AuthZ: {
      accessToken: process.env.DD_BEARER_TOKEN as string,
    },
  },
});
const apiInstance = new v2.FeatureFlagsApi(configuration);

// there is a valid "feature_flag" in the system
const FEATURE_FLAG_DATA_ID = process.env.FEATURE_FLAG_DATA_ID as string;

const params: v2.FeatureFlagsApiUpdateFeatureFlagRequest = {
  body: {
    data: {
      type: "feature-flags",
      attributes: {
        description: "Updated description for the feature flag",
        name: "Updated Test Feature Flag Example-Feature-Flag",
      },
    },
  },
  featureFlagId: FEATURE_FLAG_DATA_ID,
};

apiInstance
  .updateFeatureFlag(params)
  .then((data: v2.FeatureFlagResponse) => {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data)
    );
  })
  .catch((error: any) => console.error(error));
```

#### Instructions

First [install the library and its dependencies](https://docs.datadoghq.com/api/latest.md?code-lang=typescript) and then save the example to `example.ts` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" npx tsx "example.ts"
```
{% /tab %}
{% /tabs %}
