Set study mode
/v1/api/studies/{study_id}/mode Requires studies:write · studies:golive to go liveMap the established mode wire field onto the product lifecycle. test selects Test mode: simulate the interview shape with no credits, analysis, or exports and no real participant research. live selects Live mode: real participant interviews deduct credits and enable analysis and exports. The user-facing action is Go live. The same field retains paused and closed as technical collection states. Going live the first time runs validation and requires studies:golive; other changes require studies:write. Repeating the current value is a no-op.
Parameters
study_id string <uuid> Request body application/json
mode enum("test", "live", "paused", "closed") Target lifecycle value. 'test' and 'live' map to Test mode and Live mode; setting 'live' is the API equivalent of Go live and needs the studies:golive scope. 'paused' and 'closed' are technical collection states; 'paused' is only valid from live. Setting the current value is a no-op.
Responses
mode enum("test", "live", "paused", "closed") The study's lifecycle value after the change.
url string Absolute invite URL. Durable — the same link across every lifecycle change.
ValidationError[] curl -X PUT 'https://api.heyjuno.co/v1/api/studies/3fa85f64-5717-4562-b3fc-2c963f66afa6/mode' \
-H 'Authorization: Bearer $JUNO_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"mode": "test"
}'{
"mode": "test",
"url": "string"
}