---
title: "List all runnable scenarios."
method: GET
path: "/scenarios"
tags: ["scenarios"]
---

# List all runnable scenarios.

`GET /scenarios`

Requires the privilege [`SCENARIOS_READ`](https://www.gremlin.com/docs/user-management/access-control/#privileges)

## Query parameters

- `teamId` string, required

## Response `200`

- ScenarioResponse[]
  - `orgId` string
  - `guid` string
  - `name` string
  - `description` string
  - `hypothesis` string
  - `steps` object[]
  - `graph` ScenarioGraph
    - `nodes` object
    - `startId` string
    - `observers` StatusCheckNode[]
      - `type` 'Concurrent' | 'ContinuousStatusCheck' | 'StatusCheckNode' | 'Delay' | 'InfraAttack' | 'SynchronousStatusCheck' | 'Continuous' | 'FailureFlag' | 'ExternalAction' | 'RollbackExternalAction'
      - `id` string
      - `state` object
        - `lifecycle` 'NotStarted' | 'Active' | 'HaltRequested' | 'Successful' | 'Halted' | 'Failed'
        - `startTime` string, date-time
        - `endTime` string, date-time
        - `failedReason` string
        - `nodeHaltedByGuid` string
        - `nodeHaltedById` string
      - `guid` string
      - `next` string
      - `name` string
      - `description` string
      - `thirdPartyPresets` string
      - `category` 'ERRORS' | 'LATENCY' | 'REQUESTS' | 'UNKNOWN'
      - `requestConfiguration` StatusCheckNodeRequest
        - `type` string
      - `endpointConfiguration` EndpointConfiguration
        - `url` string, url, required — The URL of the status check
        - `method` 'GET' | 'POST' | 'PUT' | 'PATCH' — The method type of the status check
        - `headers` object — Optional request headers to be used when the status check is invoked
        - `payload` string — Payload for POST type of request
        - `headersArn` string — Optional request headers pulled from a remote AWS resource holding JSON-encoded key-values that make up the headers
      - `rawEndpointConfiguration` EndpointConfiguration
        - `url` string, url, required — The URL of the status check
        - `method` 'GET' | 'POST' | 'PUT' | 'PATCH' — The method type of the status check
        - `headers` object — Optional request headers to be used when the status check is invoked
        - `payload` string — Payload for POST type of request
        - `headersArn` string — Optional request headers pulled from a remote AWS resource holding JSON-encoded key-values that make up the headers
      - `evaluationConfiguration` EvaluationConfiguration — The configuration for evaluating the success/failure of a status check
        - `okLatencyMaxMs` integer — The maximum latency in milliseconds for a successful status check
        - `okStatusCodes` string[], required — The list of successful response status codes for a successful status check
        - `responseBodyEvaluation` ResponseBodyEvaluation — The configuration for evaluating the success of a response body
          - `op` 'AND' | 'OR', required — The operation to logically combine predicates into a success or failure
          - `predicates` PredicateObject[], required — The list of predicates to evaluate against the status check response body
            - `comparator` HasCompareFunctionObject
            - `type` 'String' | 'Number' | 'Boolean', required — The type of primitive this predicate operates on
            - `jpQuery` string, required — The json path query to run to read from the response body
            - `rValue` object, required — The right hand value of the predicate
      - `statusCheckId` string
      - `externalIntegrationId` string
      - `statusCheckReferenceId` string
      - `isPrivateNetwork` boolean
      - `isHaltable` boolean
      - `payload` string
      - `isAutoGenerated` boolean
      - `autoGeneratedStatusCheckId` string
      - `resourceIdentifier` string
      - `statusCheckRequest` StatusCheckNodeRequest
        - `type` string
      - `intervalSeconds` integer
      - `additionalTimeInSecsToRunAfterCompletion` integer
    - `externalActions` ExternalActionNode[]
      - `type` 'Concurrent' | 'ContinuousStatusCheck' | 'StatusCheckNode' | 'Delay' | 'InfraAttack' | 'SynchronousStatusCheck' | 'Continuous' | 'FailureFlag' | 'ExternalAction' | 'RollbackExternalAction'
      - `id` string
      - `state` object
        - `lifecycle` 'NotStarted' | 'Active' | 'HaltRequested' | 'Successful' | 'Halted' | 'Failed'
        - `startTime` string, date-time
        - `endTime` string, date-time
        - `failedReason` string
        - `nodeHaltedByGuid` string
        - `nodeHaltedById` string
      - `guid` string
      - `next` string
      - `externalActionRequest` ExternalActionRequest
        - `semanticType` string
        - `type` string, required
      - `stateDetails` ExternalCallFailedException
        - `cause` object
          - `stackTrace` object[]
            - `classLoaderName` string
            - `moduleName` string
            - `moduleVersion` string
            - `methodName` string
            - `fileName` string
            - `lineNumber` integer
            - `className` string
            - `nativeMethod` boolean
          - `message` string
          - `localizedMessage` string
        - `stackTrace` object[]
          - `classLoaderName` string
          - `moduleName` string
          - `moduleVersion` string
          - `methodName` string
          - `fileName` string
          - `lineNumber` integer
          - `className` string
          - `nativeMethod` boolean
        - `errorCode` string
        - `requestId` string
        - `statusCode` integer
        - `message` string
        - `suppressed` object[]
          - `stackTrace` object[]
            - `classLoaderName` string
            - `moduleName` string
            - `moduleVersion` string
            - `methodName` string
            - `fileName` string
            - `lineNumber` integer
            - `className` string
            - `nativeMethod` boolean
          - `message` string
          - `localizedMessage` string
        - `localizedMessage` string
    - `externalRollbacks` RollbackExternalActionNode[]
      - `type` 'Concurrent' | 'ContinuousStatusCheck' | 'StatusCheckNode' | 'Delay' | 'InfraAttack' | 'SynchronousStatusCheck' | 'Continuous' | 'FailureFlag' | 'ExternalAction' | 'RollbackExternalAction'
      - `id` string
      - `state` object
        - `lifecycle` 'NotStarted' | 'Active' | 'HaltRequested' | 'Successful' | 'Halted' | 'Failed'
        - `startTime` string, date-time
        - `endTime` string, date-time
        - `failedReason` string
        - `nodeHaltedByGuid` string
        - `nodeHaltedById` string
      - `guid` string
      - `next` string
      - `referenceExternalActionId` string
      - `stateDetails` ExternalCallFailedException
        - `cause` object
          - `stackTrace` object[]
            - `classLoaderName` string
            - `moduleName` string
            - `moduleVersion` string
            - `methodName` string
            - `fileName` string
            - `lineNumber` integer
            - `className` string
            - `nativeMethod` boolean
          - `message` string
          - `localizedMessage` string
        - `stackTrace` object[]
          - `classLoaderName` string
          - `moduleName` string
          - `moduleVersion` string
          - `methodName` string
          - `fileName` string
          - `lineNumber` integer
          - `className` string
          - `nativeMethod` boolean
        - `errorCode` string
        - `requestId` string
        - `statusCode` integer
        - `message` string
        - `suppressed` object[]
          - `stackTrace` object[]
            - `classLoaderName` string
            - `moduleName` string
            - `moduleVersion` string
            - `methodName` string
            - `fileName` string
            - `lineNumber` integer
            - `className` string
            - `nativeMethod` boolean
          - `message` string
          - `localizedMessage` string
        - `localizedMessage` string
      - `externalActionRequest` ExternalActionRequest
        - `semanticType` string
        - `type` string, required
      - `externalActionLifecycle` 'NotStarted' | 'Active' | 'HaltRequested' | 'Successful' | 'Halted' | 'Failed'
      - `didExternalActionNoOp` boolean
    - `nodesRecursive` GraphNodeObject[]
      - `type` 'Concurrent' | 'ContinuousStatusCheck' | 'StatusCheckNode' | 'Delay' | 'InfraAttack' | 'SynchronousStatusCheck' | 'Continuous' | 'FailureFlag' | 'ExternalAction' | 'RollbackExternalAction'
      - `id` string
      - `state` object
      - `guid` string
      - `next` string
    - `expectedLengthWithDelays` integer
    - `eligibleForServiceCreation` boolean
    - `expectedLength` integer
    - `attackTypeQuantity` object
    - `providersCountForNodes` object
  - `state` string
  - `createSource` string
  - `createdBy` string
  - `updatedBy` string
  - `createdAt` string
  - `updatedAt` string
  - `lastRunAt` string
  - `recommendedScenarioId` string
  - `multiSelectTags` object
  - `createdFromType` 'Recommended' | 'Shared'
  - `createdFromId` string
  - `editCounter` integer
  - `version` integer
  - `passCriteria` 'ALL_PASS' | 'AT_LEAST_ONE_FAILED'
  - `eligibleForServiceCreation` boolean

## Other responses

- `401` — Authorization header missing or malformed. Please provide proper credentials in the authorization header.
- `403` — User requires privilege for target team: SCENARIOS_READ

---

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