---
title: "Clone Chat"
method: POST
path: "/me/chats/{chat_id}/clone"
tags: ["User API"]
---

# Clone Chat

`POST /me/chats/{chat_id}/clone`

## Path parameters

- `chat_id` string, uuid, required

## Request body

- AgentRequestPartial
  - `id` string, uuid, nullable
  - `user_id` string, nullable
  - `original_chat_id` string, uuid, nullable
  - `title` string, nullable
  - `history` object[], nullable
  - `vars` object, nullable
  - `prompt` string, nullable
  - `public` boolean, nullable
  - `system_prompt` string, nullable
  - `model` string, nullable — Model name must start with one of ['@openai/', '@anthropic/', '@groq/', '@google/', '@togetherai/', '@openrouter/'].
  - `mcp_servers` string[], nullable
  - `tools` string[], nullable — List of tool slugs available to the agent
  - `slug` string, nullable
  - `price_in_cents` integer, nullable
  - `trial_period_in_days` integer, nullable
  - `upsell_description` UpsellDescription
    - `description` string, required
    - `use_cases` string[], required
  - `agent_builder_run_id` string, uuid, nullable
  - `kpis` string[], nullable
  - `kpi_values` object, nullable

## Response `200`

Successfully cloned chat

- AgentModel
  - `id` string, uuid, required
  - `prompt` string, nullable
  - `vars` object, nullable
  - `original_chat_id` string, uuid, nullable
  - `title` string, nullable
  - `history` object[], nullable
  - `public` boolean, nullable
  - `system_prompt` string, nullable
  - `model` string, nullable
  - `mcp_servers` string[], nullable
  - `tools` string[], nullable — List of tool slugs available to the agent
  - `slug` string, nullable
  - `price_in_cents` integer, nullable
  - `trial_period_in_days` integer, nullable
  - `upsell_description` UpsellDescription
    - `description` string, required
    - `use_cases` string[], required
  - `agent_builder_run_id` string, uuid, nullable
  - `count_runs` integer, nullable
  - `kpis` string[]
  - `kpi_values` object
  - `user_id` string, required
  - `created_at` string, date-time, nullable
  - `updated_at` string, date-time, nullable
  - `last_ran_at` string, date-time, nullable
  - `user_feedback` 'approved' | 'rejected' | 'pending'

## Other responses

- `403` — This chat is not public
- `404` — Agent not found
- `409` — A unique clone value conflicted; retry the request
- `422` — Validation Error

## Changes

- **2026-09-04** `fc441a13cd1f` — 4 info
  - added the new optional request property `anyOf[subschema #1: AgentRequestPartial]/kpi_values`
  - added the new optional request property `anyOf[subschema #1: AgentRequestPartial]/kpis`
  - added the optional property `kpi_values` to the response with the `200` status
  - added the optional property `kpis` to the response with the `200` status
- **2026-09-01** `a56cd4cee44b` — 1 info
  - added the non-success response with the status `409`

[Change history](https://skmtc.dev/toolhouse/apis/toolhouse-api/changes/me/chats/:chat_id/clone/post.md)

---

[API](https://skmtc.dev/toolhouse/apis/toolhouse-api.md) · [All operations](https://skmtc.dev/toolhouse/apis/toolhouse-api/llms.txt) · [OpenAPI document](https://skmtc.dev/toolhouse/apis/toolhouse-api/revisions/74c8636645b3?raw)
