---
title: "Fork Application Variant"
method: POST
path: "/applications/variants/fork"
tags: ["Applications"]
---

# Fork Application Variant

`POST /applications/variants/fork`

Fork an existing variant into a new variant on the same application.

Use this to experiment without touching the source variant's history.
The fork copies the source variant's revisions up to the specified
revision (or tip) into the new variant, then commits the supplied
`revision` object on top. Both `variant` and `revision` sub-objects
in the request must be present; the server returns `count: 0` when
either is missing. Returns `400 Bad Request` if the fork target is
invalid (for example, the source variant or revision cannot be
located in this application's lineage).

## Query parameters

- `application_variant_id` string, uuid, nullable

## Request body

- ApplicationVariantForkRequest
  - `application_variant` ApplicationVariantFork, required
    - `flags` ApplicationFlags — Legacy full application flag set.
      - `is_application` boolean
      - `is_evaluator` boolean
      - `is_snippet` boolean
      - `is_managed` boolean
      - `is_custom` boolean
      - `is_llm` boolean
      - `is_hook` boolean
      - `is_code` boolean
      - `is_match` boolean
      - `is_feedback` boolean
      - `is_agent` boolean
      - `is_skill` boolean
      - `is_chat` boolean
      - `has_url` boolean
      - `has_script` boolean
      - `has_handler` boolean
      - `is_static` boolean
    - `tags` object, nullable
    - `meta` object, nullable
    - `name` string, nullable
    - `description` string, nullable
    - `slug` string, nullable
  - `application_variant_ref` Reference, required
    - `version` string, nullable
    - `slug` string, nullable
    - `id` string, uuid, nullable
  - `application_revision_ref` Reference
    - `version` string, nullable
    - `slug` string, nullable
    - `id` string, uuid, nullable

## Response `200`

Successful Response

- ApplicationVariantResponse — Single-variant response envelope.
  - `count` integer — `1` when a variant was found, `0` otherwise.
  - `application_variant` ApplicationVariant
    - `application_slug` string, nullable
    - `workflow_slug` string, nullable
    - `application_id` string, uuid, nullable
    - `workflow_id` string, uuid, nullable
    - `artifact_slug` string, nullable
    - `artifact_id` string, uuid, nullable
    - `flags` ApplicationVariantFlags
      - `is_application` boolean
      - `is_evaluator` boolean
      - `is_snippet` boolean
    - `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

---

[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/revisions/d43a05d98a9b/schema)
