---
title: "# Create Simulation"
method: POST
path: "/v1/simulations"
tags: ["Simulations"]
---

# # Create Simulation

`POST /v1/simulations`

Creates the simulation with given information

## Request body

- object
  - `agent_id` integer — id of the agent
  - `agent_user_ids` integer[] — agent user ids for installable agent execution users
  - `auto_resume` boolean — auto resume feature of the simulation, if set auto resume will be enabled for simulation
  - `description` string — description of the simulation
  - `force` boolean — force (option to create identical simulation) available values are true and false
  - `integrations` integer[] — integration ids
  - `name` string, required — name of the simulation
  - `obfuscation_methods` string[] — TODO : add max obfuscation methods
  - `protocols` SimulationProtocol[] — protocols
    - `module_id` integer — Attack module ID that the simulation runs. Available attack modules, as `id: name`: 1: Network Infiltration 2: Windows Endpoint Scenario 3: Web Application 4: E-mail Infiltration 5: Data Exfiltration 6: Linux Endpoint Scenario 7: macOS Endpoint Scenario 9: URL Filtering 10: Kubernetes Endpoint Scenario 103: Azure Cloud Emulation 104: AWS Cloud Emulation 105: GCP Cloud Emulation
    - `protocols` string[]
  - `schedule` ScheduleInput
    - `day_of_month` integer[] — required if frequency is `MONTHLY`
    - `day_of_week` integer[] — required if frequency is `WEEKLY`
    - `frequency` string, required — ONCE, DAILY, WEEKLY, MONTHLY
    - `frequency_interval` integer — required if frequency is not `ONCE`
    - `name` string, required
    - `start_time` integer, required — time format -> `epoch` Optional value: `now`
  - `schedule_now` boolean
  - `template_id` integer, required — id of the scope

## Response `200`

SimulationCreateReturnSwagger

- object
  - `run_immediately` boolean
  - `run_info` SimulationRunApiOutput
    - `browser` string — Run Browser Info
    - `id` integer — Run Id (1)
    - `status` string — Run Status (COMPLETED | RUNNING)
  - `simulation` SimulationApiOutput
    - `agent_id` NullInt64
      - `Int64` integer
      - `Valid` boolean
    - `agent_user_ids` integer[] — agent user ids for installable agent execution users
    - `description` string — Simulation Description (description of the simulation)
    - `id` integer — Simulation Id (1)
    - `integrations` integer[] — Simulation Integrations ([1,2,3])
    - `is_active` NullBool
      - `Bool` boolean
      - `Valid` boolean
    - `name` string — Simulation Name (Simulation - 1)
    - `obfuscation_methods` string[] — obfuscation methods
    - `protocols` AssessmentProtocol[] — Simulation Protocols ([http, https]) protocols
      - `module_id` integer
      - `protocols` string[]
    - `schedule_id` integer — Simulation Schedule Id (3)
    - `template_id` NullInt64
      - `Int64` integer
      - `Valid` boolean
  - `simulation_already_exist` boolean

## Other responses

- `422` — validationErrorSwagger is represents the erroneous cases
- `default` — genericErrorSwagger is represents the erroneous cases

---

[API](https://skmtc.net/picussecurity/apis/picus-rest-api.md) · [All operations](https://skmtc.net/picussecurity/apis/picus-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/picussecurity/picus-rest-api/versions/cb0d02ee28f8/schema)
