Ein Formular aktualisieren
Eine partielle Aktualisierung. `document` ersetzt den Entwurf vollständig, und ein Live-Formular zeigt weiter seine veröffentlichte Fassung, bis Sie veröffentlichen. `settings` wird Feld für Feld zusammengeführt und gilt sofort.
Führt den echten Aufruf in Ihrem Workspace aus.
PATCH /forms/{id}
Eine partielle Aktualisierung. document ersetzt den Entwurf vollständig, und ein Live-Formular zeigt weiter seine veröffentlichte Fassung, bis Sie veröffentlichen. settings wird Feld für Feld zusammengeführt und gilt sofort.
Beispiel
Erfordert forms:write und außerdem emails:send, wenn der Aufruf Double-Opt-in einschaltet, einen Absender angibt oder die Bestätigungs-E-Mail ändert. Senden Sie das gelesene updatedAt als expectedUpdatedAt: Hat jemand das Formular zwischendurch gespeichert, wird Ihre Änderung abgelehnt, statt die Speicherung der anderen Person zu überschreiben.
curl -X PATCH "$OE/forms/frm_3b9d2e7a1c4f80d56e2a9b14" -H "$AUTH" -H 'content-type: application/json' -d '{ "settings": { "successAction": "redirect", "redirectUrl": "https://acme.com/thanks" }, "expectedUpdatedAt": "2026-09-12T08:00:00.000Z"}'{ "object": "form", "id": "frm_3b9d2e7a1c4f80d56e2a9b14", "name": "Newsletter sign-up", "description": null, "status": "live", "url": "https://openemail.uk/form/frm_3b9d2e7a1c4f80d56e2a9b14", "subscribeUrl": "https://api.openemail.uk/subscribe/frm_3b9d2e7a1c4f80d56e2a9b14", "audienceIds": ["aud_4c1b8e2a7d9f05c36b4e8a71"], "doubleOptIn": true, "hasUnpublishedChanges": true, "document": { "fields": [ { "id": "fld_k2m8q4w9z1x7", "type": "email", "key": "email", "label": "Email", "placeholder": "[email protected]", "help": null, "required": true, "defaultValue": null, "options": [], "mapsTo": "email", "width": "full", "minLength": null, "maxLength": null, "min": null, "max": null } ], "copy": { "title": "Join our list", "description": "News from us, about once a month.", "submitLabel": "Subscribe", "successTitle": "You are on the list", "successMessage": "Thanks for signing up.", "pendingTitle": "Check your inbox", "pendingMessage": "Open the email we sent and confirm to finish.", "closedTitle": "This form is closed", "closedMessage": "It is not taking new sign-ups right now.", "footer": null }, "style": { "accent": "#18181b", "background": "#f4f4f5", "surface": "#ffffff", "text": "#18181b", "font": "system", "radius": "md", "width": "normal", "layout": "card", "align": "left", "logoUrl": null } }, "publishedDocument": { "fields": ["…"], "copy": { "title": "Join the list" }, "style": { "accent": "#18181b" } }, "settings": { "audienceIds": ["aud_4c1b8e2a7d9f05c36b4e8a71"], "doubleOptIn": true, "senderAddress": "[email protected]", "confirmSubject": "Please confirm your subscription", "confirmMessage": "Confirm your email address to start getting our messages.", "confirmButton": "Confirm my subscription", "successAction": "message", "redirectUrl": null, "notifyAddresses": ["[email protected]"] }, "audiences": [{ "id": "aud_4c1b8e2a7d9f05c36b4e8a71", "name": "Newsletter", "builtin": false }], "senderIssue": null, "senderProblem": null, "stats": { "views": 1840, "submissions": 212, "added": 198, "pending": 14, "lastSubmittedAt": "2026-09-30T16:42:11.000Z" }, "publishedAt": "2026-09-12T08:00:00.000Z", "createdAt": "2026-09-10T14:20:00.000Z", "updatedAt": "2026-09-12T08:00:00.000Z"}Ein veraltetes expectedUpdatedAt ergibt ein 409 version_conflict, und nichts wird geschrieben. Lesen Sie das Formular erneut und nehmen Sie die Änderung noch einmal vor.
Ein Wert im falschen Format, etwa eine Farbe, die nicht #rrggbb ist, oder eine redirectUrl, die keine http- oder https-URL ist, ergibt ein 422 invalid_parameter, oder unknown_parameter bei einem Schlüssel, den der Body nicht annimmt. Verletzen Dokument oder Einstellungen im Zusammenspiel eine Regel, ergibt das ein 422 invalid_form. Beide nennen das Feld in param, etwa document.fields.2.key oder settings.redirectUrl.
Um ein Feld des Dokuments zu ändern, lesen Sie das Formular, ändern Sie es und senden Sie das ganze document zurück.