Update a form
Authorization
ApiKeyAuth API key from Settings → API Keys.
In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
1 <= propertiesResponse Body
application/json
application/json
application/json
application/json
curl -X PATCH "https://example.com/api/v1/forms/string" \ -H "Content-Type: application/json" \ -d '{ "title": "Book a trial class", "fields": [ { "key": "parent_name", "type": "text", "label": "Your name", "required": true }, { "key": "parent_email", "type": "email", "label": "Email", "required": true }, { "key": "heard_from", "type": "text", "label": "How did you hear about us?" } ] }'{ "id": "cm4frm2xy0001kp04a7c9v1de", "title": "Book a trial class", "status": "published", "version": 2, "warnings": [ "Removed field \"message\".", "Dropped 1 conditional logic rule(s) that depended on a removed field." ]}Get a form GET
Returns the form with its current **draft** fields — what a publish would make live, which is also what you just PATCHed.
Delete a form DELETE
Moves the form to the trash and closes it, so the public link stops collecting straight away. Responses are kept. A trashed form is no longer addressable through this API — restore it from the dashboard. Pass `permanent=1` to destroy the form and every response it holds instead. That cannot be undone.