API Formulaires
Créer, récupérer, mettre à jour, supprimer, publier et dupliquer des formulaires.
L'API Formulaires vous permet de gérer vos formulaires NueForm de manière programmatique. Vous pouvez lister, créer, récupérer, mettre à jour, supprimer, publier, dépublier et dupliquer des formulaires.
Tous les corps de requête et de réponse utilisent des noms de champs en snake_case.
Lister les formulaires
/api/v1/formsRenvoie une liste paginée des formulaires auxquels l'utilisateur authentifié a accès, incluant les formulaires personnels et les formulaires des équipes auxquelles l'utilisateur appartient.
Paramètres de requête
pageintegerNuméro de page (par défaut : 1)
per_pageintegerRésultats par page (par défaut : 50)
searchstringFiltrer les formulaires par titre (correspondance partielle insensible à la casse)
team_idstringRenvoyer uniquement les formulaires appartenant à cette équipe
publishedbooleanFiltrer par statut de publication (true ou false)
Réponse
{
"forms": [
{
"id": "665a1b2c3d4e5f6a7b8c9d0e",
"title": "Customer Feedback Survey",
"description": "Quarterly satisfaction survey for Q1 2026",
"slug": "a1b2c3d4e5f6",
"published": true,
"created_at": "2026-01-15T10:30:00.000Z",
"updated_at": "2026-02-20T14:22:00.000Z",
"theme_color": "#6366f1",
"background_color": "#0a0a0a",
"response_count": 142,
"team": {
"id": "665b2c3d4e5f6a7b8c9d0e1f",
"name": "Marketing"
}
}
],
"total": 24,
"page": 1,
"per_page": 50
}
Exemples de code
curl -X GET "https://api.nueform.io/api/v1/forms?page=1&per_page=10&published=true" \
-H "Authorization: Bearer YOUR_API_KEY"
Créer un formulaire
/api/v1/formsCrée un nouveau formulaire. Vous pouvez optionnellement inclure un tableau de questions à créer avec le formulaire.
Corps de la requête
titlestringTitre du formulaire (ne peut pas être vide)
descriptionstringDescription du formulaire
team_idstringAssigner le formulaire à une équipe (nécessite la permission create_forms)
publishedbooleanSi le formulaire est publié (par défaut : false)
theme_colorstringCouleur du thème principal (hex, par défaut : #6366f1)
background_colorstringCouleur de fond (hex, par défaut : #0a0a0a)
text_colorstringCouleur du texte des questions (hex)
answer_text_colorstringCouleur du texte des réponses saisies (hex)
placeholder_colorstringCouleur du texte de remplacement des champs (hex)
button_colorstringCouleur de fond des boutons (hex)
button_text_colorstringCouleur du texte des boutons (hex)
title_colorstringCouleur du texte du titre (hex)
description_colorstringCouleur du texte de la description (hex)
option_text_colorstringCouleur du texte des options de choix (hex)
indicator_bg_colorstringCouleur de fond de l'indicateur d'étape (hex)
indicator_text_colorstringCouleur du texte de l'indicateur d'étape (hex)
font_familystringFamille de police des questions
font_family_answerstringFamille de police des réponses saisies
font_family_buttonstringFamille de police des boutons
font_family_descriptionstringFamille de police des descriptions
font_family_optionstringFamille de police des options de choix
font_family_indicatorstringFamille de police de l'indicateur d'étape
question_font_sizestringTaille de police des questions (ex. "24px")
custom_cssstringCSS personnalisé injecté dans le rendu du formulaire
show_progress_barbooleanAfficher une barre de progression (par défaut : true)
branding_logo_urlstringURL du logo de marque
branding_footer_textstringTexte personnalisé du pied de page
hide_brandingbooleanMasquer la marque NueForm (par défaut : false)
top_logo_urlstringURL d'un logo affiché en haut du formulaire
top_logo_sizestringTaille du logo supérieur (ex. "120px")
top_logo_alignmentstringAlignement du logo supérieur ("left", "center", "right")
top_logo_cssstringCSS personnalisé pour le logo supérieur
watermark_cssstringCSS personnalisé pour le filigrane
welcome_titlestringTitre de l'écran d'accueil
welcome_descriptionstringDescription de l'écran d'accueil
welcome_button_textstringTexte du bouton de l'écran d'accueil (par défaut : "Start")
thank_you_titlestringTitre de l'écran de remerciement (par défaut : "Thank you!")
thank_you_descriptionstringDescription de l'écran de remerciement
modestringMode du formulaire : "standard", "knowledge_quiz", "lead_qualification", "match_quiz" (par défaut : "standard")
quiz_settingsobjectConfiguration du quiz (pour les modes quiz)
variablesobjectVariables au niveau du formulaire pour la logique
start_logic_jumpsarrayRègles de sauts logiques appliquées au démarrage du formulaire
webhook_urlstringURL pour recevoir un POST à la soumission (abonnement Pro requis)
limit_one_responsebooleanLimiter à une réponse par visiteur (par défaut : false)
incremental_submissionbooleanSauvegarder les réponses de manière incrémentale au fur et à mesure de la progression du répondant (par défaut : false)
questionsarrayTableau d'objets de questions à créer (voir ci-dessous)
Exemple de requête
{
"title": "Customer Feedback Survey",
"description": "Help us improve our product",
"theme_color": "#2563eb",
"background_color": "#ffffff",
"show_progress_bar": true,
"welcome_title": "We value your feedback",
"welcome_description": "This survey takes about 3 minutes.",
"welcome_button_text": "Let's go",
"thank_you_title": "Thank you!",
"thank_you_description": "Your feedback helps us build a better product.",
"questions": [
{
"type": "short_text",
"title": "What is your name?",
"required": true
},
{
"type": "multiple_choice",
"title": "How did you hear about us?",
"required": true,
"properties": {
"choices": [
{ "label": "Search engine" },
{ "label": "Social media" },
{ "label": "Friend or colleague" },
{ "label": "Other" }
],
"allow_multiple": false
}
},
{
"type": "rating",
"title": "How would you rate your overall experience?",
"required": true,
"properties": {
"steps": 5,
"shape": "star"
}
}
]
}
Réponse
Renvoie l'objet formulaire créé avec toutes les questions :
{
"id": "665a1b2c3d4e5f6a7b8c9d0e",
"title": "Customer Feedback Survey",
"description": "Help us improve our product",
"slug": "a1b2c3d4e5f6",
"published": false,
"created_at": "2026-02-28T12:00:00.000Z",
"updated_at": "2026-02-28T12:00:00.000Z",
"theme_color": "#2563eb",
"background_color": "#ffffff",
"show_progress_bar": true,
"welcome_title": "We value your feedback",
"welcome_description": "This survey takes about 3 minutes.",
"welcome_button_text": "Let's go",
"thank_you_title": "Thank you!",
"thank_you_description": "Your feedback helps us build a better product.",
"questions": [
{
"id": "66a1b2c3d4e5f6a7b8c9d001",
"type": "short_text",
"title": "What is your name?",
"description": null,
"required": true,
"order": 0,
"properties": {},
"logic_jumps": [],
"validations": {}
},
{
"id": "66a1b2c3d4e5f6a7b8c9d002",
"type": "multiple_choice",
"title": "How did you hear about us?",
"description": null,
"required": true,
"order": 1,
"properties": {
"choices": [
{ "label": "Search engine" },
{ "label": "Social media" },
{ "label": "Friend or colleague" },
{ "label": "Other" }
],
"allow_multiple": false
},
"logic_jumps": [],
"validations": {}
},
{
"id": "66a1b2c3d4e5f6a7b8c9d003",
"type": "rating",
"title": "How would you rate your overall experience?",
"description": null,
"required": true,
"order": 2,
"properties": {
"steps": 5,
"shape": "star"
},
"logic_jumps": [],
"validations": {}
}
]
}
Exemples de code
curl -X POST "https://api.nueform.io/api/v1/forms" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Customer Feedback Survey",
"description": "Help us improve our product",
"questions": [
{
"type": "short_text",
"title": "What is your name?",
"required": true
}
]
}'
Obtenir un formulaire
/api/v1/forms/:idRécupère un formulaire unique par son identifiant, incluant toutes les questions ordonnées par leur position.
Paramètres de chemin
idstringL'identifiant du formulaire
Réponse
{
"id": "665a1b2c3d4e5f6a7b8c9d0e",
"title": "Customer Feedback Survey",
"description": "Help us improve our product",
"slug": "a1b2c3d4e5f6",
"published": true,
"created_at": "2026-01-15T10:30:00.000Z",
"updated_at": "2026-02-20T14:22:00.000Z",
"theme_color": "#2563eb",
"background_color": "#ffffff",
"text_color": null,
"answer_text_color": null,
"placeholder_color": null,
"button_color": null,
"button_text_color": null,
"font_family": null,
"question_font_size": null,
"custom_css": null,
"show_progress_bar": true,
"incremental_submission": false,
"limit_one_response": false,
"welcome_title": "We value your feedback",
"welcome_description": "This survey takes about 3 minutes.",
"welcome_button_text": "Let's go",
"thank_you_title": "Thank you!",
"thank_you_description": "Your feedback helps us build a better product.",
"branding_logo_url": null,
"branding_footer_text": null,
"hide_branding": false,
"mode": "standard",
"webhook_url": null,
"has_unpublished_changes": false,
"published_version_id": "66c3d4e5f6a7b8c9d0e1f2a3",
"response_count": 142,
"questions": [
{
"id": "66a1b2c3d4e5f6a7b8c9d001",
"type": "short_text",
"title": "What is your name?",
"description": null,
"required": true,
"order": 0,
"properties": {},
"logic_jumps": [],
"validations": {}
}
]
}
Exemples de code
curl -X GET "https://api.nueform.io/api/v1/forms/665a1b2c3d4e5f6a7b8c9d0e" \
-H "Authorization: Bearer YOUR_API_KEY"
Mettre à jour un formulaire
/api/v1/forms/:idMet à jour les champs d'un formulaire et synchronise ses questions. Lorsque vous incluez un tableau questions, NueForm va :
- Mettre à jour les questions existantes (correspondance par
id) - Créer de nouvelles questions (sans
idouidnon reconnu) - Supprimer les questions qui existent dans le formulaire mais ne sont pas présentes dans le tableau
Si le formulaire est actuellement publié, le drapeau has_unpublished_changes est automatiquement défini à true.
Paramètres de chemin
idstringL'identifiant du formulaire
Corps de la requête
Accepte tous les champs de Créer un formulaire sauf team_id. Incluez uniquement les champs que vous souhaitez modifier.
Exemple de requête
{
"title": "Updated Survey Title",
"description": "Revised description for Q2",
"theme_color": "#10b981",
"questions": [
{
"id": "66a1b2c3d4e5f6a7b8c9d001",
"type": "short_text",
"title": "What is your full name?",
"required": true
},
{
"type": "long_text",
"title": "Any additional comments?",
"required": false
}
]
}
Réponse
Renvoie l'objet formulaire mis à jour avec toutes les questions (même schéma que Obtenir un formulaire).
Exemples de code
curl -X PUT "https://api.nueform.io/api/v1/forms/665a1b2c3d4e5f6a7b8c9d0e" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Updated Survey Title",
"theme_color": "#10b981"
}'
Supprimer un formulaire
/api/v1/forms/:idSupprime définitivement un formulaire et toutes les données associées, y compris les questions, les réponses, les versions et les entrées de journal des modifications. Les fichiers téléversés associés sont nettoyés de manière asynchrone.
Cette action est irréversible. Toutes les réponses collectées pour ce formulaire seront définitivement supprimées.
Paramètres de chemin
idstringL'identifiant du formulaire
Réponse
{
"success": true
}
Exemples de code
curl -X DELETE "https://api.nueform.io/api/v1/forms/665a1b2c3d4e5f6a7b8c9d0e" \
-H "Authorization: Bearer YOUR_API_KEY"
Publier un formulaire
/api/v1/forms/:id/publishPublie un formulaire en créant un instantané versionné du formulaire actuel et de ses questions. Chaque publication incrémente le numéro de version. Le formulaire devient accessible publiquement via son URL de partage.
Paramètres de chemin
idstringL'identifiant du formulaire
Réponse
Renvoie l'objet formulaire avec un champ published_version indiquant le nouveau numéro de version :
{
"id": "665a1b2c3d4e5f6a7b8c9d0e",
"title": "Customer Feedback Survey",
"slug": "a1b2c3d4e5f6",
"published": true,
"has_unpublished_changes": false,
"published_version_id": "66c3d4e5f6a7b8c9d0e1f2a3",
"published_version": 3,
"questions": [ ... ]
}
Exemples de code
curl -X POST "https://api.nueform.io/api/v1/forms/665a1b2c3d4e5f6a7b8c9d0e/publish" \
-H "Authorization: Bearer YOUR_API_KEY"
Dépublier un formulaire
/api/v1/forms/:id/publishDépublie un formulaire, le rendant inaccessible via son URL publique. L'instantané de la version publiée est conservé pour vous permettre de republier ultérieurement.
Paramètres de chemin
idstringL'identifiant du formulaire
Réponse
Renvoie l'objet formulaire mis à jour avec published défini à false.
{
"id": "665a1b2c3d4e5f6a7b8c9d0e",
"title": "Customer Feedback Survey",
"published": false,
"questions": [ ... ]
}
Exemples de code
curl -X DELETE "https://api.nueform.io/api/v1/forms/665a1b2c3d4e5f6a7b8c9d0e/publish" \
-H "Authorization: Bearer YOUR_API_KEY"
Dupliquer un formulaire
/api/v1/forms/:id/duplicateCrée une copie d'un formulaire existant, incluant toutes les questions. Les références de sauts logiques sont automatiquement remappées vers les nouveaux identifiants de questions. Le formulaire dupliqué est toujours créé dans un état non publié.
Paramètres de chemin
idstringL'identifiant du formulaire à dupliquer
Corps de la requête
titlestringTitre du nouveau formulaire (par défaut : "Titre original (Copie)")
team_idstringAssigner la copie à une équipe différente
Exemple de requête
{
"title": "Customer Feedback Survey v2",
"team_id": "665b2c3d4e5f6a7b8c9d0e1f"
}
Réponse
Renvoie l'objet formulaire nouvellement créé (même schéma que Obtenir un formulaire) avec published défini à false.
Exemples de code
curl -X POST "https://api.nueform.io/api/v1/forms/665a1b2c3d4e5f6a7b8c9d0e/duplicate" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "title": "Customer Feedback Survey v2" }'
Réponses d'erreur
Tous les points d'accès renvoient des réponses d'erreur standard.
Codes d'erreur
400Bad RequestErreur de validation ou champ obligatoire manquant
401UnauthorizedClé API manquante ou invalide
403ForbiddenPermissions insuffisantes pour les formulaires d'équipe
404Not FoundFormulaire introuvable
500Server ErrorErreur interne du serveur
Exemple d'erreur
{
"error": "Title is required"
}