---
title: "Fold a superseded form's replies into this one"
method: POST
path: "/sites/{siteId}/forms/{formId}/merge"
tags: ["Form replies"]
---

# Fold a superseded form's replies into this one

`POST /sites/{siteId}/forms/{formId}/merge`

## Request

- Base URL: `https://api.nippy.host`
- URL: `https://api.nippy.host/sites/{siteId}/forms/{formId}/merge`
- Auth: `bearer` (a scheme the document does not define)

Editing a form changes its fields, and therefore its identity, so the replies it had already collected stay on the older record. This moves them across. Owner-initiated by design: the match is a heuristic and the merge cannot be undone.

## Path parameters

- `siteId` string, required
- `formId` string, required

## Response `200`

- APISiteForm
  - `id` string, required: Form UUID
  - `siteId` string, required: Site UUID this form belongs to
  - `name` string, required: Display name — derived from a nearby heading or the page path, or set by the owner.
  - `pagePath` string, required: Path of the page the form appears on
  - `fieldLabels` string[], required: Field labels as last seen, in the order they appear.
  - `captureEnabled` boolean, required: Whether replies to this form are stored. Defaults to whether the form looks like a way to contact the owner; the owner decides from then on.
  - `notifyEveryReply` boolean, required: Whether the owner asked to be emailed about every reply to this form, not just the first. Paid plans only; replies are saved on every plan.
  - `submissionCount` number, required: Number of replies stored for this form
  - `lastSubmissionAt` string, nullable, required: ISO timestamp of the most recent reply, or null
  - `supersedesFormId` string, nullable, required: When this form replaced an earlier one whose fields differed, the id of that earlier form. Its replies are still stored against it; merging is offered rather than done automatically, because the match is a heuristic and a merge cannot be undone. Null when there is nothing to merge.
  - `createdAt` string, required: ISO timestamp the form was first seen

## Other responses

- `400`: This form has nothing to merge
- `401`: Not authenticated
- `403`: You do not own this site
- `404`: Site or form not found

---

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