Créer un formulaire
Crée un brouillon à partir de `document`, d'un `starter`, ou d'un formulaire à un seul champ e-mail si vous n'envoyez ni l'un ni l'autre, et renvoie le formulaire entier. Envoyez `publish: true` pour le mettre en ligne dans le même appel.
Exécute le véritable appel sur votre espace de travail.
POST /forms
Crée un brouillon à partir de document, d'un starter, ou d'un formulaire à un seul champ e-mail si vous n'envoyez ni l'un ni l'autre, et renvoie le formulaire entier. Envoyez publish: true pour le mettre en ligne dans le même appel.
Exemple
Nécessite forms:write, et aussi emails:send quand l'appel active le double opt-in, désigne un expéditeur ou définit l'e-mail de confirmation.
curl -X POST "$OE/forms" -H "$AUTH" -H 'content-type: application/json' -d '{ "name": "Newsletter sign-up", "starter": "newsletter", "settings": { "audienceIds": ["aud_4c1b8e2a7d9f05c36b4e8a71"], "doubleOptIn": true, "senderAddress": "[email protected]" }, "publish": true}'{ "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"}settings accepte n'importe quel sous-ensemble des paramètres, et les autres gardent leur valeur par défaut.
Chaque audience de settings.audienceIds, et d'un champ audiences, doit être une audience de cet espace de travail à laquelle vous avez accès, sinon la réponse est 404 audience_not_found.
Un formulaire en double opt-in a besoin de settings.senderAddress, une adresse depuis laquelle vous avez le droit d'envoyer. Un expéditeur qui ne peut pas envoyer est refusé avec 422 form_sender_refused.
Quand publish vaut true et que le formulaire ne peut pas être publié, rien n'est créé.
Un espace de travail peut contenir 100 formulaires par défaut. Le suivant est refusé avec 422 workspace_limit_reached.