---
title: "Duplicate a workflow"
method: POST
path: "/v1/workflows/{workflowId}/duplicate"
tags: ["Workflows"]
---

# Duplicate a workflow

`POST /v1/workflows/{workflowId}/duplicate`

Create an independent copy of a workflow's graph, name, description, and account binding. The copy is created in `draft` status with fresh execution counters and a new id. Execution history is NOT copied. Useful for branching off a known-good workflow before making experimental edits.

## Path parameters

- `workflowId` string, required

## Response `201`

Workflow duplicated

- object
  - `success` boolean
  - `workflow` object
    - `id` string
    - `name` string
    - `description` string
    - `status` 'draft'
    - `platform` string
    - `accountId` string
    - `profileId` string
    - `entryNodeId` string, nullable
    - `nodeCount` integer
    - `createdAt` string, date-time

## Other responses

- `400` — Invalid request
- `401` — Unauthorized
- `404` — Resource not found

## Changes

- **2026-09-16** `3e6ddf2a99ea` — 1 info
  - added the optional property `details/budgetScope` to the response with the `400` status
- **2026-09-15** `0dba7d004d75` — 2 info
  - added the optional property `details/quotaExhausted` to the response with the `400` status
  - added the optional property `details/quotaScope` to the response with the `400` status

[Change history](https://skmtc.dev/zernio/apis/zernio-api/changes/v1/workflows/:workflowId/duplicate/post.md)

---

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