Conclude an experiment on a winning variant. The experiment moves to DECISION_MADE status, the outcome is recorded in its conclusion, and for a flag-backed experiment the winning variant is rolled out to 100% of the linked feature flag allocation. decision_variant_key must match a variant in the experiment. Only an experiment that is currently running or ready for a decision can be concluded. Concluding is not reversible and is not idempotent: concluding an already-concluded experiment returns 409.
This endpoint requires the product_analytics_experiments_write permission.
OAuth apps require the product_analytics_experiments_write authorization scope to access this endpoint.
A human-readable explanation specific to this occurrence of the error.
meta
object
Non-standard meta-information about the error
source
object
References to the source of the error.
header
string
A string indicating the name of a single request header which caused the error.
parameter
string
A string indicating which URI query parameter caused the error.
pointer
string
A JSON pointer to the value in the request document that caused the error.
status
string
Status code of the response.
title
string
Short human-readable summary of the error.
{"errors":[{"detail":"Missing required attribute in body","meta":{},"source":{"header":"Authorization","parameter":"limit","pointer":"/data/attributes/title"},"status":"400","title":"Bad Request"}]}
Authenticated caller lacks the product_analytics_experiments_write permission, lacks permission to edit this experiment, or lacks contribute permission on the feature flag owning its allocation.
A human-readable explanation specific to this occurrence of the error.
meta
object
Non-standard meta-information about the error
source
object
References to the source of the error.
header
string
A string indicating the name of a single request header which caused the error.
parameter
string
A string indicating which URI query parameter caused the error.
pointer
string
A JSON pointer to the value in the request document that caused the error.
status
string
Status code of the response.
title
string
Short human-readable summary of the error.
{"errors":[{"detail":"Missing required attribute in body","meta":{},"source":{"header":"Authorization","parameter":"limit","pointer":"/data/attributes/title"},"status":"400","title":"Bad Request"}]}
The experiment is not running or ready for a decision, its linked feature flag environment requires an approval for the rollout this would perform, or that flag has a pending suggestion for its allocations.
## default
#
# Path parameters exportexperiment_id="550e8400-e29b-41d4-a716-446655440000" # Use a Personal Access Token or Service Access Token exportDD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
"""
Conclude experiment returns "The experiment was concluded and the winning variant was rolled out to its linked feature
flag allocation." response
"""fromosimportenvironfromdatadog_api_clientimportApiClient,Configurationfromdatadog_api_client.v2.api.experiments_apiimportExperimentsApifromdatadog_api_client.v2.model.experiments_conclude_experiment_v2_requestimport(ExperimentsConcludeExperimentV2Request,)fromdatadog_api_client.v2.model.experiments_conclude_experiment_v2_request_dataimport(ExperimentsConcludeExperimentV2RequestData,)fromdatadog_api_client.v2.model.experiments_conclude_experiment_v2_request_data_attributesimport(ExperimentsConcludeExperimentV2RequestDataAttributes,)fromdatadog_api_client.v2.model.experiments_conclude_experiment_v2_request_data_typeimport(ExperimentsConcludeExperimentV2RequestDataType,)fromuuidimportUUIDbody=ExperimentsConcludeExperimentV2Request(data=ExperimentsConcludeExperimentV2RequestData(attributes=ExperimentsConcludeExperimentV2RequestDataAttributes(decision_variant_key="treatment",),type=ExperimentsConcludeExperimentV2RequestDataType.CONCLUDE_EXPERIMENT_REQUEST,),)configuration=Configuration()configuration.access_token=environ["DD_BEARER_TOKEN"]withApiClient(configuration)asapi_client:api_instance=ExperimentsApi(api_client)api_instance.conclude_experiment(experiment_id=UUID("550e8400-e29b-41d4-a716-446655440000"),body=body)
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com"DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"python3"example.py"
# Conclude experiment returns "The experiment was concluded and the winning variant was rolled out to its linked feature# flag allocation." responserequire"datadog_api_client"DatadogAPIClient.configuredo|config|config.access_token=ENV["DD_BEARER_TOKEN"]endapi_instance=DatadogAPIClient::V2::ExperimentsAPI.newbody=DatadogAPIClient::V2::ExperimentsConcludeExperimentV2Request.new({data:DatadogAPIClient::V2::ExperimentsConcludeExperimentV2RequestData.new({attributes:DatadogAPIClient::V2::ExperimentsConcludeExperimentV2RequestDataAttributes.new({decision_variant_key:"treatment",}),type:DatadogAPIClient::V2::ExperimentsConcludeExperimentV2RequestDataType::CONCLUDE_EXPERIMENT_REQUEST,}),})api_instance.conclude_experiment("550e8400-e29b-41d4-a716-446655440000",body)
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com"DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"rb"example.rb"
// Conclude experiment returns "The experiment was concluded and the winning variant was rolled out to its linked feature// flag allocation." responsepackagemainimport("context""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")funcmain(){body:=datadogV2.ExperimentsConcludeExperimentV2Request{Data:datadogV2.ExperimentsConcludeExperimentV2RequestData{Attributes:datadogV2.ExperimentsConcludeExperimentV2RequestDataAttributes{DecisionVariantKey:"treatment",},Type:datadogV2.EXPERIMENTSCONCLUDEEXPERIMENTV2REQUESTDATATYPE_CONCLUDE_EXPERIMENT_REQUEST,},}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.NewExperimentsApi(apiClient)r,err:=api.ConcludeExperiment(ctx,uuid.MustParse("550e8400-e29b-41d4-a716-446655440000"),body)iferr!=nil{fmt.Fprintf(os.Stderr,"Error when calling `ExperimentsApi.ConcludeExperiment`: %v\n",err)fmt.Fprintf(os.Stderr,"Full HTTP response: %v\n",r)}}
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com"DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"go run"main.go"
// Conclude experiment returns "The experiment was concluded and the winning variant was rolled out// to its linked feature// flag allocation." responseimportcom.datadog.api.client.ApiClient;importcom.datadog.api.client.ApiException;importcom.datadog.api.client.v2.api.ExperimentsApi;importcom.datadog.api.client.v2.model.ExperimentsConcludeExperimentV2Request;importcom.datadog.api.client.v2.model.ExperimentsConcludeExperimentV2RequestData;importcom.datadog.api.client.v2.model.ExperimentsConcludeExperimentV2RequestDataAttributes;importcom.datadog.api.client.v2.model.ExperimentsConcludeExperimentV2RequestDataType;importjava.util.UUID;publicclassExample{publicstaticvoidmain(String[]args){ApiClientdefaultClient=ApiClient.getDefaultApiClient();defaultClient.setAccessToken(System.getenv("DD_BEARER_TOKEN"));ExperimentsApiapiInstance=newExperimentsApi(defaultClient);ExperimentsConcludeExperimentV2Requestbody=newExperimentsConcludeExperimentV2Request().data(newExperimentsConcludeExperimentV2RequestData().attributes(newExperimentsConcludeExperimentV2RequestDataAttributes().decisionVariantKey("treatment")).type(ExperimentsConcludeExperimentV2RequestDataType.CONCLUDE_EXPERIMENT_REQUEST));try{apiInstance.concludeExperiment(UUID.fromString("550e8400-e29b-41d4-a716-446655440000"),body);}catch(ApiExceptione){System.err.println("Exception when calling ExperimentsApi#concludeExperiment");System.err.println("Status code: "+e.getCode());System.err.println("Reason: "+e.getResponseBody());System.err.println("Response headers: "+e.getResponseHeaders());e.printStackTrace();}}}
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com"DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"java"Example.java"
// Conclude experiment returns "The experiment was concluded and the winning
// variant was rolled out to its linked feature flag allocation." response
usedatadog_api_client::datadog;usedatadog_api_client::datadogV2::api_experiments::ExperimentsAPI;usedatadog_api_client::datadogV2::model::ExperimentsConcludeExperimentV2Request;usedatadog_api_client::datadogV2::model::ExperimentsConcludeExperimentV2RequestData;usedatadog_api_client::datadogV2::model::ExperimentsConcludeExperimentV2RequestDataAttributes;usedatadog_api_client::datadogV2::model::ExperimentsConcludeExperimentV2RequestDataType;useuuid::Uuid;#[tokio::main]asyncfnmain(){letbody=ExperimentsConcludeExperimentV2Request::new(ExperimentsConcludeExperimentV2RequestData::new(ExperimentsConcludeExperimentV2RequestDataAttributes::new("treatment".to_string()),ExperimentsConcludeExperimentV2RequestDataType::CONCLUDE_EXPERIMENT_REQUEST,),);letconfiguration=datadog::Configuration::new();letapi=ExperimentsAPI::with_config(configuration);letresp=api.conclude_experiment(Uuid::parse_str("550e8400-e29b-41d4-a716-446655440000").expect("invalid UUID"),body,).await;ifletOk(value)=resp{println!("{:#?}",value);}else{println!("{:#?}",resp.unwrap_err());}}
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
Request a personalized demo
Get Started with Datadog
Ask AI
AI-generated responses may be inaccurate. Verify important info.