---
title: "Get Simulation Run Item"
method: GET
path: "/eval/simulation/run/{id}/item/{itemId}"
tags: ["Simulation Runs", "Simulation Run Items"]
---

# Get Simulation Run Item

`GET /eval/simulation/run/{id}/item/{itemId}`

## Path parameters

- `id` string, required
- `itemId` string, required

## Response `200`

- SimulationRunItem
  - `id` string, uuid, required — This is the unique identifier for the simulation run item.
  - `orgId` string, uuid, required — This is the unique identifier for the organization.
  - `simulationId` string, uuid, required — This is the ID of the simulation this run belongs to.
  - `status` 'queued' | 'running' | 'evaluating' | 'passed' | 'failed' | 'canceled', required — This is the current status of the run.
  - `queuedAt` string, date-time, required — This is the ISO 8601 date-time string of when the run was queued.
  - `startedAt` string, date-time — This is the ISO 8601 date-time string of when the run started.
  - `completedAt` string, date-time — This is the ISO 8601 date-time string of when the run completed.
  - `failedAt` string, date-time — This is the ISO 8601 date-time string of when the run failed.
  - `canceledAt` string, date-time — This is the ISO 8601 date-time string of when the run was canceled.
  - `failureReason` string — This is the reason for failure.
  - `callId` string, uuid — This is the ID of the target Vapi call (the assistant being tested).
  - `createdAt` string, date-time, required — This is the ISO 8601 date-time string of when the run item was created.
  - `updatedAt` string, date-time, required — This is the ISO 8601 date-time string of when the run item was last updated.
  - `runId` string, uuid — This is the ID of the parent run (batch/group).
  - `hooks` union[] — Hooks configured for this simulation run item
    - union
      - SimulationHookCallStarted
        - `on` 'simulation.run.started', required
        - `do` SimulationHookWebhookAction[], required
          - `type` 'webhook', required
          - `server` Server
            - `timeoutSeconds` number — This is the timeout in seconds for the request. Defaults to 20 seconds. @default 20
            - `credentialId` string — The credential ID for server authentication
            - `staticIpAddressesEnabled` boolean — If enabled, requests will originate from a static set of IPs owned and managed by Vapi. @default false
            - `encryptedPaths` string[] — This is the paths to encrypt in the request body if credentialId and encryptionPlan are defined.
            - `url` string — This is where the request will be sent.
            - `headers` object — These are the headers to include in the request. Each key-value pair represents a header name and its value. Note: Specifying an Authorization header here will override the authorization provided by the `credentialId` (if provided). This is an anti-pattern and should be avoided outside of edge case scenarios.
            - `backoffPlan` BackoffPlan
              - …
          - `include` SimulationHookInclude
            - `transcript` boolean — Include transcript in the hook payload
            - `messages` boolean — Include messages in the hook payload
            - `recordingUrl` boolean — Include recordingUrl in the hook payload
      - SimulationHookCallEnded
        - `on` 'simulation.run.ended', required
        - `do` SimulationHookWebhookAction[], required
          - `type` 'webhook', required
          - `server` Server
            - `timeoutSeconds` number — This is the timeout in seconds for the request. Defaults to 20 seconds. @default 20
            - `credentialId` string — The credential ID for server authentication
            - `staticIpAddressesEnabled` boolean — If enabled, requests will originate from a static set of IPs owned and managed by Vapi. @default false
            - `encryptedPaths` string[] — This is the paths to encrypt in the request body if credentialId and encryptionPlan are defined.
            - `url` string — This is where the request will be sent.
            - `headers` object — These are the headers to include in the request. Each key-value pair represents a header name and its value. Note: Specifying an Authorization header here will override the authorization provided by the `credentialId` (if provided). This is an anti-pattern and should be avoided outside of edge case scenarios.
            - `backoffPlan` BackoffPlan
              - …
          - `include` SimulationHookInclude
            - `transcript` boolean — Include transcript in the hook payload
            - `messages` boolean — Include messages in the hook payload
            - `recordingUrl` boolean — Include recordingUrl in the hook payload
  - `iterationNumber` number — This is the iteration number (1-indexed) when run with iterations > 1.
  - `sessionId` string, uuid — This is the session ID for chat-based simulations (webchat transport).
  - `scenarioId` string, uuid — This is the scenario ID at run creation time.
  - `personalityId` string, uuid — This is the personality ID at run creation time.
  - `metadata` SimulationRunItemMetadata
    - `assistant` object — This is a snapshot of the assistant at run creation time.
    - `squad` object — This is a snapshot of the squad at run creation time.
    - `scenario` object — This is a snapshot of the scenario at run creation time.
    - `personality` object — This is a snapshot of the personality at run creation time.
    - `simulation` object — This is a snapshot of the simulation at run creation time.
    - `call` SimulationRunItemCallMetadata
      - `transcript` string — This is the transcript of the conversation.
      - `messages` object[] — This is the list of conversation messages in OpenAI format.
      - `recordingUrl` string — This is the URL to the call recording.
      - `monitor` SimulationRunItemCallMonitor
        - `listenUrl` string — This is the WebSocket URL to listen to the live call audio (combined both parties).
    - `hooks` object — Hook execution state for this run item (used for idempotency + debugging).
  - `results` SimulationRunItemResults
    - `evaluations` StructuredOutputEvaluationResult[], required — This is the list of results from structured output evaluations.
      - `structuredOutputId` string, required — This is the ID of the structured output that was evaluated. Will be 'inline' for inline structured output definitions.
      - `name` string, required — This is the name of the structured output.
      - `path` string — This is the optional dot-notation path evaluated within an object structured output.
      - `description` string — This is the structured output description captured when the evaluation ran.
      - `schema` JsonSchema
        - `type` 'string' | 'number' | 'integer' | 'boolean' | 'array' | 'object', required — This is the type of output you'd like. `string`, `number`, `integer`, `boolean` are the primitive types and should be obvious. `array` and `object` are more interesting and quite powerful. They allow you to define nested structures. For `array`, you can define the schema of the items in the array using the `items` property. For `object`, you can define the properties of the object using the `properties` property.
        - `items` JsonSchema — recursive
        - `properties` object — This is required if the type is "object". This specifies the properties of the object. This is a map of property names to JsonSchema objects.
        - `description` string — This is the description to help the model understand what it needs to output.
        - `pattern` string — This is the pattern of the string. This is a regex that will be used to validate the data in question. To use a common format, use the `format` property instead. OpenAI documentation: https://platform.openai.com/docs/guides/structured-outputs#supported-properties
        - `format` 'date-time' | 'time' | 'date' | 'duration' | 'email' | 'hostname' | 'ipv4' | 'ipv6' | 'uuid' — This is the format of the string. To pass a regex, use the `pattern` property instead. OpenAI documentation: https://platform.openai.com/docs/guides/structured-outputs?api-mode=chat&type-restrictions=string-restrictions
        - `required` string[] — This is a list of properties that are required. This only makes sense if the type is "object".
        - `enum` string[] — This array specifies the allowed values that can be used to restrict the output of the model.
        - `title` string — This is the title of the schema.
      - `extractedValue` union, required — This is the value extracted from the call by the structured output.
        - number
        - string
        - boolean
      - `expectedValue` union, required — This is the expected value that was defined in the evaluation plan.
        - number
        - string
        - boolean
      - `comparator` '=' | '!=' | '>' | '<' | '>=' | '<=', required — This is the comparison operator used for evaluation.
      - `passed` boolean, required — This indicates whether the evaluation passed (extracted value matched expected value using comparator).
      - `required` boolean, required — This indicates whether this evaluation was required for the simulation to pass.
      - `error` string — This contains any error that occurred during extraction.
      - `isSkipped` boolean — This indicates whether this evaluation was skipped (e.g., multimodal in chat mode).
      - `skipReason` string — This contains the reason for skipping the evaluation.
    - `passed` boolean, required — This indicates whether all required evaluations passed.
    - `latencyMetrics` LatencyMetrics
      - `turnCount` number, required — This is the number of conversation turns.
      - `avgTurn` number — This is the average total turn latency in milliseconds.
      - `avgTranscriber` number — This is the average transcriber latency in milliseconds.
      - `avgModel` number — This is the average LLM/model latency in milliseconds.
      - `avgVoice` number — This is the average voice/TTS latency in milliseconds.
      - `avgEndpointing` number — This is the average endpointing latency in milliseconds.
  - `improvementSuggestions` SimulationRunItemImprovements
    - `analysis` string, required — This is a summary analysis of why evaluations failed.
    - `systemPromptSuggestions` SimulationRunItemImprovementSuggestion[], required — This is the list of suggestions for improving the system prompt.
      - `issue` string, required — This is the issue identified.
      - `suggestion` string, required — This is the suggested improvement.
    - `toolSuggestions` SimulationRunItemImprovementSuggestion[], required — This is the list of suggestions for improving tools.
      - `issue` string, required — This is the issue identified.
      - `suggestion` string, required — This is the suggested improvement.
    - `scenarioSuggestions` SimulationRunItemImprovementSuggestion[], required — This is the list of suggestions for improving the scenario/evaluation plan.
      - `issue` string, required — This is the issue identified.
      - `suggestion` string, required — This is the suggested improvement.
    - `suggestedSystemPrompt` string — This is a complete revised system prompt if major changes are needed.
  - `configurations` SimulationRunConfiguration
    - `transport` SimulationRunTransportConfiguration
      - `provider` 'vapi.websocket' | 'vapi.webchat', required — Transport provider for the simulation run

---

[API](https://skmtc.dev/vapiai/apis/vapi-api.md) · [All operations](https://skmtc.dev/vapiai/apis/vapi-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/vapiai/vapi-api/revisions/872ff45af53b/schema)
