All URIs are relative to https://app.launchdarkly.com
| Method | HTTP request | Description |
|---|---|---|
| createExperiment | POST /api/v2/projects/{projectKey}/environments/{environmentKey}/experiments | Create experiment |
| createIteration | POST /api/v2/projects/{projectKey}/environments/{environmentKey}/experiments/{experimentKey}/iterations | Create iteration |
| getExperiment | GET /api/v2/projects/{projectKey}/environments/{environmentKey}/experiments/{experimentKey} | Get experiment |
| getExperimentationSettings | GET /api/v2/projects/{projectKey}/experimentation-settings | Get experimentation settings |
| getExperiments | GET /api/v2/projects/{projectKey}/environments/{environmentKey}/experiments | Get experiments |
| patchExperiment | PATCH /api/v2/projects/{projectKey}/environments/{environmentKey}/experiments/{experimentKey} | Patch experiment |
| putExperimentationSettings | PUT /api/v2/projects/{projectKey}/experimentation-settings | Update experimentation settings |
Experiment createExperiment(projectKey, environmentKey, experimentPost)
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. To learn more, read Creating experiments.
import LaunchDarklyApi from 'launchdarkly-api';
let defaultClient = LaunchDarklyApi.ApiClient.instance;
// Configure API key authorization: ApiKey
let ApiKey = defaultClient.authentications['ApiKey'];
ApiKey.apiKey = 'YOUR API KEY';
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//ApiKey.apiKeyPrefix = 'Token';
let apiInstance = new LaunchDarklyApi.ExperimentsApi();
let projectKey = "projectKey_example"; // String | The project key
let environmentKey = "environmentKey_example"; // String | The environment key
let experimentPost = new LaunchDarklyApi.ExperimentPost(); // ExperimentPost |
apiInstance.createExperiment(projectKey, environmentKey, experimentPost, (error, data, response) => {
if (error) {
console.error(error);
} else {
console.log('API called successfully. Returned data: ' + data);
}
});| Name | Type | Description | Notes |
|---|---|---|---|
| projectKey | String | The project key | |
| environmentKey | String | The environment key | |
| experimentPost | ExperimentPost |
- Content-Type: application/json
- Accept: application/json
IterationRep createIteration(projectKey, environmentKey, experimentKey, iterationInput)
Create iteration
Create an experiment iteration. Experiment iterations let you record experiments in individual blocks of time. Initially, iterations are created with a status of `not_started` and appear in the `draftIteration` field of an experiment. To start or stop an iteration, update the experiment with the `startIteration` or `stopIteration` instruction. To learn more, read Start experiment iterations.
import LaunchDarklyApi from 'launchdarkly-api';
let defaultClient = LaunchDarklyApi.ApiClient.instance;
// Configure API key authorization: ApiKey
let ApiKey = defaultClient.authentications['ApiKey'];
ApiKey.apiKey = 'YOUR API KEY';
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//ApiKey.apiKeyPrefix = 'Token';
let apiInstance = new LaunchDarklyApi.ExperimentsApi();
let projectKey = "projectKey_example"; // String | The project key
let environmentKey = "environmentKey_example"; // String | The environment key
let experimentKey = "experimentKey_example"; // String | The experiment key
let iterationInput = new LaunchDarklyApi.IterationInput(); // IterationInput |
apiInstance.createIteration(projectKey, environmentKey, experimentKey, iterationInput, (error, data, response) => {
if (error) {
console.error(error);
} else {
console.log('API called successfully. Returned data: ' + data);
}
});| Name | Type | Description | Notes |
|---|---|---|---|
| projectKey | String | The project key | |
| environmentKey | String | The environment key | |
| experimentKey | String | The experiment key | |
| iterationInput | IterationInput |
- Content-Type: application/json
- Accept: application/json
Experiment getExperiment(projectKey, environmentKey, experimentKey, opts)
Get experiment
Get details about an experiment. ### Expanding the experiment response LaunchDarkly supports four 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. 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.
import LaunchDarklyApi from 'launchdarkly-api';
let defaultClient = LaunchDarklyApi.ApiClient.instance;
// Configure API key authorization: ApiKey
let ApiKey = defaultClient.authentications['ApiKey'];
ApiKey.apiKey = 'YOUR API KEY';
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//ApiKey.apiKeyPrefix = 'Token';
let apiInstance = new LaunchDarklyApi.ExperimentsApi();
let projectKey = "projectKey_example"; // String | The project key
let environmentKey = "environmentKey_example"; // String | The environment key
let experimentKey = "experimentKey_example"; // String | The experiment key
let opts = {
'expand': "expand_example" // String | A comma-separated list of properties that can reveal additional information in the response. Supported fields are explained above.
};
apiInstance.getExperiment(projectKey, environmentKey, experimentKey, opts, (error, data, response) => {
if (error) {
console.error(error);
} else {
console.log('API called successfully. Returned data: ' + data);
}
});| Name | Type | Description | Notes |
|---|---|---|---|
| projectKey | String | The project key | |
| environmentKey | String | The environment key | |
| experimentKey | String | The experiment key | |
| expand | String | A comma-separated list of properties that can reveal additional information in the response. Supported fields are explained above. | [optional] |
- Content-Type: Not defined
- Accept: application/json
RandomizationSettingsRep getExperimentationSettings(projectKey)
Get experimentation settings
Get current experimentation settings for the given project
import LaunchDarklyApi from 'launchdarkly-api';
let defaultClient = LaunchDarklyApi.ApiClient.instance;
// Configure API key authorization: ApiKey
let ApiKey = defaultClient.authentications['ApiKey'];
ApiKey.apiKey = 'YOUR API KEY';
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//ApiKey.apiKeyPrefix = 'Token';
let apiInstance = new LaunchDarklyApi.ExperimentsApi();
let projectKey = "projectKey_example"; // String | The project key
apiInstance.getExperimentationSettings(projectKey, (error, data, response) => {
if (error) {
console.error(error);
} else {
console.log('API called successfully. Returned data: ' + data);
}
});| Name | Type | Description | Notes |
|---|---|---|---|
| projectKey | String | The project key |
- Content-Type: Not defined
- Accept: application/json
ExperimentCollectionRep getExperiments(projectKey, environmentKey, opts)
Get experiments
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 four 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. 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.
import LaunchDarklyApi from 'launchdarkly-api';
let defaultClient = LaunchDarklyApi.ApiClient.instance;
// Configure API key authorization: ApiKey
let ApiKey = defaultClient.authentications['ApiKey'];
ApiKey.apiKey = 'YOUR API KEY';
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//ApiKey.apiKeyPrefix = 'Token';
let apiInstance = new LaunchDarklyApi.ExperimentsApi();
let projectKey = "projectKey_example"; // String | The project key
let environmentKey = "environmentKey_example"; // String | The environment key
let opts = {
'limit': 789, // Number | The maximum number of experiments to return. Defaults to 20.
'offset': 789, // Number | Where to start in the list. Use this with pagination. For example, an offset of 10 skips the first ten items and then returns the next items in the list, up to the query `limit`.
'filter': "filter_example", // String | A comma-separated list of filters. Each filter is of the form `field:value`. Supported fields are explained above.
'expand': "expand_example", // String | A comma-separated list of properties that can reveal additional information in the response. Supported fields are explained above.
'lifecycleState': "lifecycleState_example" // String | A comma-separated list of experiment archived states. Supports `archived`, `active`, or both. Defaults to `active` experiments.
};
apiInstance.getExperiments(projectKey, environmentKey, opts, (error, data, response) => {
if (error) {
console.error(error);
} else {
console.log('API called successfully. Returned data: ' + data);
}
});| Name | Type | Description | Notes |
|---|---|---|---|
| projectKey | String | The project key | |
| environmentKey | String | The environment key | |
| limit | Number | The maximum number of experiments to return. Defaults to 20. | [optional] |
| offset | Number | Where to start in the list. Use this with pagination. For example, an offset of 10 skips the first ten items and then returns the next items in the list, up to the query `limit`. | [optional] |
| filter | String | A comma-separated list of filters. Each filter is of the form `field:value`. Supported fields are explained above. | [optional] |
| expand | String | A comma-separated list of properties that can reveal additional information in the response. Supported fields are explained above. | [optional] |
| lifecycleState | String | A comma-separated list of experiment archived states. Supports `archived`, `active`, or both. Defaults to `active` experiments. | [optional] |
- Content-Type: Not defined
- Accept: application/json
Experiment patchExperiment(projectKey, environmentKey, experimentKey, experimentPatchInput)
Patch experiment
Update an experiment. Updating an experiment uses the semantic patch format. To make a semantic patch request, you must append `domain-model=launchdarkly.semanticpatch` to your `Content-Type` header. To learn more, read Updates using semantic patch. ### Instructions Semantic patch requests support the following `kind` instructions for updating experiments. #### updateName Updates the experiment name. ##### Parameters - `value`: The new name. Here's an example: ```json { "instructions": [{ "kind": "updateName", "value": "Example updated experiment name" }] } ``` #### updateDescription Updates the experiment description. ##### Parameters - `value`: The new description. Here's an example: ```json { "instructions": [{ "kind": "updateDescription", "value": "Example updated description" }] } ``` #### startIteration Starts a new iteration for this experiment. You must create a new iteration before calling this instruction. An iteration may not be started until it meets the following criteria: * Its associated flag is toggled on and is not archived * Its `randomizationUnit` is set * At least one of its `treatments` has a non-zero `allocationPercent` ##### Parameters - `changeJustification`: The reason for starting a new iteration. Required when you call `startIteration` on an already running experiment, otherwise optional. Here's an example: ```json { "instructions": [{ "kind": "startIteration", "changeJustification": "It's time to start a new iteration" }] } ``` #### stopIteration Stops the current iteration for this experiment. ##### Parameters - `winningTreatmentId`: The ID of the winning treatment. Treatment IDs are returned as part of the Get experiment response. They are the `_id` of each element in the `treatments` array. - `winningReason`: The reason for the winner Here's an example: ```json { "instructions": [{ "kind": "stopIteration", "winningTreatmentId": "3a548ec2-72ac-4e59-8518-5c24f5609ccf", "winningReason": "Example reason to stop the iteration" }] } ``` #### archiveExperiment Archives this experiment. Archived experiments are hidden by default in the LaunchDarkly user interface. You cannot start new iterations for archived experiments. Here's an example: ```json { "instructions": [{ "kind": "archiveExperiment" }] } ``` #### restoreExperiment Restores an archived experiment. After restoring an experiment, you can start new iterations for it again. Here's an example: ```json { "instructions": [{ "kind": "restoreExperiment" }] } ```
import LaunchDarklyApi from 'launchdarkly-api';
let defaultClient = LaunchDarklyApi.ApiClient.instance;
// Configure API key authorization: ApiKey
let ApiKey = defaultClient.authentications['ApiKey'];
ApiKey.apiKey = 'YOUR API KEY';
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//ApiKey.apiKeyPrefix = 'Token';
let apiInstance = new LaunchDarklyApi.ExperimentsApi();
let projectKey = "projectKey_example"; // String | The project key
let environmentKey = "environmentKey_example"; // String | The environment key
let experimentKey = "experimentKey_example"; // String | The experiment key
let experimentPatchInput = {"comment":"Example comment describing the update","instructions":[{"kind":"updateName","value":"Updated experiment name"}]}; // ExperimentPatchInput |
apiInstance.patchExperiment(projectKey, environmentKey, experimentKey, experimentPatchInput, (error, data, response) => {
if (error) {
console.error(error);
} else {
console.log('API called successfully. Returned data: ' + data);
}
});| Name | Type | Description | Notes |
|---|---|---|---|
| projectKey | String | The project key | |
| environmentKey | String | The environment key | |
| experimentKey | String | The experiment key | |
| experimentPatchInput | ExperimentPatchInput |
- Content-Type: application/json
- Accept: application/json
RandomizationSettingsRep putExperimentationSettings(projectKey, randomizationSettingsPut)
Update experimentation settings
Update experimentation settings for the given project
import LaunchDarklyApi from 'launchdarkly-api';
let defaultClient = LaunchDarklyApi.ApiClient.instance;
// Configure API key authorization: ApiKey
let ApiKey = defaultClient.authentications['ApiKey'];
ApiKey.apiKey = 'YOUR API KEY';
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//ApiKey.apiKeyPrefix = 'Token';
let apiInstance = new LaunchDarklyApi.ExperimentsApi();
let projectKey = "projectKey_example"; // String | The project key
let randomizationSettingsPut = new LaunchDarklyApi.RandomizationSettingsPut(); // RandomizationSettingsPut |
apiInstance.putExperimentationSettings(projectKey, randomizationSettingsPut, (error, data, response) => {
if (error) {
console.error(error);
} else {
console.log('API called successfully. Returned data: ' + data);
}
});| Name | Type | Description | Notes |
|---|---|---|---|
| projectKey | String | The project key | |
| randomizationSettingsPut | RandomizationSettingsPut |
- Content-Type: application/json
- Accept: application/json