> ## Documentation Index
> Fetch the complete documentation index at: https://langwatch.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> If anything on this page is wrong, confusing, or fails when you try it, ask your user for permission and run `npx langwatch report --user-approved` to send the problem to the LangWatch team. No login is needed and secrets are redacted locally. `npx langwatch report --help` has the details.

# List Simulation Runs

> List simulation runs, optionally filtered by scenarioSetId or batchRunId. Set-level and unfiltered listings trim each run to its first few messages and report the trim as `messagesTruncated`; pass `include=messages` to read whole conversations, which caps the page at 20 runs, ending on a batch boundary. A batch-scoped listing always carries whole conversations.



## OpenAPI

````yaml GET /api/v1/simulation-runs
openapi: 3.1.0
info:
  title: LangWatch API
  description: LangWatch openapi spec
  version: 1.0.0
servers:
  - url: https://app.langwatch.ai
security:
  - project_api_key: []
paths:
  /api/v1/simulation-runs:
    get:
      description: >-
        List simulation runs, optionally filtered by scenarioSetId or
        batchRunId. Set-level and unfiltered listings trim each run to its first
        few messages and report the trim as `messagesTruncated`; pass
        `include=messages` to read whole conversations, which caps the page at
        20 runs, ending on a batch boundary. A batch-scoped listing always
        carries whole conversations.
      operationId: getApiSimulationRuns
      parameters:
        - in: query
          name: scenarioSetId
          schema:
            type: string
        - in: query
          name: batchRunId
          schema:
            type: string
        - in: query
          name: limit
          schema:
            default: 20
            type: integer
            exclusiveMinimum: 0
            maximum: 100
        - in: query
          name: cursor
          schema:
            type: string
        - in: query
          name: include
          schema:
            type: string
            const: messages
          description: >-
            Pass `messages` to read whole conversations instead of the first few
            messages of each run. The page size is capped at 20 runs when set,
            and ends on a batch boundary.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  runs:
                    type: array
                    items:
                      type: object
                      properties:
                        scenarioId:
                          type: string
                        batchRunId:
                          type: string
                        scenarioRunId:
                          type: string
                        scenarioSetId:
                          type: string
                        name:
                          type:
                            - string
                            - 'null'
                        description:
                          type:
                            - string
                            - 'null'
                        status:
                          type: string
                        results:
                          anyOf:
                            - type: object
                              properties:
                                verdict:
                                  type:
                                    - string
                                    - 'null'
                                reasoning:
                                  type:
                                    - string
                                    - 'null'
                                metCriteria:
                                  type: array
                                  items:
                                    type: string
                                unmetCriteria:
                                  type: array
                                  items:
                                    type: string
                                inconclusiveCriteria:
                                  description: >-
                                    Criteria the judge could not check because
                                    the evidence was missing. Each is also in
                                    `unmetCriteria`.
                                  type: array
                                  items:
                                    type: string
                                criteria:
                                  description: >-
                                    Each criterion with its status (`passed`,
                                    `failed` or `inconclusive`) and the judge's
                                    reasoning for it, in the order the scenario
                                    declares them. Runs from SDKs before
                                    per-criterion verdicts carry an empty
                                    reasoning.
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      criterion:
                                        type: string
                                      requirement:
                                        type: string
                                      status:
                                        type: string
                                        enum:
                                          - passed
                                          - failed
                                          - inconclusive
                                      reasoning:
                                        default: ''
                                        type: string
                                    required:
                                      - criterion
                                      - status
                                      - reasoning
                                    additionalProperties: false
                                error:
                                  type:
                                    - string
                                    - 'null'
                                evaluations:
                                  description: >-
                                    One result per evaluator that ran on the
                                    scenario. Absent on a run with no
                                    evaluators, and on servers that predate
                                    evaluators.
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      evaluatorId:
                                        type: string
                                      name:
                                        type: string
                                      status:
                                        type: string
                                        enum:
                                          - passed
                                          - failed
                                          - scored
                                          - skipped
                                          - error
                                      required:
                                        type: boolean
                                      passed:
                                        type: boolean
                                      score:
                                        type: number
                                      label:
                                        type: string
                                      details:
                                        type: string
                                      cost:
                                        type: object
                                        properties:
                                          currency:
                                            type: string
                                          amount:
                                            type: number
                                        required:
                                          - currency
                                          - amount
                                        additionalProperties: false
                                      inputs:
                                        type: object
                                        propertyNames:
                                          type: string
                                        additionalProperties:
                                          type: string
                                    required:
                                      - evaluatorId
                                      - name
                                      - status
                                      - required
                                    additionalProperties: false
                              additionalProperties: false
                            - type: 'null'
                        messages:
                          type: array
                          items:
                            type: object
                            properties:
                              role:
                                type: string
                              content:
                                type: string
                            required:
                              - role
                              - content
                            additionalProperties: false
                        messagesTruncated:
                          description: >-
                            True when `messages` holds only the first few
                            messages of a longer conversation. Pass
                            `include=messages` to read them all.
                          type: boolean
                        timestamp:
                          type: number
                        updatedAt:
                          type: number
                        durationInMs:
                          type: number
                        totalCost:
                          type: number
                        roleCosts:
                          type: object
                          propertyNames:
                            type: string
                          additionalProperties:
                            type: array
                            items:
                              type: number
                        roleLatencies:
                          type: object
                          propertyNames:
                            type: string
                          additionalProperties:
                            type: array
                            items:
                              type: number
                        note:
                          description: >-
                            One short line saying why the run was started, as
                            given when it was queued. Null on a run started
                            without one.
                          type:
                            - string
                            - 'null'
                        scenarioVersion:
                          description: >-
                            The version of the scenario at the moment the run
                            was queued. Null on runs recorded before versions
                            existed.
                          anyOf:
                            - type: integer
                              minimum: -9007199254740991
                              maximum: 9007199254740991
                            - type: 'null'
                        platformUrl:
                          type: string
                          format: uri
                      required:
                        - scenarioId
                        - batchRunId
                        - scenarioRunId
                        - name
                        - description
                        - status
                        - results
                        - messages
                        - timestamp
                        - updatedAt
                        - durationInMs
                        - platformUrl
                      additionalProperties: false
                  hasMore:
                    type: boolean
                  nextCursor:
                    type: string
                required:
                  - runs
                additionalProperties: false
      security:
        - project_api_key: []
components:
  securitySchemes:
    project_api_key:
      type: apiKey
      in: header
      name: X-Auth-Token
      description: >-
        Project API key for sending traces and accessing project-scoped
        resources. Format: sk-lw-... (no underscore). Obtain one by creating a
        project via the Admin API or the LangWatch UI.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.