NueForm

Versions-API

Den Veröffentlichungsverlauf und die Versions-Snapshots deiner Formulare einsehen.

Mit der Versions-API siehst du den Veröffentlichungsverlauf eines Formulars ein. Jedes Mal, wenn du ein Formular veröffentlichst, erstellt NueForm einen versionierten Snapshot, der die komplette Formularkonfiguration und alle Fragen zu diesem Zeitpunkt enthält. Versionen enthalten außerdem ein Changelog, das zusammenfasst, was sich seit der vorherigen Veröffentlichung geändert hat.

Alle Antwort-Bodys verwenden Feldnamen in snake_case.

Formularversionen auflisten

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

Gibt alle veröffentlichten Versionen eines Formulars zurück, sortiert nach Versionsnummer (neueste zuerst). Jede Version enthält den vollständigen Formular-Snapshot und ein Changelog der Änderungen.

Pfad-Parameter

idstringerforderlich

Die Formular-ID

Antwortfelder

idstring

Eindeutige Versions-ID

form_idstring

Das Formular, zu dem diese Version gehört

versioninteger

Fortlaufende Versionsnummer (1, 2, 3, ...)

published_bystring

Nutzer-ID der Person, die diese Version veröffentlicht hat

published_by_namestring

Anzeigename der Person, die veröffentlicht hat

created_atstring

ISO-8601-Zeitstempel der Veröffentlichung dieser Version

changelogarray

Liste der Änderungen seit der vorherigen Version

changelog[].typestring

Änderungstyp (siehe Changelog-Eintragstypen unten)

changelog[].descriptionstring

Menschenlesbare Beschreibung der Änderung

snapshotobject

Vollständiger Formularzustand zum Veröffentlichungszeitpunkt (enthält alle Formularfelder und Fragen)

Changelog-Eintragstypen

form_createdstring

Das Formular wurde initial erstellt

publishedstring

Ein Veröffentlichungsereignis (enthält die Versionsnummer)

question_addedstring

Eine neue Frage wurde hinzugefügt

question_updatedstring

Eine bestehende Frage wurde geändert

question_deletedstring

Eine Frage wurde entfernt

question_reorderedstring

Fragen wurden umsortiert

theme_changedstring

Eine Theme-Eigenschaft wurde geändert

settings_changedstring

Eine Formulareinstellung wurde geändert

title_changedstring

Der Formulartitel wurde geändert

description_changedstring

Die Formularbeschreibung wurde geändert

Antwort

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

Codebeispiele

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

So funktioniert die Versionierung

  1. Bearbeiten — Nimm Änderungen an deinem Formular vor (Fragen hinzufügen, Theme aktualisieren, Einstellungen ändern). Das Flag has_unpublished_changes des Formulars wird auf true gesetzt.
  2. Veröffentlichen — Rufe POST /api/v1/forms/:id/publish auf, um eine neue Version zu erstellen. NueForm erstellt einen Snapshot des aktuellen Formularzustands, zeichnet das Changelog auf und erhöht die Versionsnummer.
  3. Live-Formular — Teilnehmer sehen immer die neueste veröffentlichte Version. Die published_version_id am Formular verweist auf die aktive Version.
  4. Veröffentlichung aufheben — Rufe DELETE /api/v1/forms/:id/publish auf, um das Formular offline zu nehmen. Der Versionsverlauf bleibt erhalten.

Der aktuelle Formularzustand (bearbeitbar über die Forms-API) kann von der neuesten veröffentlichten Version abweichen, wenn seit der letzten Veröffentlichung Änderungen vorgenommen wurden.


Fehlerantworten

Standard-Fehlerantworten, die dieser Endpunkt zurückgibt.

Fehlercodes

401Unauthorized

Fehlender oder ungültiger API-Schlüssel

403Forbidden

Unzureichende Berechtigungen bei Team-Formularen

404Not Found

Formular nicht gefunden

500Server Error

Interner Serverfehler

Fehlerbeispiel

json
{
  "error": "Form not found"
}
Zuletzt aktualisiert: 20. Juli 2026