Experiment

Applies a lifecycle transition to an experiment and returns the full updated document.

Valid transitions: draft/paused → active, active → paused, active/paused → completed; anything else is 409 with code invalid_transition. Activation additionally guards against flag keys owned by another running experiment (flag_key_in_use), an already-elapsed end date (invalid_window), and sticky enrollment without a leavable user predicate (invalid_enrollment_mode).

post/campaign/experiments/{experimentKey}/state

Path parameters

experimentKeystring required

The experiment's stable key.

Request body

action'activate' | 'pause' | 'complete' required

Response

OK

idstring required

The unique id of the experiment document.

keystring required

Stable unique identifier; the analysis key is exp:<key>.

descriptionstring required

Human-readable description of the hypothesis.

state'draft' | 'active' | 'paused' | 'completed' required
userEnrollment'perSession' | 'sticky' required
startAtstring date-time nullable

Outside the [startAt, endAt) window the experiment is treated as inactive.

endAtstring date-time nullable

End of the experiment window; the experiment auto-completes afterwards.

createdBystring required

The email of the admin who created the experiment.

createdAtstring date-time required

When the experiment was created.

updatedAtstring date-time required

When the experiment was last changed.

Changes