---
title: "List run plans"
method: GET
path: "/v1/simulation/plan"
tags: ["Simulation Run Plan"]
---

# List run plans

`GET /v1/simulation/plan`

Returns a paginated list of simulation run plans. Optionally filter by search text or agent ID.

## Query parameters

- `limit` integer — Maximum number of run plans to return (default: 20, max: 50)
- `after` string — Cursor for pagination - use the nextCursor value from a previous response
- `searchText` string — Search text to filter run plans by name
- `agentId` string, uuid — Filter run plans by agent ID

## Response `200`

Paginated list of run plans

- GetRunPlansResponse — Paginated list of simulation run plans
  - `data` RunPlanResponse[], required
    - `id` string, uuid, required — Unique identifier of the run plan
    - `name` string, required — Name of the run plan
    - `description` string, nullable — Description of the run plan
    - `direction` 'INBOUND' | 'OUTBOUND', required — Direction of the simulation (INBOUND or OUTBOUND)
    - `iterationCount` integer, required — Number of iterations to run for each test case
    - `maxConcurrentJobs` integer, required — Maximum number of concurrent simulation jobs
    - `maxSimulationDurationSeconds` integer, required — Maximum duration in seconds for each simulation
    - `silenceTimeoutSeconds` integer, required — Timeout in seconds for silence detection
    - `endCallPhrases` string[], required — Phrases that trigger end of call. Empty array means disabled.
    - `endCallReasons` string[], required — Semantic conditions that trigger end of call. The LLM evaluates the conversation against these conditions. Empty array means disabled.
    - `executionMode` 'PARALLEL' | 'SEQUENTIAL_SAME_RUN_PLAN' | 'SEQUENTIAL_PROJECT', required — Execution mode (PARALLEL or SEQUENTIAL)
    - `scenarios` object[], required — Deprecated: use `flows` instead. Scenarios included in this run plan.
      - `id` string, uuid, required
      - `variables` object — Template variables for this scenario instance. Absent when no variables are set. The same scenario can appear multiple times with different variables.
    - `flows` RunPlanFlowSelection[], required — Customer flows included in this run plan
      - `id` string, uuid, required — The customer flow to run.
      - `happyPath` boolean — Run the flow's happy path. Resolved when the run starts, so it follows the flow.
      - `edgeCases` union — `"ALL"` runs every edge case the flow has when the run starts, so one added later is covered. An array runs only the ones you name, each able to carry its own persona override and values.
        - 'ALL'
        - RunPlanEdgeCaseSelection[]
          - `id` string, uuid, required — The edge case to run.
          - `personaOverrideId` string, uuid, nullable — Run this one as that persona instead of its own.
          - `variables` object — Values for this one only.
      - `personaOverrideId` string, uuid, nullable — Runs everything this attachment resolves as that persona instead of its own.
      - `variables` object — Values for everything it resolves.
    - `personas` object[], required — Personas included in this run plan. Only meaningful alongside `scenarios`.
      - `id` string, uuid, required
    - `agentEndpoints` object[], required — Agent endpoints included in this run plan
      - `id` string, uuid, required
    - `evaluators` object[], required — Deprecated: Use metrics instead. Evaluators included in this run plan.
      - `id` string, uuid, required
    - `metrics` object[], required — Metric definitions included in this run plan
      - `id` string, uuid, required
    - `testCaseCount` integer, required — Total number of test cases generated from the plan configuration
    - `createdAt` string, required — When the run plan was created
    - `updatedAt` string, required — When the run plan was last updated
  - `pagination` object, required
    - `total` number, required — Total number of items
    - `hasMore` boolean, required — Whether there are more items to fetch
    - `nextCursor` string, nullable, required — Cursor for the next page of items

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `429` — Too Many Requests
- `500` — Internal Server Error

## Changes

- **2026-08-17** `887b091b3d81` — 8 warning, 2 info
  - added the new `conflict` enum value to the `type` response property for the response status `401`
  - added the new `conflict` enum value to the `type` response property for the response status `403`
  - added the new `conflict` enum value to the `type` response property for the response status `429`
  - added the new `conflict` enum value to the `type` response property for the response status `500`
  - …6 more
- **2026-04-20** `a1a7faf3a53b` — 1 info
  - added the optional property `data/items/scenarios/items/variables` to the response with the `200` status

[Change history](https://skmtc.dev/roarkhq/apis/roark-analytics-api/changes/v1/simulation/plan/get.md)

---

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