Simulate interview
simulate_study Requires studies:writeIn 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. Returns a job handle; poll get_simulation_status to watch the transcript grow turn by turn. Simulation uses no credits, provides no analysis or exports, and is not real participant research. The study must be in Test mode; simulating a Live study returns 409. Pass a unique idempotency_key when you may retry after a timeout or dropped connection; retrying with the same key returns the first result instead of starting a second job.
Input
study_id string <uuid> Unique study id returned by Juno.
persona string | null 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.
idempotency_key string | null Optional retry key, the MCP form of the REST Idempotency-Key header. Pass a new unique value (for example a UUID) with each new request, and send the same value again only when retrying that exact request because you did not see its result (a timeout or dropped connection). A retry then returns the first result instead of starting a second job. The same key with different arguments returns 409, as does a retry while the first call is still running. Keys are scoped to your organisation and this operation and kept for about 7 days. Omit it and every call runs.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "simulate_study",
"arguments": {
"study_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"persona": null,
"max_turns": 12,
"idempotency_key": null
}
}
}