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

# List test suites

> Lists the workspace's agent test suites, newest first. Optionally filter by `agent_id`. Powers the dashboard Test Runner's suite list. Scope `sessions:read`.



## OpenAPI

````yaml /api-reference/openapi.json get /agent-test-suites
openapi: 3.1.0
info:
  title: Lehar API
  version: v0
  description: >-
    Customer-facing REST API for the Lehar voice-AI platform. Platform-admin
    endpoints are intentionally excluded from this reference. Regenerate with
    `npm run sync:openapi`.
servers:
  - url: https://api.lehar.ai/ca/api/v0
security:
  - ApiKeyAuth: []
  - BearerAuth: []
paths:
  /agent-test-suites:
    get:
      tags:
        - Agent Testing
      summary: List test suites
      description: >-
        Lists the workspace's agent test suites, newest first. Optionally filter
        by `agent_id`. Powers the dashboard Test Runner's suite list. Scope
        `sessions:read`.
      operationId: list_suites_ca_api_v0_agent_test_suites_get
      parameters:
        - name: agent_id
          in: query
          required: false
          schema:
            type: string
          description: Filter to suites whose `agent_id` origin hint matches.
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            default: 50
            maximum: 100
          description: Items to return (max 100).
        - name: offset
          in: query
          required: false
          schema:
            type: integer
            default: 0
          description: Items to skip.
      responses:
        '200':
          description: Paginated test suites
          content:
            application/json:
              example:
                data:
                  - id: test_suite_01hzy8x2m4q7r8s9t0v1w2x3y4
                    agent_id: agent_sales_hi
                    name: Renewal objections
                    scenarios:
                      - label: Price objection
                        instructions: >-
                          You are a budget-conscious customer who thinks the
                          renewal price is too high. Push back on cost before
                          agreeing to anything.
                        agent_expectations: >-
                          Acknowledge the concern, explain the value, and offer
                          to book a callback.
                        judges:
                          - task_completion
                          - safety
                        runs: 2
                        max_turns: 8
                        variables:
                          callee_name: Jane
                    config:
                      judges:
                        - task_completion
                        - tool_use
                        - safety
                        - accuracy
                        - relevancy
                      variables:
                        company: Acme
                      max_parallel: 3
                    created_by_user_id: user_01EXAMPLE
                    created_at: '2026-05-22T10:00:00Z'
                    updated_at: '2026-05-22T10:00:00Z'
                pagination:
                  limit: 50
                  offset: 0
                  total: 1
        '400':
          description: >-
            `limit`/`offset` are not non-negative integers, or the authenticated
            context has no `customer_id` (platform staff must select a workspace
            via `X-Customer-ID`).
          content:
            application/json:
              example:
                error:
                  code: invalid_request
                  message: limit and offset must be non-negative integers
        '401':
          description: Missing or invalid credentials (code `unauthorized`).
        '403':
          description: >-
            The credential is missing the required `sessions:read` scope (code
            `forbidden`).
        '500':
          description: Unexpected server error (code `internal_error`).
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-KEY
    BearerAuth:
      type: http
      scheme: bearer

````