---
title: "Create a scenario"
method: POST
path: "/v1/simulation/scenario"
tags: ["Simulation Scenario"]
---

# Create a scenario

`POST /v1/simulation/scenario`

Creates a new simulation scenario for the authenticated project.

## Request body

- object — Input for creating a new scenario
  - `name` string, required — Name of the scenario (used as the START node content)
  - `steps` object[], required — Ordered list of steps for the scenario (at least one step is required)
    - `type` 'AGENT_TURN' | 'CUSTOMER_TURN' | 'CUSTOMER_FIRST_MESSAGE' | 'CUSTOMER_SILENCE' | 'CUSTOMER_DTMF' | 'VOICEMAIL' | 'SCENARIO_LINK', required — The type of this step
    - `content` string, required — The content/text of the step
    - `linkedScenarioId` string, uuid — ID of the scenario to link to (required for SCENARIO_LINK type steps)
    - `dtmfDigits` string — DTMF digits to send (for CUSTOMER_DTMF type steps, e.g. 1w2w3#). Valid characters: 0-9, *, #, w/W for pauses.
    - `silenceDurationSeconds` integer — Duration of silence in seconds (for CUSTOMER_SILENCE type steps)

## Response `201`

The created scenario

- object
  - `data` object, required
    - `id` string, uuid, required — Unique identifier of the scenario
    - `name` string, nullable, required — Name of the scenario (from the start node content)
    - `description` string, nullable, required — Description of the scenario
    - `steps` object[], required — Ordered list of steps in the scenario (excludes the START node)
      - `nodeId` string, uuid, required — Unique identifier of the step node (use this for update/delete operations)
      - `type` 'START' | 'AGENT_TURN' | 'CUSTOMER_TURN' | 'CUSTOMER_FIRST_MESSAGE' | 'CUSTOMER_SILENCE' | 'CUSTOMER_DTMF' | 'VOICEMAIL' | 'SCENARIO_LINK', required — Type of step in the scenario
      - `content` string, nullable, required — Content/text of the step
      - `linkedScenarioId` string, uuid, nullable — ID of the linked scenario (only for SCENARIO_LINK type steps)
      - `dtmfDigits` string, nullable — DTMF digits to send during this step (e.g. 1w2w3#). Valid characters: 0-9, *, #, w/W for pauses.
      - `silenceDurationSeconds` integer, nullable — Duration of silence in seconds (only for CUSTOMER_SILENCE type steps)
    - `createdAt` string, required — Creation timestamp in ISO 8601 format
    - `updatedAt` string, required — Last update timestamp in ISO 8601 format

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `500` — Internal Server Error

---

[API](https://skmtc.net/roarkhq/apis/roark-analytics-api.md) · [All operations](https://skmtc.net/roarkhq/apis/roark-analytics-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/roarkhq/roark-analytics-api/revisions/83528d3618ef/schema)
