Für Entwickler

Eine einfache REST-API

Lesen und verwalten Sie Ihre Formulare und Einreichungen aus Ihrem eigenen System, Zapier, Make oder Ihrem eigenen KI-Agenten. Authentifizieren Sie sich mit einem Konto-API-Schlüssel und erhalten Sie übersichtliche JSON-Antworten. Pro Schlüssel wählen Sie Lesen oder auch Schreiben — kontosicher.

Erste Schritte

Alle Anfragen gehen an die Basis-URL und senden Ihren Schlüssel als Bearer-Token mit; die Antwort ist immer application/json. Pro Schlüssel bestimmen Sie pro Bereich (Formulare, Einreichungen), ob dieser lesen oder auch schreiben darf — Schreibrechte werden nie automatisch erteilt.

Basis-URL

https://app.formuliermet.nl/api/v1

Authentifizierung

curl https://app.formuliermet.nl/api/v1/me \
  -H "Authorization: Bearer fmb_je_sleutel_hier"

Erstellen Sie einen Schlüssel in der App unter Konto → API & Verbindungen. Sie sehen den vollständigen Schlüssel nur einmal — bewahren Sie ihn sicher auf. Ein Schlüssel gewährt Zugriff auf die Daten Ihres Kontos; Sie können ihn jederzeit widerrufen. Der API-Zugang ist in den größeren Paketen enthalten (siehe Preise).

Endpoints

GET
/me
Überprüft Ihren Schlüssel und gibt Ihre Konto-ID zurück — praktisch, um eine Verbindung zu testen.
GET
/forms
Formulare in Ihrem Konto (id, Titel, Slug, aktiv, Anzahl Einreichungen). Paginiert mit ?page und ?limit.
GET
/forms/{id}
Ein einzelnes Formular, inklusive der Felddefinitionen (id, Typ, Label, erforderlich).
GET
/forms/{id}/submissions
Einreichungen eines Formulars, neueste zuerst. Paginieren Sie mit ?page und ?limit (max. 100); rufen Sie nur neue ab mit ?since=<ISO-Datum> — ideal für Polling-Verbindungen.
GET
/submissions/{id}
Eine einzelne Einreichung mit allen ausgefüllten Feldern in data.
POST
/forms
Erstellt ein Formular. Scope forms:write
PATCH
/forms/{id}
Aktualisiert ein Formular (Titel, Felder, Einstellungen). Scope forms:write
POST
/forms/{id}/publish · /duplicate · /open · /close
Veröffentlicht, dupliziert oder öffnet/schließt ein Formular. Scope forms:write
POST
/submissions/{id}/approve · /reject · /note · /reminder
Genehmigt oder lehnt ab, fügt eine interne Notiz hinzu oder sendet eine Zahlungserinnerung. Scope submissions:write
DELETE
/submissions/{id}
Löscht eine Einreichung inkl. hochgeladener Dateien (DSGVO-protokolliert). Scope submissions:write

Beispiel: Einreichungen abrufen

curl "https://app.formuliermet.nl/api/v1/forms/FORM_ID/submissions?limit=2" \
  -H "Authorization: Bearer fmb_je_sleutel_hier"

Antwort

{
  "data": [
    {
      "id": "ckv8s2...",
      "formId": "ckv7a1...",
      "sequenceNumber": 42,
      "status": "paid",
      "amountCents": 2500,
      "email": "deelnemer@example.com",
      "paymentMethod": "ideal",
      "createdAt": "2026-06-01T14:30:00.000Z",
      "updatedAt": null,
      "data": { "naam": "Jan Jansen", "aantal": 2 }
    }
  ],
  "page": 1,
  "limit": 2,
  "total": 42
}

Webhooks & Echtzeit-Events

Möchten Sie lieber, dass die Daten zu Ihnen kommen? Richten Sie pro Formular Webhooks ein: Wir senden per POST eine JSON-Nachricht an Ihre HTTPS-URL, sobald etwas passiert — oder an einen Verbindungsdienst wie Zapier oder Make. Eine Benachrichtigung in Ihrem Team ist ebenfalls möglich, direkt an Slack oder Microsoft Teams.

Ereignisse, auf die Sie hören können

EVENT
submission.created · submission.paid
Neue Einreichung erhalten und Zahlung abgeschlossen.
EVENT
submission.approved
Einreichung in einem Prüfworkflow genehmigt.
EVENT
ticket.checked_in · waitlist.joined
Ticket an der Tür eingecheckt, oder eine Anmeldung zur Warteliste.
EVENT
subscription.started · subscription.cancelled
Wiederkehrende Zahlung gestartet oder gekündigt.
EVENT
form.published
Eine neue Version Ihres Formulars wurde veröffentlicht.

Jede Nachricht ist mit HMAC-SHA256 signiert; bei einer Störung versuchen wir es automatisch erneut (ansteigend bis zu mehreren Stunden) und Sie sehen pro Formular ein Zustellprotokoll. Die genauen Payloads, alle Header und fertigen Verifizierungscode (Node.js & Python) finden Sie in der interaktiven Dokumentation.

→ Interaktive API-Dokumentation  ·  OpenAPI-Spezifikation (JSON)

Fehler & Limits

400
Ungültige Anfrage — ein Feld im Body fehlt oder ist falsch.
401
Schlüssel fehlt, ist ungültig oder wurde widerrufen.
403
Ihr Paket enthält keinen API-Zugang (Upgrade über Preise), oder Ihrem Schlüssel fehlt der erforderliche Schreib-Scope für diese Aktion.
404
Nicht gefunden, oder das Formular/die Einreichung gehört nicht zu Ihrem Konto.
409
Konflikt — zum Beispiel eine gewählte eigene URL, die bereits in Gebrauch ist.
429
Zu viele Anfragen. Es gilt ein großzügiges Limit pro Schlüssel und Stunde.

Jeder Schlüssel sieht ausschließlich die Daten des eigenen Kontos. Wir zeigen nie Ihre Formulareinstellungen oder Zahlungsverbindungen über die API — nur die Felddefinitionen und die Einreichungen.

Lieber eine fertige Verbindung?

Nutzen Sie Webhooks, oder binden Sie Ihr Formular in Ihre eigene Website ein — kein Code nötig.