---
title: "Create a simulation"
method: POST
path: "/v1/simulations"
tags: ["Simulations"]
---

# Create a simulation

`POST /v1/simulations`

Create a simulation from mode + goal + inputs + user_model_ids.

Returns immediately in status `planning`; the plan is generated in the
background. Poll GET /{id} until status is `planned`.

## Headers

- `authorization` string

## Request body

- CreateSimulationBody
  - `mode` string, required — 'research' or 'journey'
  - `goal` string, required — Goal id within the mode (from /v1/simulation-schema)
  - `inputs` object — Answers keyed by the goal's input ids (from /v1/simulation-schema)
  - `user_model_ids` string[], required — One or more user-model ids to simulate against
  - `title` string, nullable
  - `project_id` string, uuid, nullable — Optional project to add this simulation to; it joins the project's latest round (round 1 is created if none exists)

## Response `201`

Successful Response

- unknown

## Other responses

- `422` — Validation Error

## Changes

- **2026-08-14** `79d8db9d1182` — 1 info
  - added the new optional request property `project_id`

[Change history](https://skmtc.dev/stainless-api/apis/semilattice-api/changes/v1/simulations/post.md)

---

[API](https://skmtc.dev/stainless-api/apis/semilattice-api.md) · [All operations](https://skmtc.dev/stainless-api/apis/semilattice-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/stainless-api/semilattice-api/revisions/79d8db9d1182/schema)
