/api/v1/projects/{project_id}/simulations
Simulation types
simulation_type | Description |
|---|---|
concept_test | Each persona reads your prompt and briefing, then responds with a reaction, sentiment, key themes, and a notable quote. An aggregate result summarizes the group. |
survey | Each persona answers a structured questionnaire. Good for quantifiable preference and attitude data. |
focus_group | Personas interact as a group across multiple rounds. Captures emergent consensus and social dynamics. |
idi_ai | AI-moderated one-on-one interview. The AI moderator probes for depth using your uploaded script. |
idi_manual | You drive a live conversation with a single AI persona. The session stays active until you call /end. |
conjoint | Choice-based conjoint analysis. Personas choose between product attribute profiles, revealing which features drive preference and at what price point. |
Simulation status values
Simulations move through the following statuses:active is used exclusively by idi_manual sessions while the interview is in progress.
Endpoints
Core endpoints
| Method | Path | Description |
|---|---|---|
GET | .../simulations | List all simulations in a project |
POST | .../simulations | Create and start a simulation |
GET | .../simulations/{simulation_id} | Get simulation status and progress |
POST | .../simulations/{simulation_id}/abort | Abort a running simulation |
DELETE | .../simulations/{simulation_id} | Delete a simulation |
GET | .../simulations/{simulation_id}/results | Fetch results |
GET | .../simulations/convergence | Cross-simulation convergence scores |
POST | .../simulations/{simulation_id}/reliability-check | Start a reliability study |
GET | .../simulations/{simulation_id}/reliability-check | Get the latest reliability study results |
Survey-specific
| Method | Path | Description |
|---|---|---|
POST | .../simulations/{simulation_id}/survey | Upload and parse a survey file |
POST | .../simulations/{simulation_id}/run | Confirm parsed questions and start the survey run |
IDI-specific
| Method | Path | Description |
|---|---|---|
POST | .../simulations/{simulation_id}/script | Upload an IDI script (.txt or .docx) |
GET | .../simulations/{simulation_id}/messages | Get the conversation transcript |
POST | .../simulations/{simulation_id}/messages | Send a message in a manual IDI session |
POST | .../simulations/{simulation_id}/end | End a manual IDI session |
Conjoint-specific
| Method | Path | Description |
|---|---|---|
POST | .../simulations/{simulation_id}/conjoint-design | Submit attribute/level design and start the conjoint run |
GET /simulations
List all simulations in a project, ordered by creation date.Path parameters
UUID of the parent project.
Example
POST /simulations
Create and immediately start a simulation. Returns201 Created with the new simulation object. The simulation runs in the background.
Path parameters
UUID of the parent project.
Request body
UUID of the persona group to run the simulation against. The group must have a
generation_status of complete.One of
concept_test, survey, focus_group, idi_ai, idi_manual, or conjoint.The research question or moderator prompt. Required for
concept_test and focus_group. For surveys and conjoint, this field is optional context.Array of briefing UUIDs to attach to the simulation. Personas will read these before responding.
Response
UUID of the new simulation.
The type you specified.
Initial status, always
"pending" or "running" immediately after creation.UUID of the persona group.
Array of attached briefing UUIDs.
ISO 8601 UTC timestamp.
Examples
Response (201 Created)
GET /simulations/
Get the current status and progress of a simulation. Poll this endpoint after creating a simulation to track its lifecycle.Path parameters
UUID of the parent project.
UUID of the simulation.
Example
POST /simulations//abort
Abort a simulation that is currently in therunning status. The simulation moves to aborted and any partial results are discarded.
Path parameters
UUID of the parent project.
UUID of the simulation to abort.
Example
DELETE /simulations/
Permanently delete a simulation and all its results.Path parameters
UUID of the parent project.
UUID of the simulation.
Example
GET /simulations//results
Retrieve all results for a completed simulation. Returns one record per persona (individual results) plus one aggregate record summarizing the group.Path parameters
UUID of the parent project.
UUID of the simulation.
Example
Survey endpoints
POST /simulations//survey
Upload a survey file to a simulation. The file is parsed by an LLM into a structuredsurvey_schema. This call does not start the simulation run — call /run after reviewing the parsed questions.
UUID of the simulation.
A
.txt or .docx file containing your survey questions. Supported question formats: Likert scale, multiple choice, and open-ended.Example
POST /simulations//run
Confirm the parsed survey questions and start the survey simulation. All personas will answer every question independently.Example
IDI endpoints
POST /simulations//script
Upload a discussion guide or script for an AI-moderated IDI (idi_ai). The file is processed by an LLM to extract the interview questions, and the simulation starts automatically once the script is parsed.
A
.txt or .docx file containing your discussion guide. The LLM extracts question blocks and probes.Example
GET /simulations//messages
Retrieve the full conversation transcript for an IDI simulation. Returns an ordered list of messages.Example
POST /simulations//messages
Send a message in a liveidi_manual session. The persona responds in character.
The message text to send to the persona.
Example
POST /simulations//end
End aidi_manual session. This triggers report generation and moves the simulation to generating_report, then complete.
Example
Conjoint endpoint
POST /simulations//conjoint-design
Submit the attribute and level design for a conjoint simulation. This call starts the conjoint run immediately.An array of attribute objects, each with a
name and levels array.Example
Convergence
GET /simulations/convergence
Retrieve cross-simulation convergence scores — a measure of how consistently personas respond across multiple simulations for the same topic. Higher scores indicate more stable, reliable findings.Query parameters
UUID of the persona group to compute convergence for.
Optionally scope convergence to simulations that used a specific briefing.
