---
title: "Duplicate a form"
method: POST
path: "/api/v1/manage/forms/{form}/duplicate"
tags: ["Forms"]
---

# Duplicate a form

`POST /api/v1/manage/forms/{form}/duplicate`

## Request

- Base URL: `https://fillo.so`
- URL: `https://fillo.so/api/v1/manage/forms/{form}/duplicate`
- Auth: HTTP bearer

Copy a form into the same project as a fresh draft. The copy collects nothing until it is published, which keeps this routine (Tier A). A form whose deletion has already started is 410 here and on the CLI twin — one check, inside the shared core. Scope: forms:write.

## Path parameters

- `form` string, required

## Request body

- object
  - `name` string: Defaults to "<source name> (copy)".

## Response `201`

The new draft.

- object
  - `id` string, required
  - `name` string, required
  - `slug` string, required
  - `status` 'draft', required
  - `source` string, required: The form this copy came from.
  - `url` string, uri, required

## Other responses

- `400`: Invalid request (e.g. a body on a GET/DELETE, or a missing required query parameter).
- `401`: Missing, malformed, unknown, revoked, or expired key.
- `403`: The key is valid but lacks the required scope.
- `404`: No such resource in this project (returned instead of 403 for ids in other projects).
- `410`: This form is being deleted and can no longer be copied.
- `413`: The request body exceeded the 16 KiB management cap.
- `429`: Per-key (120/min), per-workspace (240/min), or per-IP (300/min) rate limit exceeded. Retry after the Retry-After header.

---

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