API de Formulários
Crie, recupere, atualize, exclua, publique e duplique formulários.
A API de Formulários permite gerenciar seus formulários NueForm de forma programática. Você pode listar, criar, recuperar, atualizar, excluir, publicar, despublicar e duplicar formulários.
Todos os corpos de requisição e resposta usam nomes de campos em snake_case.
Listar Formulários
/api/v1/formsRetorna uma lista paginada de formulários aos quais o usuário autenticado tem acesso, incluindo formulários pessoais e formulários de equipes às quais o usuário pertence.
Parâmetros de Consulta
pageintegerNúmero da página (padrão: 1)
per_pageintegerResultados por página (padrão: 50)
searchstringFiltra formulários por título (correspondência parcial sem diferenciar maiúsculas de minúsculas)
team_idstringRetorna apenas formulários pertencentes a esta equipe
publishedbooleanFiltra pelo status de publicação (true ou false)
Resposta
{
"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
}
Exemplos de Código
curl -X GET "https://api.nueform.io/api/v1/forms?page=1&per_page=10&published=true" \
-H "Authorization: Bearer YOUR_API_KEY"
Criar Formulário
/api/v1/formsCria um novo formulário. Opcionalmente, você pode incluir um array de perguntas para criar junto com o formulário.
Corpo da Requisição
titlestringTítulo do formulário (não pode ficar em branco)
descriptionstringDescrição do formulário
team_idstringAtribui o formulário a uma equipe (requer a permissão create_forms)
publishedbooleanSe o formulário está publicado (padrão: false)
theme_colorstringCor primária do tema (hex, padrão: #6366f1)
background_colorstringCor de fundo (hex, padrão: #0a0a0a)
text_colorstringCor do texto da pergunta (hex)
answer_text_colorstringCor do texto do campo de resposta (hex)
placeholder_colorstringCor do placeholder do campo (hex)
button_colorstringCor de fundo do botão (hex)
button_text_colorstringCor do texto do botão (hex)
title_colorstringCor do texto do título (hex)
description_colorstringCor do texto da descrição (hex)
option_text_colorstringCor do texto das opções de escolha (hex)
indicator_bg_colorstringCor de fundo do indicador de etapa (hex)
indicator_text_colorstringCor do texto do indicador de etapa (hex)
font_familystringFamília de fonte da pergunta
font_family_answerstringFamília de fonte do campo de resposta
font_family_buttonstringFamília de fonte do botão
font_family_descriptionstringFamília de fonte da descrição
font_family_optionstringFamília de fonte das opções de escolha
font_family_indicatorstringFamília de fonte do indicador de etapa
question_font_sizestringTamanho da fonte da pergunta (por exemplo, "24px")
custom_cssstringCSS personalizado injetado no renderizador do formulário
show_progress_barbooleanExibe uma barra de progresso (padrão: true)
branding_logo_urlstringURL do logotipo da marca
branding_footer_textstringTexto personalizado do rodapé
hide_brandingbooleanOculta a marca NueForm (padrão: false)
top_logo_urlstringURL de um logotipo exibido no topo do formulário
top_logo_sizestringTamanho do logotipo do topo (por exemplo, "120px")
top_logo_alignmentstringAlinhamento do logotipo do topo ("left", "center", "right")
top_logo_cssstringCSS personalizado para o logotipo do topo
watermark_cssstringCSS personalizado para a marca d'água
welcome_titlestringTítulo da tela de boas-vindas
welcome_descriptionstringDescrição da tela de boas-vindas
welcome_button_textstringTexto do botão da tela de boas-vindas (padrão: "Start")
thank_you_titlestringTítulo da tela de agradecimento (padrão: "Thank you!")
thank_you_descriptionstringDescrição da tela de agradecimento
modestringModo do formulário: "standard", "knowledge_quiz", "lead_qualification", "match_quiz" (padrão: "standard")
quiz_settingsobjectConfiguração do questionário (para modos de questionário)
variablesobjectVariáveis no nível do formulário para lógica
start_logic_jumpsarrayRegras de saltos de lógica aplicadas no início do formulário
webhook_urlstringURL para receber POST no envio (requer plano Pro)
limit_one_responsebooleanLimita a uma resposta por visitante (padrão: false)
incremental_submissionbooleanSalva as respostas de forma incremental conforme o respondente avança (padrão: false)
questionsarrayArray de objetos de pergunta a criar (veja abaixo)
Exemplo de Requisição
{
"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"
}
}
]
}
Resposta
Retorna o objeto do formulário criado com todas as perguntas:
{
"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": {}
}
]
}
Exemplos de Código
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
}
]
}'
Obter Formulário
/api/v1/forms/:idRecupera um único formulário pelo ID, incluindo todas as perguntas ordenadas pela posição.
Parâmetros de Caminho
idstringO ID do formulário
Resposta
{
"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": {}
}
]
}
Exemplos de Código
curl -X GET "https://api.nueform.io/api/v1/forms/665a1b2c3d4e5f6a7b8c9d0e" \
-H "Authorization: Bearer YOUR_API_KEY"
Atualizar Formulário
/api/v1/forms/:idAtualiza os campos de um formulário e sincroniza suas perguntas. Quando você inclui um array questions, o NueForm irá:
- Atualizar perguntas existentes (correspondidas pelo
id) - Criar novas perguntas (sem
idou comidnão reconhecido) - Excluir perguntas que existem no formulário mas não estão presentes no array
Se o formulário estiver publicado no momento, a flag has_unpublished_changes é definida automaticamente como true.
Parâmetros de Caminho
idstringO ID do formulário
Corpo da Requisição
Aceita todos os campos de Criar Formulário, exceto team_id. Inclua apenas os campos que você deseja alterar.
Exemplo de Requisição
{
"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
}
]
}
Resposta
Retorna o objeto do formulário atualizado com todas as perguntas (mesmo esquema de Obter Formulário).
Exemplos de Código
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"
}'
Excluir Formulário
/api/v1/forms/:idExclui permanentemente um formulário e todos os dados associados, incluindo perguntas, respostas, versões e entradas do registro de alterações. Os uploads de arquivo associados são limpos de forma assíncrona.
Esta ação é irreversível. Todas as respostas coletadas para este formulário serão excluídas permanentemente.
Parâmetros de Caminho
idstringO ID do formulário
Resposta
{
"success": true
}
Exemplos de Código
curl -X DELETE "https://api.nueform.io/api/v1/forms/665a1b2c3d4e5f6a7b8c9d0e" \
-H "Authorization: Bearer YOUR_API_KEY"
Publicar Formulário
/api/v1/forms/:id/publishPublica um formulário criando um snapshot versionado do formulário atual e de suas perguntas. Cada publicação incrementa o número da versão. O formulário se torna acessível publicamente em sua URL compartilhável.
Parâmetros de Caminho
idstringO ID do formulário
Resposta
Retorna o objeto do formulário com um campo published_version indicando o novo número da versão:
{
"id": "665a1b2c3d4e5f6a7b8c9d0e",
"title": "Customer Feedback Survey",
"slug": "a1b2c3d4e5f6",
"published": true,
"has_unpublished_changes": false,
"published_version_id": "66c3d4e5f6a7b8c9d0e1f2a3",
"published_version": 3,
"questions": [ ... ]
}
Exemplos de Código
curl -X POST "https://api.nueform.io/api/v1/forms/665a1b2c3d4e5f6a7b8c9d0e/publish" \
-H "Authorization: Bearer YOUR_API_KEY"
Despublicar Formulário
/api/v1/forms/:id/publishDespublica um formulário, tornando-o inacessível em sua URL pública. O snapshot da versão publicada é mantido para que você possa publicar novamente mais tarde.
Parâmetros de Caminho
idstringO ID do formulário
Resposta
Retorna o objeto do formulário atualizado com published definido como false.
{
"id": "665a1b2c3d4e5f6a7b8c9d0e",
"title": "Customer Feedback Survey",
"published": false,
"questions": [ ... ]
}
Exemplos de Código
curl -X DELETE "https://api.nueform.io/api/v1/forms/665a1b2c3d4e5f6a7b8c9d0e/publish" \
-H "Authorization: Bearer YOUR_API_KEY"
Duplicar Formulário
/api/v1/forms/:id/duplicateCria uma cópia de um formulário existente, incluindo todas as perguntas. As referências de saltos de lógica são remapeadas automaticamente para os novos IDs de pergunta. O formulário duplicado é sempre criado em estado não publicado.
Parâmetros de Caminho
idstringO ID do formulário a duplicar
Corpo da Requisição
titlestringTítulo do novo formulário (padrão: "Original Title (Copy)")
team_idstringAtribui a cópia a uma equipe diferente
Exemplo de Requisição
{
"title": "Customer Feedback Survey v2",
"team_id": "665b2c3d4e5f6a7b8c9d0e1f"
}
Resposta
Retorna o objeto do formulário recém-criado (mesmo esquema de Obter Formulário) com published definido como false.
Exemplos de Código
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" }'
Respostas de Erro
Todos os endpoints retornam respostas de erro padrão.
Códigos de Erro
400Bad RequestErro de validação ou campo obrigatório ausente
401UnauthorizedChave de API ausente ou inválida
403ForbiddenPermissões insuficientes para formulários de equipe
404Not FoundFormulário não encontrado
500Server ErrorErro interno do servidor
Exemplo de Erro
{
"error": "Title is required"
}