Experiments-2
For instructions on how to authenticate to use this endpoint, see API overview.
Endpoints
GET | |
POST | |
POST | |
POST | |
GET | |
GET | |
GET | |
GET |
Retrieve experiments timeseries results
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:readPath parameters
- idinteger
Query parameters
- fingerprintstring
- metric_uuidstring
Example request
GET /api /projects /:project_id /experiments /:id /timeseries_resultsExample response
Status 200 No response body
Create experiments unarchive
Unarchive an archived experiment.
Restores the experiment to the default list view. Returns 400 if the experiment is not currently archived.
Required API key scopes
experiment:writePath parameters
- idinteger
Response
Example request
POST /api /projects /:project_id /experiments /:id /unarchiveExample response
Status 200
Create experiments calculate running time
Estimate the recommended sample size and running time for an experiment.
Pure statistical calculation — does not read or write any experiment. Pass the metric type, a
minimum detectable effect, and either a baseline value or raw baseline statistics. When
exposure_rate_per_day is provided, the response also includes the estimated running time in days.
Required API key scopes
experiment:readRequest parameters
- metric_type
- minimum_detectable_effectnumber
- number_of_variantsintegerDefault:
2 - exposure_rate_per_daynumbernull
- baseline_valuenumbernull
- variancenumbernull
- baseline_stats
Response
Example request
POST /api /projects /:project_id /experiments /calculate_running_timeExample response
Status 200
Create experiments create from prompt
Create an experiment that compares N versions of an LLM prompt using a metric template.
The user picks 2+ versions of an existing LLMPrompt and 1+ metric templates (cost / latency / eval_pass_rate). The endpoint builds the matching variants (control + test-N, each named after its prompt version) and attaches one metric per selected template, each scoped to the prompt's $ai_prompt_name. Resulting experiment is in draft state.
Required API key scopes
experiment:writellm_prompt:readRequest parameters
- prompt_namestring
- versionsarray
- templatesarray
- namestring
- feature_flag_keystring
- descriptionstring
Response
Example request
POST /api /projects /:project_id /experiments /create_from_promptExample response
Status 200
Retrieve experiments eligible feature flags
Returns a paginated list of feature flags eligible for use in experiments.
Eligible flags must:
- Be multivariate with at least 2 variants
- Have "control" as the first variant key
Query parameters:
- search: Filter by flag key or name (case insensitive)
- limit: Number of results per page (default: 20)
- offset: Pagination offset (default: 0)
- active: Filter by active status ("true" or "false")
- created_by_id: Filter by creator user ID
- order: Sort order field
- evaluation_runtime: Filter by evaluation runtime
- has_evaluation_contexts: Filter by presence of evaluation contexts ("true" or "false")
Required API key scopes
feature_flag:readExample request
GET /api /projects /:project_id /experiments /eligible_feature_flagsExample response
Status 200 No response body
Retrieve experiments prompt templates
List the LLM metric templates that can be passed to create_from_prompt.
Required API key scopes
experiment:readExample request
GET /api /projects /:project_id /experiments /prompt_templatesExample response
Status 200
Retrieve experiments requires flag implementation
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:readExample request
GET /api /projects /:project_id /experiments /requires_flag_implementationExample response
Status 200 No response body
Retrieve experiments stats
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:readExample request
GET /api /projects /:project_id /experiments /stats