---
title: "Get all scenarios"
method: GET
path: "/simulations"
tags: ["Simulations"]
---

# Get all scenarios

`GET /simulations`

Retrieve a paginated list of scenarios for the authenticated user's organization and project.

## Query parameters

- `projectId` string, required
- `filter` string
- `limit` integer
- `skip` integer
- `sort` string
- `next` string
- `previous` string
- `includeUpcomingSchedule` boolean

## Response `200`

List of scenarios retrieved successfully

- object
  - `data` object[] — Array of scenario objects
    - `id` string, required — Unique identifier for the scenario
    - `referenceId` string, required — Reference ID for the scenario
    - `name` string, required — Name of the scenario
    - `persona` string, required — Persona description
    - `personaName` string, required — Name of the persona
    - `mission` string, required — Mission description
    - `successCriteria` object[], required — List of success criteria (structured objects)
      - `type` string, required — Success criterion type
      - `params` object, required — Success criterion parameters
    - `maxTurns` integer — Maximum number of turns
    - `timeout` integer — Timeout in seconds
    - `aiAgentReferenceId` string — Reference ID of the AI Agent
    - `aiAgentId` string — Database ID of the AI Agent
    - `flowReferenceId` string — Reference ID of the Flow
    - `flowId` string — Database ID of the Flow
    - `jobNodeId` string — Job Node ID
    - `organisationReference` string, required — Organization reference
    - `projectReference` string, required — Project reference
    - `createdAt` integer, required — Creation timestamp
    - `createdBy` string, required — User who created the scenario
    - `updatedAt` integer — Last update timestamp
    - `updatedBy` string — User who last updated the scenario
    - `lastChanged` integer, required — Last change timestamp
    - `lastChangedBy` string, required — User who made the last change
    - `nextScheduledRun` string, date-time, nullable — Present when `includeUpcomingSchedule=true`. Set to the ISO timestamp of the soonest upcoming enabled schedule, or `null` when no upcoming schedule exists for this scenario. Absent entirely when the flag is not requested. The frontend uses the presence (not the value) of this field to decide whether the list response is enriched and the per-row scheduler call can be skipped.
  - `pagination` object
    - `limit` integer, required — Number of items per page
    - `skip` integer, required — Number of items skipped
    - `total` integer, required — Total number of items
    - `hasNext` boolean, required — Whether there are more items
    - `hasPrevious` boolean, required — Whether there are previous items
    - `next` string, nullable — Cursor for next page
    - `previous` string, nullable — Cursor for previous page

## Other responses

- `400` — Bad Request - Invalid input parameters
- `401` — Unauthorized - Invalid or missing authentication
- `403` — Forbidden - Insufficient permissions
- `500` — Internal Server Error - Server error

---

[API](https://skmtc.net/cognigy/apis/simulator-openapi-rest-ful-api-reference.md) · [All operations](https://skmtc.net/cognigy/apis/simulator-openapi-rest-ful-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/cognigy/simulator-openapi-rest-ful-api-reference/revisions/85b2872bdfb7/schema)
