---
title: "Query Testsets"
method: POST
path: "/testsets/query"
tags: ["Testsets"]
---

# Query Testsets

`POST /testsets/query`

List and filter testset artifacts.

Follows the shared query pattern: attribute filters on the testset
body, optional `testset_refs` to restrict by id/slug, cursor-based
pagination via `windowing`. Only artifact rows are returned — no
testcases. See the Query Pattern guide for the full body shape.

## Request body

- TestsetQueryRequest
  - `testset` TestsetQuery
    - `folder_id` string, uuid, nullable
    - `flags` TestsetFlags — Placeholder for testset-level flags. This model is intentionally empty but kept as a dedicated type so that: - existing references to `flags: Optional[TestsetFlags]` remain valid, and - structured flags can be added here in the future without breaking the surrounding DTOs.
    - `tags` object, nullable
    - `meta` object, nullable
    - `name` string, nullable
    - `description` string, nullable
    - `slug` string, nullable
    - `slugs` string[], nullable
  - `testset_refs` Reference[], nullable — Restrict the query to specific testsets by reference (id or slug).
    - `version` string, nullable
    - `slug` string, nullable
    - `id` string, uuid, nullable
  - `include_archived` boolean, nullable — Include soft-deleted testsets.
  - `windowing` Windowing
    - `newest` string, date-time, nullable
    - `oldest` string, date-time, nullable
    - `next` string, uuid, nullable
    - `limit` integer, nullable
    - `order` 'ascending' | 'descending', nullable
    - `interval` integer, nullable
    - `rate` number, nullable

## Response `200`

Successful Response

- TestsetsResponse
  - `count` integer — Number of testsets returned on this page.
  - `testsets` Testset[] — Testset artifacts matching the query, without testcases.
    - `folder_id` string, uuid, nullable
    - `flags` TestsetFlags — Placeholder for testset-level flags. This model is intentionally empty but kept as a dedicated type so that: - existing references to `flags: Optional[TestsetFlags]` remain valid, and - structured flags can be added here in the future without breaking the surrounding DTOs.
    - `tags` object, nullable
    - `meta` object, nullable
    - `name` string, nullable
    - `description` string, nullable
    - `created_at` string, date-time, nullable
    - `updated_at` string, date-time, nullable
    - `deleted_at` string, date-time, nullable
    - `created_by_id` string, uuid, nullable
    - `updated_by_id` string, uuid, nullable
    - `deleted_by_id` string, uuid, nullable
    - `slug` string, nullable
    - `id` string, uuid, nullable
  - `windowing` Windowing
    - `newest` string, date-time, nullable
    - `oldest` string, date-time, nullable
    - `next` string, uuid, nullable
    - `limit` integer, nullable
    - `order` 'ascending' | 'descending', nullable
    - `interval` integer, nullable
    - `rate` number, nullable

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/agenta-ai/apis/agenta-api.md) · [All operations](https://skmtc.net/agenta-ai/apis/agenta-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/agenta-ai/agenta-api/versions/ea6421d829f1/schema)
