---
title: "Creating a new Simulation Item"
method: POST
path: "/api/simulations"
tags: ["Simulation"]
---

# Creating a new Simulation Item

`POST /api/simulations`

## Request

- Base URL: `https://api.wearelearning.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.wearelearning.io/api/simulations`
- Auth: OAuth 2
  - Implicit: `https://login.wearelearning.io/authorize?audience=https://api.wearelearning.io`

## Request body

- CreateSimulationDto
  - `title` string, required
  - `description` string, nullable
  - `languageCode` string, required
  - `sceneId` string, required
  - `characterIds` string[], required
  - `gradient` 'gradient_1' | 'gradient_2' | 'gradient_3' | 'gradient_4' | 'gradient_5', required
  - `characters` UpsertSimulationCharacterDto[], required
    - `id` string, nullable
    - `selectedVoiceName` string, nullable
    - `name` string, nullable
    - `role` string, nullable
    - `desiredOutcomeFromConversation` string, nullable
    - `actsLike` string, nullable
    - `isPlayer` boolean, nullable
    - `position` ThreeDimensionalPositionDto
      - `x` number, double, required
      - `y` number, double, required
      - `z` number, double, required
  - `startingNodeType` 'dialogue' | 'response' | 'poster' | 'event' | 'end' | 'open-response' | 'outcome' | 'no-match' | 'hotspot' | 'quiz' | 'page' | 'code'
  - `startingNodePosition` Position2dDto
    - `x` number, double, required
    - `y` number, double, required
  - `startingNodeCharacters` string[], nullable
  - `storyType` string, nullable
  - `storyDescription` string, nullable
  - `voiceover` VoiceOverDto
    - `enabled` boolean, required
    - `selectedVoiceName` string, required
    - `gender` 'Female' | 'Male', required
    - `voiceInfo` VoiceDto
      - `displayName` string, required
      - `shortName` string, required
      - `locale` string, required
      - `gender` 'Female' | 'Male', required
      - `sampleAudioUrl` string, required
      - `wordsPerMinute` integer, required
      - `speakingStyles` SpeakingStyle[], required
        - `value` string, required
        - `displayName` string, required
        - `iconUrl` string, required
      - `provider` 'AzureCognitiveServices' | 'ElevenLabs', required
      - `supportsAudioTags` boolean, required
      - `fileFormat` 'Wav' | 'Aac' | 'Mp3', required
  - `folderId` string, uuid, nullable: A valid GUID

## Response `201`

Created

- string

## Other responses

- `400`: Bad Request
- `500`: Internal Server Error

---

[API](https://skmtc.dev/wearelearning/apis/we-are-learning-api.md) - [All operations](https://skmtc.dev/wearelearning/apis/we-are-learning-api/llms.txt) - [OpenAPI document](https://skmtc.dev/wearelearning/apis/we-are-learning-api/revisions/e2ca5265db77?raw)
