Duplicate Model
Page Outline
Creates a full copy of an existing model, including its configuration, tags, and linked dataset reference. The duplicate starts as a fresh draft with no training history.
Base Path: /api/v1/models
Method: POST
Path: /{model_id}/duplicate
Auth: Requires a valid Bearer token (Authorization: Bearer <JWT>)
Path Parameters
| Parameter | Type | Description |
|---|---|---|
model_id | string | Unique identifier of the model to duplicate |
Request Body
{
"name": "My Churn Predictor (Copy)",
"description": "Experimental copy for feature engineering tests."
}
| Field | Type | Required | Description |
|---|---|---|---|
name | string | ✅ | Name for the duplicated model (must be unique within org) |
description | string | ❌ | Optional description for the duplicate |
Behavior
- Copies
model_type,task_type,config, andtagsfrom the source model. - The linked
dataset_idreference is copied, but the dataset is not re-validated at duplication time. - Version history, training runs, metrics, and audit logs are not copied — the duplicate is a clean slate.
- An audit log entry is written with action
model.duplicated, referencing both the sourcemodel_idand the new model's ID. - Returns
HTTP 404if the source model is not found; returnsHTTP 409if the requested name conflicts.
Response
Returns the new Model object representing the duplicate.
{
"id": "mdl-9c2b47de",
"name": "My Churn Predictor (Copy)",
"source_model_id": "mdl-7f3a19bc",
"model_type": "auto",
"task_type": "classification",
"status": "draft",
"version": 1,
"created_at": "2026-03-13T16:05:00Z"
}