---
title: "Fork Flow"
method: POST
path: "/api/v1/flows/{flow_id}/fork"
tags: ["Flows"]
---

# Fork Flow

`POST /api/v1/flows/{flow_id}/fork`

## Request

- The document declares no server URL.
- Auth: one of:
  - OAuth 2
    - Password
    - Token URL: `api/v1/login`
  - API key in query parameter `x-api-key`
  - API key in header `x-api-key`

Create an inert copy of a flow, optionally carrying a caller-supplied graph.

Read access is deliberately enough: anyone who can open a flow can already
export it and import the result, so requiring write here would block the
conflict dialog's only exit without protecting anything. The copy is owned by
whoever forked it and inherits no exposure from the source.

## Path parameters

- `flow_id` string, uuid, required

## Request body

- FlowFork: What the caller may choose about a fork. Everything else is inherited or neutralised.
  - `data` object, nullable: Graph for the copy; the source graph when omitted
  - `name` string, nullable: Name for the copy; the source name plus a suffix by default

## Response `201`

Successful Response

- FlowRead
  - `a2a_card_overrides` object, nullable: User overrides for the generated A2A agent card (skill description, examples, tags)
  - `a2a_enabled` boolean, nullable: Can be exposed as an A2A agent (only meaningful when flow_type=agent)
  - `access_type` 'PRIVATE' | 'PUBLIC'
  - `action_description` string, nullable: The description of the action associated with the flow
  - `action_name` string, nullable: The name of the action associated with the flow
  - `data` object, nullable
  - `description` string, nullable
  - `endpoint_name` string, nullable
  - `flow_type` 'workflow' | 'agent'
  - `folder_id` string, uuid, nullable, required
  - `gradient` string, nullable
  - `icon` string, nullable
  - `icon_bg_color` string, nullable
  - `id` string, uuid, required
  - `is_component` boolean, nullable
  - `locked` boolean, nullable
  - `mcp_enabled` boolean, nullable: Can be exposed in the MCP server
  - `name` string, required
  - `name_key` string, nullable: Stable i18n key derived from the original English name
  - `tags` string[], nullable: The tags of the flow
  - `updated_at` string, date-time, nullable
  - `user_id` string, uuid, nullable, required
  - `version_token` string, uuid, nullable: Token identifying the version this response carries
  - `webhook` boolean, nullable: Can be used on the webhook endpoint
  - `workspace_id` string, uuid, nullable

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-21** `4349fbe90c64`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/langflow-ai/apis/langflow/changes/api/v1/flows/:flow_id/fork/post.md)

---

[API](https://skmtc.dev/langflow-ai/apis/langflow.md) - [All operations](https://skmtc.dev/langflow-ai/apis/langflow/llms.txt) - [OpenAPI document](https://skmtc.dev/langflow-ai/apis/langflow/revisions/4349fbe90c64?raw)
