Create experiment
Create an experiment.
To run this experiment, you'll need to create an iteration and then update the experiment with the startIteration instruction.
Experiment types
Use the type field to specify the experiment type: experiment (default), mab (multi-armed bandit), or holdout.
For multi-armed bandit experiments, set reallocationFrequencyMillis on the iteration to control how often traffic is reallocated across variations.
Results analysis
Use the methodology field to specify the results analysis approach: bayesian (default) or frequentist.
Use the dataSource field to specify the source of metric data: launchdarkly (default), snowflake, or databricks.
Use the analysisConfig field to customize analysis settings such as the Bayesian threshold, significance threshold, or multiple comparison correction method.
To learn more, read Creating experiments.
Authorization
ApiKey read, writeIn: header
Scope: read, write
Path Parameters
The project key
stringThe environment key
stringRequest Body
application/json
The experiment name
The experiment description
The ID of the member who maintains this experiment
The experiment key
Details on the construction of the initial iteration
The ID of the holdout
Tags for the experiment
The results analysis approach.
Value in
- "bayesian"
- "frequentist"
- "export_only"
Details of the Analysis Configuration for this experiment
The source of metric data in order to analyze results. Defaults to "launchdarkly" when not provided.
Value in
- "launchdarkly"
- "snowflake"
The type of experiment.
Value in
- "experiment"
- "mab"
- "holdout"
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/api/v2/projects/string/environments/string/experiments" \ -H "Content-Type: application/json" \ -d '{ "name": "Example experiment", "key": "experiment-key-123abc", "iteration": { "hypothesis": "Example hypothesis, the new button placement will increase conversion", "metrics": [ { "key": "metric-key-123abc" } ], "treatments": [ { "name": "Treatment 1", "baseline": true, "allocationPercent": "10", "parameters": [ { "flagKey": "example-flag-for-experiment", "variationId": "e432f62b-55f6-49dd-a02f-eb24acf39d05" } ] } ], "flags": "{\\"example-flag-key\\": { \\"ruleId\\": \\"e432f62b-55f6-49dd-a02f-eb24acf39d05\\", \\"flagConfigVersion\\": 12, \\"notInExperimentVariationId\\": \\"e432f62b-55f6-49dd-a02f-eb24acf39d05\\" }}" } }'{ "_id": "12ab3c45de678910fgh12345", "key": "experiment-key-123abc", "name": "Example experiment", "description": "An example experiment, used in testing", "_maintainerId": "12ab3c45de678910fgh12345", "_creationDate": "1654104600000", "environmentKey": "string", "methodology": "bayesian", "dataSource": "snowflake", "archivedDate": "1654104600000", "tags": [ "experiment", "feature" ], "_links": { "parent": { "href": "/api/v2/projects/my-project/environments/my-environment", "type": "application/json" }, "self": { "href": "/api/v2/projects/my-project/environments/my-environment/experiments/my-experiment", "type": "application/json" } }, "holdoutId": "f3b74309-d581-44e1-8a2b-bb2933b4fe40", "currentIteration": { "_id": "12ab3c45de678910fgh12345", "hypothesis": "The new button placement will increase conversion", "status": "running", "createdAt": "1654104600000", "startedAt": "1655314200000", "endedAt": "1656610200000", "winningTreatmentId": "122c9f3e-da26-4321-ba68-e0fc02eced58", "winningReason": "We ran this iteration for two weeks and the winning variation was clear", "canReshuffleTraffic": true, "flags": { "property1": { "targetingRule": "fallthrough", "targetingRuleDescription": "Customers who live in Canada", "targetingRuleClauses": [ null ], "flagConfigVersion": 12, "notInExperimentVariationId": "e432f62b-55f6-49dd-a02f-eb24acf39d05", "_links": { "self": { "href": "/api/v2/flags/my-project/my-flag", "type": "application/json" } } }, "property2": { "targetingRule": "fallthrough", "targetingRuleDescription": "Customers who live in Canada", "targetingRuleClauses": [ null ], "flagConfigVersion": 12, "notInExperimentVariationId": "e432f62b-55f6-49dd-a02f-eb24acf39d05", "_links": { "self": { "href": "/api/v2/flags/my-project/my-flag", "type": "application/json" } } } }, "reallocationFrequencyMillis": 3600000, "version": 0, "primaryMetric": { "key": "metric-key-123abc", "_versionId": "string", "name": "My metric", "kind": "custom", "isNumeric": true, "eventKey": "event-key-123abc", "_links": { "self": { "href": "/api/v2/metrics/my-project/my-metric", "type": "application/json" } }, "isGroup": true, "metrics": [ { "key": "metric-key-123abc", "_versionId": "version-id-123abc", "name": "Example metric", "kind": "custom", "isNumeric": true, "unitAggregationType": "sum", "analysisType": "mean", "eventKey": "event-key-123abc", "analysisUnit": "string", "_links": { "self": { "href": "/api/v2/metrics/my-project/my-metric", "type": "application/json" } }, "nameInGroup": "Step 1", "randomizationUnits": [ "user" ], "analysisUnits": [ "user" ] } ], "analysisType": "mean", "analysisUnit": "user" }, "primarySingleMetric": { "key": "metric-key-123abc", "_versionId": "version-id-123abc", "name": "Example metric", "kind": "custom", "isNumeric": true, "unitAggregationType": "sum", "analysisType": "mean", "eventKey": "event-key-123abc", "analysisUnit": "string", "_links": { "self": { "href": "/api/v2/metrics/my-project/my-metric", "type": "application/json" } } }, "primaryFunnel": { "key": "metric-group-key-123abc", "name": "My metric group", "kind": "funnel", "_links": { "parent": { "href": "/api/v2/projects/my-project", "type": "application/json" }, "self": { "href": "/api/v2/projects/my-project/metric-groups/my-metric-group", "type": "application/json" } }, "metrics": [ { "key": "metric-key-123abc", "_versionId": "version-id-123abc", "name": "Example metric", "kind": "custom", "isNumeric": true, "unitAggregationType": "sum", "analysisType": "mean", "eventKey": "event-key-123abc", "analysisUnit": "string", "_links": { "self": { "href": "/api/v2/metrics/my-project/my-metric", "type": "application/json" } }, "nameInGroup": "Step 1", "randomizationUnits": [ "user" ], "analysisUnits": [ "user" ] } ] }, "randomizationUnit": "user", "attributes": [ "string" ], "treatments": [ { "_id": "122c9f3e-da26-4321-ba68-e0fc02eced58", "name": "Treatment 1", "allocationPercent": "10", "baseline": true, "parameters": [ { "variationId": "string", "flagKey": "string" } ] } ], "secondaryMetrics": [ { "key": "metric-key-123abc", "_versionId": "version-id-123abc", "name": "Example metric", "kind": "custom", "isNumeric": true, "unitAggregationType": "sum", "analysisType": "mean", "eventKey": "event-key-123abc", "analysisUnit": "string", "_links": { "self": { "href": "/api/v2/metrics/my-project/my-metric", "type": "application/json" } } } ], "metrics": [ { "key": "metric-key-123abc", "_versionId": "string", "name": "My metric", "kind": "custom", "isNumeric": true, "eventKey": "event-key-123abc", "_links": { "self": { "href": "/api/v2/metrics/my-project/my-metric", "type": "application/json" } }, "isGroup": true, "metrics": [ { "key": "metric-key-123abc", "_versionId": "version-id-123abc", "name": "Example metric", "kind": "custom", "isNumeric": true, "unitAggregationType": "sum", "analysisType": "mean", "eventKey": "event-key-123abc", "analysisUnit": "string", "_links": { "self": { "href": "/api/v2/metrics/my-project/my-metric", "type": "application/json" } }, "nameInGroup": "Step 1", "randomizationUnits": [ "user" ], "analysisUnits": [ "user" ] } ], "analysisType": "mean", "analysisUnit": "user" } ], "layerSnapshot": { "key": "checkout-flow", "name": "Checkout Flow", "reservationPercent": 10, "otherReservationPercent": 70 }, "covariateInfo": { "id": "74a49a2b-4834-4246-917e-5d85231d8c2a", "fileName": "covariate.csv", "createdAt": "1654104600000" } }, "type": "experiment", "_access": { "denied": [ { "action": "string", "reason": { "resources": [ "proj/*:env/*;qa_*:/flag/*" ], "notResources": [ "string" ], "actions": [ "*" ], "notActions": [ "string" ], "effect": "allow", "role_name": "string" } } ], "allowed": [ { "action": "string", "reason": { "resources": [ "proj/*:env/*;qa_*:/flag/*" ], "notResources": [ "string" ], "actions": [ "*" ], "notActions": [ "string" ], "effect": "allow", "role_name": "string" } } ] }, "draftIteration": { "_id": "12ab3c45de678910fgh12345", "hypothesis": "The new button placement will increase conversion", "status": "running", "createdAt": "1654104600000", "startedAt": "1655314200000", "endedAt": "1656610200000", "winningTreatmentId": "122c9f3e-da26-4321-ba68-e0fc02eced58", "winningReason": "We ran this iteration for two weeks and the winning variation was clear", "canReshuffleTraffic": true, "flags": { "property1": { "targetingRule": "fallthrough", "targetingRuleDescription": "Customers who live in Canada", "targetingRuleClauses": [ null ], "flagConfigVersion": 12, "notInExperimentVariationId": "e432f62b-55f6-49dd-a02f-eb24acf39d05", "_links": { "self": { "href": "/api/v2/flags/my-project/my-flag", "type": "application/json" } } }, "property2": { "targetingRule": "fallthrough", "targetingRuleDescription": "Customers who live in Canada", "targetingRuleClauses": [ null ], "flagConfigVersion": 12, "notInExperimentVariationId": "e432f62b-55f6-49dd-a02f-eb24acf39d05", "_links": { "self": { "href": "/api/v2/flags/my-project/my-flag", "type": "application/json" } } } }, "reallocationFrequencyMillis": 3600000, "version": 0, "primaryMetric": { "key": "metric-key-123abc", "_versionId": "string", "name": "My metric", "kind": "custom", "isNumeric": true, "eventKey": "event-key-123abc", "_links": { "self": { "href": "/api/v2/metrics/my-project/my-metric", "type": "application/json" } }, "isGroup": true, "metrics": [ { "key": "metric-key-123abc", "_versionId": "version-id-123abc", "name": "Example metric", "kind": "custom", "isNumeric": true, "unitAggregationType": "sum", "analysisType": "mean", "eventKey": "event-key-123abc", "analysisUnit": "string", "_links": { "self": { "href": "/api/v2/metrics/my-project/my-metric", "type": "application/json" } }, "nameInGroup": "Step 1", "randomizationUnits": [ "user" ], "analysisUnits": [ "user" ] } ], "analysisType": "mean", "analysisUnit": "user" }, "primarySingleMetric": { "key": "metric-key-123abc", "_versionId": "version-id-123abc", "name": "Example metric", "kind": "custom", "isNumeric": true, "unitAggregationType": "sum", "analysisType": "mean", "eventKey": "event-key-123abc", "analysisUnit": "string", "_links": { "self": { "href": "/api/v2/metrics/my-project/my-metric", "type": "application/json" } } }, "primaryFunnel": { "key": "metric-group-key-123abc", "name": "My metric group", "kind": "funnel", "_links": { "parent": { "href": "/api/v2/projects/my-project", "type": "application/json" }, "self": { "href": "/api/v2/projects/my-project/metric-groups/my-metric-group", "type": "application/json" } }, "metrics": [ { "key": "metric-key-123abc", "_versionId": "version-id-123abc", "name": "Example metric", "kind": "custom", "isNumeric": true, "unitAggregationType": "sum", "analysisType": "mean", "eventKey": "event-key-123abc", "analysisUnit": "string", "_links": { "self": { "href": "/api/v2/metrics/my-project/my-metric", "type": "application/json" } }, "nameInGroup": "Step 1", "randomizationUnits": [ "user" ], "analysisUnits": [ "user" ] } ] }, "randomizationUnit": "user", "attributes": [ "string" ], "treatments": [ { "_id": "122c9f3e-da26-4321-ba68-e0fc02eced58", "name": "Treatment 1", "allocationPercent": "10", "baseline": true, "parameters": [ { "variationId": "string", "flagKey": "string" } ] } ], "secondaryMetrics": [ { "key": "metric-key-123abc", "_versionId": "version-id-123abc", "name": "Example metric", "kind": "custom", "isNumeric": true, "unitAggregationType": "sum", "analysisType": "mean", "eventKey": "event-key-123abc", "analysisUnit": "string", "_links": { "self": { "href": "/api/v2/metrics/my-project/my-metric", "type": "application/json" } } } ], "metrics": [ { "key": "metric-key-123abc", "_versionId": "string", "name": "My metric", "kind": "custom", "isNumeric": true, "eventKey": "event-key-123abc", "_links": { "self": { "href": "/api/v2/metrics/my-project/my-metric", "type": "application/json" } }, "isGroup": true, "metrics": [ { "key": "metric-key-123abc", "_versionId": "version-id-123abc", "name": "Example metric", "kind": "custom", "isNumeric": true, "unitAggregationType": "sum", "analysisType": "mean", "eventKey": "event-key-123abc", "analysisUnit": "string", "_links": { "self": { "href": "/api/v2/metrics/my-project/my-metric", "type": "application/json" } }, "nameInGroup": "Step 1", "randomizationUnits": [ "user" ], "analysisUnits": [ "user" ] } ], "analysisType": "mean", "analysisUnit": "user" } ], "layerSnapshot": { "key": "checkout-flow", "name": "Checkout Flow", "reservationPercent": 10, "otherReservationPercent": 70 }, "covariateInfo": { "id": "74a49a2b-4834-4246-917e-5d85231d8c2a", "fileName": "covariate.csv", "createdAt": "1654104600000" } }, "previousIterations": [ { "_id": "12ab3c45de678910fgh12345", "hypothesis": "The new button placement will increase conversion", "status": "running", "createdAt": "1654104600000", "startedAt": "1655314200000", "endedAt": "1656610200000", "winningTreatmentId": "122c9f3e-da26-4321-ba68-e0fc02eced58", "winningReason": "We ran this iteration for two weeks and the winning variation was clear", "canReshuffleTraffic": true, "flags": { "property1": { "targetingRule": "fallthrough", "targetingRuleDescription": "Customers who live in Canada", "targetingRuleClauses": [ null ], "flagConfigVersion": 12, "notInExperimentVariationId": "e432f62b-55f6-49dd-a02f-eb24acf39d05", "_links": { "self": { "href": "/api/v2/flags/my-project/my-flag", "type": "application/json" } } }, "property2": { "targetingRule": "fallthrough", "targetingRuleDescription": "Customers who live in Canada", "targetingRuleClauses": [ null ], "flagConfigVersion": 12, "notInExperimentVariationId": "e432f62b-55f6-49dd-a02f-eb24acf39d05", "_links": { "self": { "href": "/api/v2/flags/my-project/my-flag", "type": "application/json" } } } }, "reallocationFrequencyMillis": 3600000, "version": 0, "primaryMetric": { "key": "metric-key-123abc", "_versionId": "string", "name": "My metric", "kind": "custom", "isNumeric": true, "eventKey": "event-key-123abc", "_links": { "self": { "href": "/api/v2/metrics/my-project/my-metric", "type": "application/json" } }, "isGroup": true, "metrics": [ { "key": "metric-key-123abc", "_versionId": "version-id-123abc", "name": "Example metric", "kind": "custom", "isNumeric": true, "unitAggregationType": "sum", "analysisType": "mean", "eventKey": "event-key-123abc", "analysisUnit": "string", "_links": { "self": { "href": "/api/v2/metrics/my-project/my-metric", "type": "application/json" } }, "nameInGroup": "Step 1", "randomizationUnits": [ "user" ], "analysisUnits": [ "user" ] } ], "analysisType": "mean", "analysisUnit": "user" }, "primarySingleMetric": { "key": "metric-key-123abc", "_versionId": "version-id-123abc", "name": "Example metric", "kind": "custom", "isNumeric": true, "unitAggregationType": "sum", "analysisType": "mean", "eventKey": "event-key-123abc", "analysisUnit": "string", "_links": { "self": { "href": "/api/v2/metrics/my-project/my-metric", "type": "application/json" } } }, "primaryFunnel": { "key": "metric-group-key-123abc", "name": "My metric group", "kind": "funnel", "_links": { "parent": { "href": "/api/v2/projects/my-project", "type": "application/json" }, "self": { "href": "/api/v2/projects/my-project/metric-groups/my-metric-group", "type": "application/json" } }, "metrics": [ { "key": "metric-key-123abc", "_versionId": "version-id-123abc", "name": "Example metric", "kind": "custom", "isNumeric": true, "unitAggregationType": "sum", "analysisType": "mean", "eventKey": "event-key-123abc", "analysisUnit": "string", "_links": { "self": { "href": "/api/v2/metrics/my-project/my-metric", "type": "application/json" } }, "nameInGroup": "Step 1", "randomizationUnits": [ "user" ], "analysisUnits": [ "user" ] } ] }, "randomizationUnit": "user", "attributes": [ "string" ], "treatments": [ { "_id": "122c9f3e-da26-4321-ba68-e0fc02eced58", "name": "Treatment 1", "allocationPercent": "10", "baseline": true, "parameters": [ { "variationId": "string", "flagKey": "string" } ] } ], "secondaryMetrics": [ { "key": "metric-key-123abc", "_versionId": "version-id-123abc", "name": "Example metric", "kind": "custom", "isNumeric": true, "unitAggregationType": "sum", "analysisType": "mean", "eventKey": "event-key-123abc", "analysisUnit": "string", "_links": { "self": { "href": "/api/v2/metrics/my-project/my-metric", "type": "application/json" } } } ], "metrics": [ { "key": "metric-key-123abc", "_versionId": "string", "name": "My metric", "kind": "custom", "isNumeric": true, "eventKey": "event-key-123abc", "_links": { "self": { "href": "/api/v2/metrics/my-project/my-metric", "type": "application/json" } }, "isGroup": true, "metrics": [ { "key": "metric-key-123abc", "_versionId": "version-id-123abc", "name": "Example metric", "kind": "custom", "isNumeric": true, "unitAggregationType": "sum", "analysisType": "mean", "eventKey": "event-key-123abc", "analysisUnit": "string", "_links": { "self": { "href": "/api/v2/metrics/my-project/my-metric", "type": "application/json" } }, "nameInGroup": "Step 1", "randomizationUnits": [ "user" ], "analysisUnits": [ "user" ] } ], "analysisType": "mean", "analysisUnit": "user" } ], "layerSnapshot": { "key": "checkout-flow", "name": "Checkout Flow", "reservationPercent": 10, "otherReservationPercent": 70 }, "covariateInfo": { "id": "74a49a2b-4834-4246-917e-5d85231d8c2a", "fileName": "covariate.csv", "createdAt": "1654104600000" } } ], "analysisConfig": { "bayesianThreshold": "string", "significanceThreshold": "string", "testDirection": "string", "multipleComparisonCorrectionMethod": "bonferroni", "multipleComparisonCorrectionScope": "variations", "sequentialTestingEnabled": true }, "mutableFieldsByStatus": { "not_started": { "property1": [ "string" ], "property2": [ "string" ] }, "running": { "property1": [ "string" ], "property2": [ "string" ] }, "stopped": { "property1": [ "string" ], "property2": [ "string" ] } }}Get experiments GET
Get details about all experiments in an environment. ### Filtering experiments LaunchDarkly supports the `filter` query param for filtering, with the following fields: - `flagKey` filters for only experiments that use the flag with the given key. - `metricKey` filters for only experiments that use the metric with the given key. - `status` filters for only experiments with an iteration with the given status. An iteration can have the status `not_started`, `running` or `stopped`. For example, `filter=flagKey:my-flag,status:running,metricKey:page-load-ms` filters for experiments for the given flag key and the given metric key which have a currently running iteration. ### Expanding the experiments response LaunchDarkly supports five fields for expanding the "Get experiments" response. By default, these fields are **not** included in the response. To expand the response, append the `expand` query parameter and add a comma-separated list with any of the following fields: - `previousIterations` includes all iterations prior to the current iteration. By default only the current iteration is included in the response. - `draftIteration` includes the iteration which has not been started yet, if any. - `secondaryMetrics` includes secondary metrics. By default only the primary metric is included in the response. - `treatments` includes all treatment and parameter details. By default treatment data is not included in the response. - `analysisConfig` includes the analysis configuration for the experiment, such as the Bayesian threshold or significance threshold. For example, `expand=draftIteration,treatments` includes the `draftIteration` and `treatments` fields in the response. If fields that you request with the `expand` query parameter are empty, they are not included in the response.
Get experiment GET
Get details about an experiment. ### Expanding the experiment response LaunchDarkly supports five fields for expanding the "Get experiment" response. By default, these fields are **not** included in the response. To expand the response, append the `expand` query parameter and add a comma-separated list with any of the following fields: - `previousIterations` includes all iterations prior to the current iteration. By default only the current iteration is included in the response. - `draftIteration` includes the iteration which has not been started yet, if any. - `secondaryMetrics` includes secondary metrics. By default only the primary metric is included in the response. - `treatments` includes all treatment and parameter details. By default treatment data is not included in the response. - `analysisConfig` includes the analysis configuration for the experiment, such as the Bayesian threshold or significance threshold. For example, `expand=draftIteration,treatments` includes the `draftIteration` and `treatments` fields in the response. If fields that you request with the `expand` query parameter are empty, they are not included in the response.