API de Versões
Visualize o histórico de publicações e os snapshots de versão dos seus formulários.
A API de Versões permite que você visualize o histórico de publicações de um formulário. Toda vez que você publica um formulário, o NueForm cria um snapshot versionado contendo a configuração completa do formulário e todas as perguntas naquele momento. As versões também incluem um registro de alterações resumindo o que mudou desde a publicação anterior.
Todos os corpos de resposta usam nomes de campo em snake_case.
Listar Versões do Formulário
/api/v1/forms/:id/versionsRetorna todas as versões publicadas de um formulário, ordenadas por número de versão (mais recente primeiro). Cada versão inclui o snapshot completo do formulário e um registro de alterações do que foi modificado.
Parâmetros de Caminho
idstringobrigatórioO ID do formulário
Campos da Resposta
idstringID único da versão
form_idstringO formulário ao qual esta versão pertence
versionintegerNúmero sequencial da versão (1, 2, 3, ...)
published_bystringID do usuário da pessoa que publicou esta versão
published_by_namestringNome de exibição da pessoa que publicou
created_atstringTimestamp ISO 8601 de quando esta versão foi publicada
changelogarrayLista de mudanças desde a versão anterior
changelog[].typestringTipo de mudança (veja Tipos de Entrada do Registro de Alterações abaixo)
changelog[].descriptionstringDescrição legível da mudança
snapshotobjectEstado completo do formulário no momento da publicação (inclui todos os campos do formulário e as perguntas)
Tipos de Entrada do Registro de Alterações
form_createdstringO formulário foi criado inicialmente
publishedstringUm evento de publicação (inclui o número da versão)
question_addedstringUma nova pergunta foi adicionada
question_updatedstringUma pergunta existente foi modificada
question_deletedstringUma pergunta foi removida
question_reorderedstringAs perguntas foram reordenadas
theme_changedstringUma propriedade do tema foi modificada
settings_changedstringUma configuração do formulário foi modificada
title_changedstringO título do formulário foi alterado
description_changedstringA descrição do formulário foi alterada
Resposta
{
"versions": [
{
"id": "66c3d4e5f6a7b8c9d0e1f2a3",
"form_id": "665a1b2c3d4e5f6a7b8c9d0e",
"version": 3,
"published_by": "665a0a1b2c3d4e5f6a7b8c9d",
"published_by_name": "Alice Johnson",
"created_at": "2026-02-28T14:00:00.000Z",
"changelog": [
{
"type": "question_updated",
"description": "Updated question: \"How did you hear about us?\""
},
{
"type": "question_added",
"description": "Added question: \"Would you recommend us to a friend?\""
},
{
"type": "theme_changed",
"description": "Changed theme color from #6366f1 to #2563eb"
}
],
"snapshot": {
"title": "Customer Feedback Survey",
"description": "Help us improve our product",
"theme_color": "#2563eb",
"background_color": "#ffffff",
"show_progress_bar": true,
"questions": [
{
"id": "66a1b2c3d4e5f6a7b8c9d001",
"type": "short_text",
"title": "What is your name?",
"required": true,
"order": 0,
"properties": {}
},
{
"id": "66a1b2c3d4e5f6a7b8c9d002",
"type": "multiple_choice",
"title": "How did you hear about us?",
"required": true,
"order": 1,
"properties": {
"choices": [
{ "label": "Search engine" },
{ "label": "Social media" },
{ "label": "Friend or colleague" },
{ "label": "Other" }
]
}
},
{
"id": "66a1b2c3d4e5f6a7b8c9d004",
"type": "yes_no",
"title": "Would you recommend us to a friend?",
"required": false,
"order": 2,
"properties": {}
}
]
}
},
{
"id": "66c2d3e4f5a6b7c8d9e0f1a2",
"form_id": "665a1b2c3d4e5f6a7b8c9d0e",
"version": 2,
"published_by": "665a0a1b2c3d4e5f6a7b8c9d",
"published_by_name": "Alice Johnson",
"created_at": "2026-02-15T10:30:00.000Z",
"changelog": [
{
"type": "question_added",
"description": "Added question: \"How did you hear about us?\""
}
],
"snapshot": { ... }
},
{
"id": "66c1d2e3f4a5b6c7d8e9f0a1",
"form_id": "665a1b2c3d4e5f6a7b8c9d0e",
"version": 1,
"published_by": "665a0a1b2c3d4e5f6a7b8c9d",
"published_by_name": "Alice Johnson",
"created_at": "2026-01-15T10:30:00.000Z",
"changelog": [
{
"type": "form_created",
"description": "Created form"
}
],
"snapshot": { ... }
}
]
}
Exemplos de Código
curl -X GET "https://api.nueform.io/api/v1/forms/665a1b2c3d4e5f6a7b8c9d0e/versions" \
-H "Authorization: Bearer YOUR_API_KEY"
Como Funciona o Versionamento
- Editar -- Faça alterações no seu formulário (adicione perguntas, atualize o tema, modifique as configurações). A flag
has_unpublished_changesdo formulário é definida comotrue. - Publicar -- Chame
POST /api/v1/forms/:id/publishpara criar uma nova versão. O NueForm tira um snapshot do estado atual do formulário, grava o registro de alterações e incrementa o número da versão. - Formulário no ar -- Os respondentes sempre veem a versão publicada mais recente. O
published_version_iddo formulário aponta para a versão ativa. - Despublicar -- Chame
DELETE /api/v1/forms/:id/publishpara tirar o formulário do ar. O histórico de versões é preservado.
O estado atual do formulário (editável via API de Formulários) pode diferir da versão publicada mais recente se edições tiverem sido feitas desde a última publicação.
Respostas de Erro
Respostas de erro padrão retornadas por este endpoint.
Códigos de Erro
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": "Form not found"
}