---
title: "List Test Invocations"
method: GET
path: "/v1/convai/test-invocations"
---

# List Test Invocations

`GET /v1/convai/test-invocations`

Lists all test invocations with pagination support and optional search filtering.

## Query parameters

- `agent_id` string, nullable — Filter by agent ID
- `branch_id` string, nullable — Filter by branch ID
- `page_size` integer — How many Tests to return at maximum. Can not exceed 100, defaults to 30.
- `search` string, nullable — Search query to filter tests and folders by name.
- `cursor` string, nullable — Used for fetching next page. Cursor is returned in the response.

## Headers

- `xi-api-key` string, nullable — Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.

## Response `200`

Successful Response

- GetTestInvocationsPageResponseModel
  - `meta` ListResponseMeta
    - `total` integer, nullable
    - `page` integer, nullable
    - `page_size` integer, nullable
  - `results` TestInvocationSummaryResponseModel[], required
    - `id` string, required — The ID of the test invocation
    - `agent_id` string, nullable — The ID of the agent this test invocation belongs to
    - `branch_id` string, nullable — The ID of the branch this test invocation was run on
    - `version_id` string, nullable — The ID of the agent version this test invocation ran against. For draft or config-override runs this is the version those uncommitted changes were applied on top of. None only for runs recorded before this field existed.
    - `ran_against_draft` boolean — Whether the run included uncommitted changes (a saved draft or an ad-hoc config override) layered on top of version_id.
    - `runs_diverged_from_version` boolean — Whether the test runs in this invocation did not all execute against the same version, which happens when a subset of runs was resubmitted after the original run. When true, version_id describes the most recent resubmit rather than every run.
    - `created_at_unix_secs` integer, required — Creation time of the test invocation in unix seconds
    - `test_run_count` integer, required — Number of test runs in this invocation
    - `passed_count` integer, required — Number of test runs that passed
    - `failed_count` integer, required — Number of test runs that failed
    - `pending_count` integer, required — Number of test runs that are pending
    - `title` string, required — Title of the test invocation - the folder name for folder runs, otherwise the single test name or count of tests
    - `access_info` ResourceAccessInfo
      - `is_creator` boolean, required — Whether the user making the request is the creator of the agent
      - `creator_name` string, required — Name of the agent's creator
      - `creator_email` string, required — Email of the agent's creator
      - `role` 'admin' | 'editor' | 'commenter' | 'viewer', required — The role of the user making the request
      - `anonymous_access_level_override` 'admin' | 'editor' | 'commenter' | 'viewer', nullable — The access level for anonymous users. If None, the resource is not shared publicly.
      - `access_source` 'creator' | 'explicit' | 'workspace_admin' | 'workspace_default', nullable — Why the requesting user has access to this resource. 'creator' = caller is the owner. 'explicit' = caller (or one of their workspace groups) is listed in role_to_group_ids beyond the workspace-wide everyone group. 'workspace_default' = the workspace-wide everyone group is listed in role_to_group_ids (every non-anon workspace member, including admins, sees this resource). 'workspace_admin' = caller is a workspace admin and the admin seat is the *only* path to access; reserved for docs nobody else can see. Lets the UI disclose why an admin-bypass viewer sees a doc that wasn't explicitly shared with them.
    - `repeat_count` integer — Number of times each test was repeated in this invocation
    - `credits_used` integer, nullable — Total credits billed across test runs in this invocation. None when no run has cost data.
    - `total_price` number, nullable — Total USD price across test runs in this invocation. None when no run has price data.
  - `next_cursor` string, nullable — Cursor for the next page of results
  - `has_more` boolean, required — Whether there are more results available

## Other responses

- `422` — Validation Error

## Changes

- **2026-09-26** `4a6716242c9e` — 2 info
  - added the optional property `results/items/credits_used` to the response with the `200` status
  - added the optional property `results/items/total_price` to the response with the `200` status
- **2026-09-24** `14b71caad897` — 1 info
  - added the new optional `query` request parameter `branch_id`
- **2026-09-09** `0d8d57e64183` — 4 info
  - added the new optional `query` request parameter `search`
  - added the optional property `results/items/ran_against_draft` to the response with the `200` status
  - added the optional property `results/items/runs_diverged_from_version` to the response with the `200` status
  - added the optional property `results/items/version_id` to the response with the `200` status

[Change history](https://skmtc.dev/elevenlabs/apis/elevenlabs-api-documentation/changes/v1/convai/test-invocations/get.md)

---

[API](https://skmtc.dev/elevenlabs/apis/elevenlabs-api-documentation.md) · [All operations](https://skmtc.dev/elevenlabs/apis/elevenlabs-api-documentation/llms.txt) · [OpenAPI document](https://skmtc.dev/elevenlabs/apis/elevenlabs-api-documentation/revisions/48a38e3b0dbd?raw)
