Juno
API reference

Simulate interview

POST /v1/api/studies/{study_id}:simulate Requires studies:write

In Test mode, simulate the interview before the user selects Go live: Juno plays both sides — the interviewer runs the study's real interview, and a synthetic participant answers it — producing a sample transcript. Optionally steer the participant with a persona description. Simulation runs in the background: this returns a job_id; poll Check a simulation to watch the transcript grow turn by turn. Simulation uses no credits, provides no analysis or exports, and is not real participant research. The current endpoint does not enforce mode=test; developers must treat that as the product contract.

Parameters

study_id
string <uuid>

Request body application/json

persona
string · nullable

Optional plain-language description of the synthetic participant (e.g. 'a skeptical enterprise buyer who churned last month'). When omitted, Juno invents a plausible participant for the study.

max_turns
integer

Maximum number of interview turns to simulate. The interview may finish naturally in fewer turns.

Responses

202 Successful Response
job_id
string

Simulation job handle. Poll GET /v1/api/simulations/{job_id} to watch the transcript grow and to learn when it completes.

422 Validation Error
ValidationError[]
cURL
curl -X POST 'https://api.heyjuno.co/v1/api/studies/3fa85f64-5717-4562-b3fc-2c963f66afa6:simulate' \
  -H 'Authorization: Bearer $JUNO_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
  "persona": "string",
  "max_turns": 12
}'
Example response
{
  "job_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}