Juno
API reference

Update study

refine_study Requires studies:write

Update a study with further plain-language instructions from the user, in Test mode or Live mode. The refine_study tool name is retained for wire compatibility. When new documents are part of the update, upload them over REST first and pass their file_ids here. Each update creates a new design version and returns a job handle; poll get_authoring_status. 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.

guidance
string

Plain-language instruction from the user: the research goal, intended participants, and what the user wants to learn — or, when updating, what to change. A sentence or two is enough.

file_ids
array | null

Optional file ids from POST /v1/api/files, uploaded by this organisation. Include them when documents are part of Create a study or Update a study.

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.

tools/call
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "refine_study",
    "arguments": {
      "study_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "guidance": "Interview 10 recent churned customers about why they cancelled.",
      "file_ids": null,
      "idempotency_key": null
    }
  }
}