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

# Create Testset Variant

`POST /testsets/variants/`

Create a variant (history branch) on a testset.

Most testsets only need one variant. Create additional variants to
maintain parallel revision histories (for example, a staging branch
separate from the main one).

## Request body

- TestsetVariantCreateRequest
  - `testset_variant` TestsetVariantCreate, required
    - `testset_id` string, uuid, nullable
    - `artifact_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

- TestsetVariantResponse
  - `count` integer — 1 if a variant was returned, 0 otherwise.
  - `testset_variant` TestsetVariant
    - `testset_slug` string, nullable
    - `artifact_slug` string, nullable
    - `testset_id` string, uuid, nullable
    - `artifact_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-05-26** `27067a7f578f` — 1 breaking, 1 info
  - removed the success response with the status `201`
  - added the success response with the status `200`
- **2026-05-23** `2040366204e5` — 2 info
  - added the optional property `testset_variant/anyOf[subschema #1: TestsetVariant]/artifact_slug` to the response with the `201` status
  - added the optional property `testset_variant/anyOf[subschema #1: TestsetVariant]/testset_slug` to the response with the `201` status
- **2026-05-22** `67e2a3c6952d` — 2 warning
  - removed the optional property `testset_variant/anyOf[subschema #1: TestsetVariant]/artifact_slug` from the response with the `201` status
  - removed the optional property `testset_variant/anyOf[subschema #1: TestsetVariant]/testset_slug` from the response with the `201` status
- **2026-05-22** `ca3686e05842` — 2 info
  - added the optional property `testset_variant/anyOf[subschema #1: TestsetVariant]/artifact_slug` to the response with the `201` status
  - added the optional property `testset_variant/anyOf[subschema #1: TestsetVariant]/testset_slug` to the response with the `201` status
- **2026-05-19** `a7f9a6823230` — 2 warning
  - removed the optional property `support_id` from the response with the `201` status
  - removed the optional property `support_ts` from the response with the `201` status

[Full history](https://skmtc.dev/agenta-ai/apis/agenta-api/changes/testsets/variants/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/06e03dbce2be/schema)
