Aller à la documentation
API

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.

POST/forms

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
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}'
Réponse
{  "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.

Votre boîte de réception,
à vos conditions.

L’infrastructure e-mail pour les entreprises, l’IA, les agents et le courrier personnel. Conçue pour l’échelle, la confidentialité et le contrôle. Tout ce que l’e-mail aurait dû avoir dès le premier jour.

© 2026 OpenEmail. Tous droits réservés.