Experiments
For instructions on how to authenticate to use this endpoint, see API overview.
Endpoints
GET | |
POST | |
GET | |
PATCH | |
DELETE | |
POST | |
POST | |
POST | |
POST |
List all experiments
List experiments for the current project. Supports filtering by status and archival state.
Required API key scopes
experiment:readPath parameters
- project_idstring
Query parameters
- limitinteger
- offsetinteger
Response
Example request
GET /api /projects /:project_id /experimentsExample response
Status 200
List all experiments
List experiments for the current project. Supports filtering by status and archival state.
Required API key scopes
experiment:readPath parameters
- project_idstring
Query parameters
- limitinteger
- offsetinteger
Response
Example request
GET /api /projects /:project_id /experimentsExample response
Status 200
Create experiments
Create a new experiment in draft status with optional metrics.
Required API key scopes
experiment:writePath parameters
- project_idstring
Request parameters
- namestring
- descriptionstring
- start_datestring
- end_datestring
- feature_flag_keystring
- holdout_idinteger
- parameters
- secondary_metrics
- saved_metrics_idsarray
- filters
- archivedbooleanDefault:
false - deletedboolean
- type
- exposure_criteria
- metrics
- metrics_secondary
- stats_config
- scheduling_config
- allow_unknown_eventsbooleanDefault:
false - _create_in_folderstring
- conclusion
- conclusion_commentstring
- primary_metrics_ordered_uuids
- secondary_metrics_ordered_uuids
- only_count_matured_usersboolean
- update_feature_flag_paramsbooleanDefault:
false
Response
Example request
POST /api /projects /:project_id /experimentsExample response
Status 201
Create experiments
Create a new experiment in draft status with optional metrics.
Required API key scopes
experiment:writePath parameters
- project_idstring
Request parameters
- namestring
- descriptionstring
- start_datestring
- end_datestring
- feature_flag_keystring
- holdout_idinteger
- parameters
- secondary_metrics
- saved_metrics_idsarray
- filters
- archivedbooleanDefault:
false - deletedboolean
- type
- exposure_criteria
- metrics
- metrics_secondary
- stats_config
- scheduling_config
- allow_unknown_eventsbooleanDefault:
false - _create_in_folderstring
- conclusion
- conclusion_commentstring
- primary_metrics_ordered_uuids
- secondary_metrics_ordered_uuids
- only_count_matured_usersboolean
- update_feature_flag_paramsbooleanDefault:
false
Response
Example request
POST /api /projects /:project_id /experimentsExample response
Status 201
Retrieve experiments
Retrieve a single experiment by ID, including its current status, metrics, feature flag, and results metadata.
Required API key scopes
experiment:readPath parameters
- idinteger
- project_idstring
Response
Example request
GET /api /projects /:project_id /experiments /:idExample response
Status 200
Retrieve experiments
Retrieve a single experiment by ID, including its current status, metrics, feature flag, and results metadata.
Required API key scopes
experiment:readPath parameters
- idinteger
- project_idstring
Response
Example request
GET /api /projects /:project_id /experiments /:idExample response
Status 200
Update experiments
Update an experiment. Use this to modify experiment properties such as name, description, metrics, variants, and configuration. Metrics can be added, changed and removed at any time.
Required API key scopes
experiment:writePath parameters
- idinteger
- project_idstring
Request parameters
- namestring
- descriptionstring
- start_datestring
- end_datestring
- feature_flag_keystring
- holdout_idinteger
- parameters
- secondary_metrics
- saved_metrics_idsarray
- filters
- archivedbooleanDefault:
false - deletedboolean
- type
- exposure_criteria
- metrics
- metrics_secondary
- stats_config
- scheduling_config
- allow_unknown_eventsbooleanDefault:
false - _create_in_folderstring
- conclusion
- conclusion_commentstring
- primary_metrics_ordered_uuids
- secondary_metrics_ordered_uuids
- only_count_matured_usersboolean
- update_feature_flag_paramsbooleanDefault:
false
Response
Example request
PATCH /api /projects /:project_id /experiments /:idExample response
Status 200
Update experiments
Update an experiment. Use this to modify experiment properties such as name, description, metrics, variants, and configuration. Metrics can be added, changed and removed at any time.
Required API key scopes
experiment:writePath parameters
- idinteger
- project_idstring
Request parameters
- namestring
- descriptionstring
- start_datestring
- end_datestring
- feature_flag_keystring
- holdout_idinteger
- parameters
- secondary_metrics
- saved_metrics_idsarray
- filters
- archivedbooleanDefault:
false - deletedboolean
- type
- exposure_criteria
- metrics
- metrics_secondary
- stats_config
- scheduling_config
- allow_unknown_eventsbooleanDefault:
false - _create_in_folderstring
- conclusion
- conclusion_commentstring
- primary_metrics_ordered_uuids
- secondary_metrics_ordered_uuids
- only_count_matured_usersboolean
- update_feature_flag_paramsbooleanDefault:
false
Response
Example request
PATCH /api /projects /:project_id /experiments /:idExample response
Status 200
Delete experiments
Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true
Required API key scopes
experiment:writePath parameters
- idinteger
- project_idstring
Example request
DELETE /api /projects /:project_id /experiments /:idExample response
Status 405 No response body
Delete experiments
Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true
Required API key scopes
experiment:writePath parameters
- idinteger
- project_idstring
Example request
DELETE /api /projects /:project_id /experiments /:idExample response
Status 405 No response body
Create experiments archive
Archive an ended experiment.
Hides the experiment from the default list view. The experiment can be restored at any time by updating archived=false. Returns 400 if the experiment is already archived or has not ended yet.
Required API key scopes
experiment:writePath parameters
- idinteger
- project_idstring
Response
Example request
POST /api /projects /:project_id /experiments /:id /archiveExample response
Status 200
Create experiments archive
Archive an ended experiment.
Hides the experiment from the default list view. The experiment can be restored at any time by updating archived=false. Returns 400 if the experiment is already archived or has not ended yet.
Required API key scopes
experiment:writePath parameters
- idinteger
- project_idstring
Response
Example request
POST /api /projects /:project_id /experiments /:id /archiveExample response
Status 200
Create experiments copy to project
Mixin for ViewSets to handle ApprovalRequired exceptions from decorated serializers.
This mixin intercepts ApprovalRequired exceptions raised by the @approval_gate decorator on serializer methods and converts them into proper HTTP 409 Conflict responses with change request details.
Required API key scopes
experiment:writePath parameters
- idinteger
- project_idstring
Request parameters
- target_team_idinteger
- feature_flag_keystring
- namestring
Response
Example request
POST /api /projects /:project_id /experiments /:id /copy_to_projectExample response
Status 200
Create experiments copy to project
Mixin for ViewSets to handle ApprovalRequired exceptions from decorated serializers.
This mixin intercepts ApprovalRequired exceptions raised by the @approval_gate decorator on serializer methods and converts them into proper HTTP 409 Conflict responses with change request details.
Required API key scopes
experiment:writePath parameters
- idinteger
- project_idstring
Request parameters
- target_team_idinteger
- feature_flag_keystring
- namestring
Response
Example request
POST /api /projects /:project_id /experiments /:id /copy_to_projectExample response
Status 200
Create experiments create exposure cohort for experiment
Mixin for ViewSets to handle ApprovalRequired exceptions from decorated serializers.
This mixin intercepts ApprovalRequired exceptions raised by the @approval_gate decorator on serializer methods and converts them into proper HTTP 409 Conflict responses with change request details.
Required API key scopes
experiment:writePath parameters
- idinteger
- project_idstring
Request parameters
- namestring
- descriptionstring
- start_datestring
- end_datestring
- feature_flag_keystring
- holdout_idinteger
- parameters
- secondary_metrics
- saved_metrics_idsarray
- filters
- archivedbooleanDefault:
false - deletedboolean
- type
- exposure_criteria
- metrics
- metrics_secondary
- stats_config
- scheduling_config
- allow_unknown_eventsbooleanDefault:
false - _create_in_folderstring
- conclusion
- conclusion_commentstring
- primary_metrics_ordered_uuids
- secondary_metrics_ordered_uuids
- only_count_matured_usersboolean
- update_feature_flag_paramsbooleanDefault:
false
Example request
POST /api /projects /:project_id /experiments /:id /create_exposure_cohort_for_experimentExample response
Status 200 No response body
Create experiments create exposure cohort for experiment
Mixin for ViewSets to handle ApprovalRequired exceptions from decorated serializers.
This mixin intercepts ApprovalRequired exceptions raised by the @approval_gate decorator on serializer methods and converts them into proper HTTP 409 Conflict responses with change request details.
Required API key scopes
experiment:writePath parameters
- idinteger
- project_idstring
Request parameters
- namestring
- descriptionstring
- start_datestring
- end_datestring
- feature_flag_keystring
- holdout_idinteger
- parameters
- secondary_metrics
- saved_metrics_idsarray
- filters
- archivedbooleanDefault:
false - deletedboolean
- type
- exposure_criteria
- metrics
- metrics_secondary
- stats_config
- scheduling_config
- allow_unknown_eventsbooleanDefault:
false - _create_in_folderstring
- conclusion
- conclusion_commentstring
- primary_metrics_ordered_uuids
- secondary_metrics_ordered_uuids
- only_count_matured_usersboolean
- update_feature_flag_paramsbooleanDefault:
false
Example request
POST /api /projects /:project_id /experiments /:id /create_exposure_cohort_for_experimentExample response
Status 200 No response body
Create experiments duplicate
Mixin for ViewSets to handle ApprovalRequired exceptions from decorated serializers.
This mixin intercepts ApprovalRequired exceptions raised by the @approval_gate decorator on serializer methods and converts them into proper HTTP 409 Conflict responses with change request details.
Required API key scopes
experiment:writePath parameters
- idinteger
- project_idstring
Request parameters
- namestring
- descriptionstring
- start_datestring
- end_datestring
- feature_flag_keystring
- holdout_idinteger
- parameters
- secondary_metrics
- saved_metrics_idsarray
- filters
- archivedbooleanDefault:
false - deletedboolean
- type
- exposure_criteria
- metrics
- metrics_secondary
- stats_config
- scheduling_config
- allow_unknown_eventsbooleanDefault:
false - _create_in_folderstring
- conclusion
- conclusion_commentstring
- primary_metrics_ordered_uuids
- secondary_metrics_ordered_uuids
- only_count_matured_usersboolean
- update_feature_flag_paramsbooleanDefault:
false
Example request
POST /api /projects /:project_id /experiments /:id /duplicateExample response
Status 200 No response body
Create experiments duplicate
Mixin for ViewSets to handle ApprovalRequired exceptions from decorated serializers.
This mixin intercepts ApprovalRequired exceptions raised by the @approval_gate decorator on serializer methods and converts them into proper HTTP 409 Conflict responses with change request details.
Required API key scopes
experiment:writePath parameters
- idinteger
- project_idstring
Request parameters
- namestring
- descriptionstring
- start_datestring
- end_datestring
- feature_flag_keystring
- holdout_idinteger
- parameters
- secondary_metrics
- saved_metrics_idsarray
- filters
- archivedbooleanDefault:
false - deletedboolean
- type
- exposure_criteria
- metrics
- metrics_secondary
- stats_config
- scheduling_config
- allow_unknown_eventsbooleanDefault:
false - _create_in_folderstring
- conclusion
- conclusion_commentstring
- primary_metrics_ordered_uuids
- secondary_metrics_ordered_uuids
- only_count_matured_usersboolean
- update_feature_flag_paramsbooleanDefault:
false
Example request
POST /api /projects /:project_id /experiments /:id /duplicate