---
title: "GET /v2/list-test-runs/{test_case_batch_job_id}"
method: GET
path: "/v2/list-test-runs/{test_case_batch_job_id}"
---

# GET /v2/list-test-runs/{test_case_batch_job_id}

`GET /v2/list-test-runs/{test_case_batch_job_id}`

## Request

- Base URL: `https://api.retellai.com`
- URL: `https://api.retellai.com/v2/list-test-runs/{test_case_batch_job_id}`
- Auth: HTTP bearer

List test case jobs (test runs) for a batch test job with pagination

## Path parameters

- `test_case_batch_job_id` string, required

## Query parameters

- `limit` integer
- `pagination_key` string

## Response `200`

Test case jobs retrieved successfully

- object
  - `pagination_key` string: Pagination key for the next page.
  - `has_more` boolean, required: Whether more results are available.
  - `items` TestCaseJob[], required
    - `test_case_job_id` string, required: Unique identifier for the test case job
    - `status` 'pending' | 'in_progress' | 'pass' | 'fail' | 'error', required: Status of the test case job. `pending` means the run is queued but has not started yet; it becomes `in_progress` once a worker picks it up, then resolves to `pass`, `fail`, or `error`.
    - `test_case_definition_id` string, required: ID of the test case definition used
    - `test_case_definition_snapshot` TestCaseDefinition, required
      - `name` string, required: Name of the test case definition
      - `response_engine` union, required: Response engine for test cases. Custom LLM is not supported.
        - ResponseEngineRetellLm
          - `type` 'retell-llm', required: type of the Response Engine.
          - `llm_id` string, required: id of the Retell LLM Response Engine.
          - `version` number, nullable: Version of the Retell LLM Response Engine.
        - ResponseEngineConversationFlow
          - `type` 'conversation-flow', required: type of the Response Engine.
          - `conversation_flow_id` string, required: ID of the Conversation Flow Response Engine.
          - `version` number, nullable: Version of the Conversation Flow Response Engine.
      - `user_prompt` string, required: User prompt to simulate in the test case
      - `metrics` string[], required: Array of metric names to evaluate
      - `dynamic_variables` object, required: Dynamic variables to inject into the response engine
      - `tool_mocks` ToolMock[], required: Mock tool calls for testing
        - `tool_name` string, required: The tool's function name, not the tool ID, i.e. the name the LLM uses when it calls the tool (for example `check_availability_cal`, `book_appointment_cal`, or the name you gave a custom function).
        - `input_match_rule` union, required: Decides which calls to the tool this mock applies to, based on the arguments the LLM passes to the tool.
          - object
            - `type` 'any', required: Match every call to the tool, no matter what arguments were passed. Use this for a catch-all mock.
          - object
            - `type` 'partial_match', required: Match only calls whose arguments contain the values listed in `args`.
            - `args` object, required: Argument values the call must have to match. Only the fields you list here are checked, and each must equal the value in the actual call. Extra fields in the call are ignored, so this is a subset match.
        - `output` string, required: The tool result fed back to the LLM in place of the real tool's output. Should be a JSON string, the same shape the real tool would return.
        - `result` boolean, nullable: For tool calls like transfer_call that require a boolean result. Optional for most tools.
      - `llm_model` 'gpt-4.1' | 'gpt-4.1-mini' | 'gpt-5' | 'gpt-5-mini' | 'gpt-5-nano' | 'gpt-5.1' | 'gpt-5.2' | 'gpt-5.4' | 'gpt-5.4-mini' | 'gpt-5.4-nano' | 'gpt-5.5' | 'gpt-5.6-terra' | 'gpt-5.6-luna' | 'gpt-6-astra' | 'gpt-6-sol' | 'gpt-6.1-sol' | 'gpt-6.1-terra' | 'gpt-6-luna' | 'claude-4.6-sonnet' | 'claude-5-opus' | 'claude-5.5-opus' | 'claude-5-sonnet' | 'claude-5.5-sonnet' | 'claude-5.5-haiku' | 'claude-4.5-haiku' | 'gemini-3.0-flash' | 'gemini-3.1-flash-lite' | 'gemini-3.5-flash' | 'gemini-3.5-flash-lite' | 'gemini-3.6-flash' | 'gemini-3.7-flash' | 'gemini-3.8-flash' | 'gemini-4-argon', required: Available LLM models for agents.
      - `test_case_definition_id` string, required: Unique identifier for the test case definition
      - `type` 'simulation', required: Type of test case definition
      - `creation_timestamp` integer, required: Timestamp when the test case definition was created (milliseconds since epoch)
      - `user_modified_timestamp` integer, required: Timestamp when the test case definition was last modified (milliseconds since epoch)
    - `transcript_snapshot` object, nullable: Snapshot of the transcript generated during test execution. Can be either ConversationFlowPlaygroundSnapshot or RetellLlmPlaygroundSnapshot
    - `result_explanation` string, nullable: Explanation of the test result
    - `creation_timestamp` integer, required: Timestamp when the test case job was created (milliseconds since epoch)
    - `user_modified_timestamp` integer, required: Timestamp when the test case job was last modified (milliseconds since epoch)

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `404`: Not Found
- `429`: Too Many Requests
- `500`: Internal Server Error

## Changes

- **2026-10-26** `6e88894224e1`: 1 warning
  - added the new `gpt-6.1-terra` enum value to the `allOf[subschema #2]/items/items/test_case_definition_snapshot/allOf[#/components/schemas/TestCaseDefinitionInput]/llm_model` response property for the response status `200`
- **2026-10-16** `ca41f0dbb297`: 1 breaking, 18 warning, 7 info
  - added `subschema #1, subschema #2` to the `allOf[subschema #2]/items/items/test_case_definition_snapshot/allOf[#/components/schemas/TestCaseDefinitionInput]/tool_mocks/items/input_match_rule` response property `oneOf` list for the response status `200`
  - added the new `claude-5-opus` enum value to the `allOf[subschema #2]/items/items/test_case_definition_snapshot/allOf[#/components/schemas/TestCaseDefinitionInput]/llm_model` response property for the response status `200`
  - added the new `claude-5-sonnet` enum value to the `allOf[subschema #2]/items/items/test_case_definition_snapshot/allOf[#/components/schemas/TestCaseDefinitionInput]/llm_model` response property for the response status `200`
  - added the new `claude-5.5-haiku` enum value to the `allOf[subschema #2]/items/items/test_case_definition_snapshot/allOf[#/components/schemas/TestCaseDefinitionInput]/llm_model` response property for the response status `200`
  - …22 more
- …earlier changes not shown

[Operation history](https://skmtc.dev/retellai/apis/retell-sdk/changes/v2/list-test-runs/:test_case_batch_job_id/get.md)

---

[API](https://skmtc.dev/retellai/apis/retell-sdk.md) - [All operations](https://skmtc.dev/retellai/apis/retell-sdk/llms.txt) - [OpenAPI document](https://skmtc.dev/retellai/apis/retell-sdk/revisions/e482acaa292c?raw)
