NueForm

API de Versiones

Consulta el historial de publicaciones e instantáneas de versiones de tus formularios.

La API de Versiones te permite ver el historial de publicaciones de un formulario. Cada vez que publicas un formulario, NueForm crea una instantánea versionada que contiene la configuración completa del formulario y todas las preguntas en ese momento. Las versiones también incluyen un changelog que resume lo que cambió desde la publicación anterior.

Todos los cuerpos de respuesta utilizan nombres de campo en snake_case.

Listar Versiones del Formulario

GET/api/v1/forms/:id/versions

Devuelve todas las versiones publicadas de un formulario, ordenadas por número de versión (más reciente primero). Cada versión incluye la instantánea completa del formulario y un changelog de lo que fue modificado.

Parámetros de Ruta

idstringobligatorio

El ID del formulario

Campos de Respuesta

idstring

ID único de la versión

form_idstring

El formulario al que pertenece esta versión

versioninteger

Número de versión secuencial (1, 2, 3, ...)

published_bystring

ID del usuario que publicó esta versión

published_by_namestring

Nombre visible de la persona que publicó

created_atstring

Marca de tiempo ISO 8601 de cuando se publicó esta versión

changelogarray

Lista de cambios desde la versión anterior

changelog[].typestring

Tipo de cambio (ver Tipos de Entrada de Changelog abajo)

changelog[].descriptionstring

Descripción legible del cambio

snapshotobject

Estado completo del formulario en el momento de la publicación (incluye todos los campos del formulario y preguntas)

Tipos de Entrada de Changelog

form_createdstring

El formulario fue creado inicialmente

publishedstring

Un evento de publicación (incluye número de versión)

question_addedstring

Se agregó una nueva pregunta

question_updatedstring

Se modificó una pregunta existente

question_deletedstring

Se eliminó una pregunta

question_reorderedstring

Se reordenaron las preguntas

theme_changedstring

Se modificó una propiedad del tema

settings_changedstring

Se modificó una configuración del formulario

title_changedstring

Se cambió el título del formulario

description_changedstring

Se cambió la descripción del formulario

Respuesta

json
{
  "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": { ... }
    }
  ]
}

Ejemplos de Código

bash
curl -X GET "https://api.nueform.io/api/v1/forms/665a1b2c3d4e5f6a7b8c9d0e/versions" \
  -H "Authorization: Bearer YOUR_API_KEY"

Cómo Funciona el Versionado

  1. Editar -- Realiza cambios en tu formulario (agregar preguntas, actualizar tema, modificar configuraciones). La marca has_unpublished_changes del formulario se establece en true.
  2. Publicar -- Llama a POST /api/v1/forms/:id/publish para crear una nueva versión. NueForm toma una instantánea del estado actual del formulario, registra el changelog e incrementa el número de versión.
  3. Formulario en vivo -- Los encuestados siempre ven la última versión publicada. El published_version_id en el formulario apunta a la versión activa.
  4. Despublicar -- Llama a DELETE /api/v1/forms/:id/publish para sacar el formulario de línea. El historial de versiones se preserva.

El estado actual del formulario (editable a través de la API de Formularios) puede diferir de la última versión publicada si se han realizado ediciones desde la última publicación.


Respuestas de Error

Respuestas de error estándar devueltas por este endpoint.

Códigos de Error

401Unauthorized

API key faltante o inválida

403Forbidden

Permisos insuficientes para formularios de equipo

404Not Found

Formulario no encontrado

500Server Error

Error interno del servidor

Ejemplo de Error

json
{
  "error": "Form not found"
}
Ultima actualizacion: 6 de abril de 2026