For AI agents: A markdown version of this page is available at https://docs.datadoghq.com/api/latest/feature-flags/update-a-variant.md. A documentation index is available at /llms.txt.

Update a variant

PUT https://api.ap1.datadoghq.com/api/v2/feature-flags/{feature_flag_id}/variants/{variant_id}https://api.ap2.datadoghq.com/api/v2/feature-flags/{feature_flag_id}/variants/{variant_id}https://api.datadoghq.eu/api/v2/feature-flags/{feature_flag_id}/variants/{variant_id}https://api.ddog-gov.com/api/v2/feature-flags/{feature_flag_id}/variants/{variant_id}https://api.us2.ddog-gov.com/api/v2/feature-flags/{feature_flag_id}/variants/{variant_id}https://api.uk1.datadoghq.com/api/v2/feature-flags/{feature_flag_id}/variants/{variant_id}https://api.datadoghq.com/api/v2/feature-flags/{feature_flag_id}/variants/{variant_id}https://api.us3.datadoghq.com/api/v2/feature-flags/{feature_flag_id}/variants/{variant_id}https://api.us5.datadoghq.com/api/v2/feature-flags/{feature_flag_id}/variants/{variant_id}

Overview

Updates the name and value of an existing variant on a feature flag.

When backend approvals are enabled and the flag requires approval, this endpoint creates and returns a FlagSuggestion with 201 Created instead of applying the change immediately. Use the returned suggestion id to approve or reject the change. If a pending suggestion already exists for this flag’s variant property, the endpoint returns 409 Conflict.

This endpoint requires the feature_flag_config_write permission.

Arguments

Path Parameters

Name

Type

Description

feature_flag_id [required]

string

The ID of the feature flag.

variant_id [required]

string

The ID of the variant.

Request

Body Data (required)

Expand All

Field

Type

Description

name

string

The display name of the variant.

value

string

The value of the variant as a string.

{
  "name": "Variant ABC123 Updated",
  "value": "new_value"
}

Response

OK

A variant of a feature flag.

Expand All

Field

Type

Description

created_at

date-time

The timestamp when the variant was created.

id [required]

uuid

The unique identifier of the variant.

key [required]

string

The unique key of the variant.

name [required]

string

The name of the variant.

updated_at

date-time

The timestamp when the variant was last updated.

value [required]

string

The value of the variant as a string.

{
  "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"
}

Bad Request

API error response.

Expand All

Field

Type

Description

errors [required]

[string]

A list of errors.

{
  "errors": [
    "Bad Request"
  ]
}

Forbidden

API error response.

Expand All

Field

Type

Description

errors [required]

[string]

A list of errors.

{
  "errors": [
    "Bad Request"
  ]
}

Not Found

API error response.

Expand All

Field

Type

Description

errors [required]

[string]

A list of errors.

{
  "errors": [
    "Bad Request"
  ]
}

Conflict - A pending suggestion already exists for this property.

API error response.

Expand All

Field

Type

Description

errors [required]

[string]

A list of errors.

{
  "errors": [
    "Bad Request"
  ]
}

Too many requests

API error response.

Expand All

Field

Type

Description

errors [required]

[string]

A list of errors.

{
  "errors": [
    "Bad Request"
  ]
}

Code Example

                  ## default
# 

# Path parameters
export feature_flag_id="550e8400-e29b-41d4-a716-446655440000"
export variant_id="550e8400-e29b-41d4-a716-446655440002"
# Curl command
curl -X PUT "https://api.ap1.datadoghq.com"https://api.ap2.datadoghq.com"https://api.datadoghq.eu"https://api.ddog-gov.com"https://api.us2.ddog-gov.com"https://api.uk1.datadoghq.com"https://api.datadoghq.com"https://api.us3.datadoghq.com"https://api.us5.datadoghq.com/api/v2/feature-flags/${feature_flag_id}/variants/${variant_id}" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -H "DD-API-KEY: ${DD_API_KEY}" \ -H "DD-APPLICATION-KEY: ${DD_APP_KEY}" \ -d @- << EOF { "data": { "attributes": { "name": "Dark Theme Updated", "value": "dark_v2" }, "id": "550e8400-e29b-41d4-a716-446655440002", "type": "variants" } } EOF
"""
Update a variant returns "OK" response
"""

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_variant_request import UpdateVariantRequest
from uuid import UUID

body = UpdateVariantRequest(
    name="Variant ABC123 Updated",
    value="new_value",
)

configuration = Configuration()
with ApiClient(configuration) as api_client:
    api_instance = FeatureFlagsApi(api_client)
    response = api_instance.update_variant_for_feature_flag(
        feature_flag_id=UUID("550e8400-e29b-41d4-a716-446655440000"),
        variant_id=UUID("550e8400-e29b-41d4-a716-446655440002"),
        body=body,
    )

    print(response)

Instructions

First install the library and its dependencies and then save the example to example.py and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" python3 "example.py"
# Update a variant returns "OK" response

require "datadog_api_client"
api_instance = DatadogAPIClient::V2::FeatureFlagsAPI.new

body = DatadogAPIClient::V2::UpdateVariantRequest.new({
  name: "Variant ABC123 Updated",
  value: "new_value",
})
p api_instance.update_variant_for_feature_flag("550e8400-e29b-41d4-a716-446655440000", "550e8400-e29b-41d4-a716-446655440002", body)

Instructions

First install the library and its dependencies and then save the example to example.rb and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" rb "example.rb"
// Update a variant 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() {
	body := datadogV2.UpdateVariantRequest{
		Name:  datadog.PtrString("Variant ABC123 Updated"),
		Value: datadog.PtrString("new_value"),
	}
	ctx := datadog.NewDefaultContext(context.Background())
	configuration := datadog.NewConfiguration()
	apiClient := datadog.NewAPIClient(configuration)
	api := datadogV2.NewFeatureFlagsApi(apiClient)
	resp, r, err := api.UpdateVariantForFeatureFlag(ctx, uuid.MustParse("550e8400-e29b-41d4-a716-446655440000"), uuid.MustParse("550e8400-e29b-41d4-a716-446655440002"), body)

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

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

Instructions

First install the library and its dependencies and then save the example to main.go and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" go run "main.go"
// Update a variant 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.UpdateVariantRequest;
import com.datadog.api.client.v2.model.Variant;
import java.util.UUID;

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

    UpdateVariantRequest body =
        new UpdateVariantRequest().name("Variant ABC123 Updated").value("new_value");

    try {
      Variant result =
          apiInstance.updateVariantForFeatureFlag(
              UUID.fromString("550e8400-e29b-41d4-a716-446655440000"),
              UUID.fromString("550e8400-e29b-41d4-a716-446655440002"),
              body);
      System.out.println(result);
    } catch (ApiException e) {
      System.err.println("Exception when calling FeatureFlagsApi#updateVariantForFeatureFlag");
      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 and then save the example to Example.java and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" java "Example.java"
// Update a variant returns "OK" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV2::api_feature_flags::FeatureFlagsAPI;
use datadog_api_client::datadogV2::model::UpdateVariantRequest;
use uuid::Uuid;

#[tokio::main]
async fn main() {
    let body = UpdateVariantRequest::new()
        .name("Variant ABC123 Updated".to_string())
        .value("new_value".to_string());
    let configuration = datadog::Configuration::new();
    let api = FeatureFlagsAPI::with_config(configuration);
    let resp = api
        .update_variant_for_feature_flag(
            Uuid::parse_str("550e8400-e29b-41d4-a716-446655440000").expect("invalid UUID"),
            Uuid::parse_str("550e8400-e29b-41d4-a716-446655440002").expect("invalid UUID"),
            body,
        )
        .await;
    if let Ok(value) = resp {
        println!("{:#?}", value);
    } else {
        println!("{:#?}", resp.unwrap_err());
    }
}

Instructions

First install the library and its dependencies and then save the example to src/main.rs and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo run
/**
 * Update a variant returns "OK" response
 */

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

const configuration = client.createConfiguration();
const apiInstance = new v2.FeatureFlagsApi(configuration);

const params: v2.FeatureFlagsApiUpdateVariantForFeatureFlagRequest = {
  body: {
    name: "Variant ABC123 Updated",
    value: "new_value",
  },
  featureFlagId: "550e8400-e29b-41d4-a716-446655440000",
  variantId: "550e8400-e29b-41d4-a716-446655440002",
};

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

Instructions

First install the library and its dependencies and then save the example to example.ts and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" tsc "example.ts"