---
title: "Create Testset"
method: POST
path: "/preview/testsets/"
tags: ["Testsets"]
---

# Create Testset

`POST /preview/testsets/`

## Query parameters

- `testset_id` string, uuid, nullable

## Request body

- TestsetCreateRequest
  - `testset` TestsetCreate, required
    - `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

## Response `200`

Successful Response

- TestsetResponse
  - `count` integer
  - `testset` Testset
    - `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

## Other responses

- `422` — Validation Error

## Changes

- **2026-02-13** `72fe88316d15` — 4 warning, 4 info
  - removed the request property `testset/flags/anyOf[subschema #1: TestsetFlags]/has_testcases`
  - removed the request property `testset/flags/anyOf[subschema #1: TestsetFlags]/has_traces`
  - removed the optional property `testset/anyOf[subschema #1: Testset]/flags/anyOf[subschema #1: TestsetFlags]/has_testcases` from the response with the `200` status
  - removed the optional property `testset/anyOf[subschema #1: Testset]/flags/anyOf[subschema #1: TestsetFlags]/has_traces` from the response with the `200` status
  - …4 more
- **2026-01-14** `53da4c9de2b7` — 1 breaking, 1 info
  - request property `testset/tags/anyOf[subschema #1]/additionalProperties/` list-of-types was narrowed by removing types `integer, null and number` from media type `application/json`
  - response property `testset/anyOf[subschema #1: Testset]/tags/anyOf[subschema #1]/additionalProperties/` list-of-types was narrowed by removing types `integer, null and number` from media type `application/json` of response `200`
- **2025-11-05** `e62506c24377` — 1 breaking, 9 warning, 7 info
  - the response property `count` became optional for the status `200`
  - removed the request property `testset/created_at`
  - removed the request property `testset/created_by_id`
  - removed the request property `testset/deleted_at`
  - …13 more
- **2025-06-27** `e3e84db47198` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/agenta-ai/apis/agenta-api/changes/preview/testsets/post.md)

---

[API](https://skmtc.dev/agenta-ai/apis/agenta-api.md) · [All operations](https://skmtc.dev/agenta-ai/apis/agenta-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/agenta-ai/agenta-api/revisions/72fe88316d15/schema)
